Browse Source

docs: 📝 edit 游戏机制与平衡性调整更新(基本不变版).md

tags/v0.1.0
shangfengh 2 years ago
parent
commit
a77c0e2360
5 changed files with 17 additions and 15 deletions
  1. +3
    -3
      docs/游戏机制与平衡性调整更新(基本不变版).md
  2. +6
    -1
      docs/版本更新说明.md
  3. +2
    -1
      logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs
  4. +0
    -1
      logic/GameClass/GameObj/Character/Character.cs
  5. +6
    -9
      logic/Gaming/AttackManager.cs

+ 3
- 3
docs/游戏机制与平衡性调整更新(基本不变版).md View File

@@ -20,7 +20,7 @@
- 增强为“可以攻击未写完的作业”
- 增强为“可以攻击使门被打开(可以重新被锁上)”
- 小炸弹JumpyDumpty
- 攻击距离改为1600
- 攻击距离改为1800
- 小炸弹不受道具增益影响
- 修改为“小炸弹与自己无碰撞体积”
- strike(新增)
@@ -30,7 +30,7 @@
| 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfTricker|飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | strike |
| :--------------------- | :---------------------| :--------------------- | :--------------------- | :--------------------- | :--------------------- |
| 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | 0 |
| 子弹攻击距离 | 2200 | 78000 | 2200 | 1600 | 2000 |
| 子弹攻击距离 | 2200 | 78000 | 2200 | 1800 | 2000 |
| 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | 1600000 |
| 移动速度/s | 7400 | 18500 | 6000 | 8600 | 6250 |
| 前摇(ms) | 297 | 600 | 366 | - | 320 |
@@ -109,7 +109,7 @@
- CD:45s, 持续时间:10s
- 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败)
- 主动技能 蹦蹦炸弹 JumpyBomb
- 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上0°,45°,90°,135°,180°,225°,270°,315° 发出8个小炸弹
- 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,120°,150°,180°,210°,240°,270° 发出7个小炸弹
- Idol
主动技能ShowTime改为
"持续时间内


+ 6
- 1
docs/版本更新说明.md View File

@@ -59,5 +59,10 @@
# 5月20日23:30更新
- fix:修复了学习已经完成的作业会卡死的问题

# 5月21日0:30更新
- fix:修复了游戏结束判定的bug
- fix:修复了死亡状态设置的bug

# 5月21日更新
- fix:修复了游戏结束判定的bug
- docs:更新了 游戏机制与平衡性调整更新(基本不变版).pdf
- Klee小炸弹的攻击范围与放射方向调整

+ 2
- 1
logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs View File

@@ -158,6 +158,7 @@ namespace GameClass.GameObj
public override BulletType TypeOfBullet => BulletType.BombBomb;

}

internal sealed class JumpyDumpty : Bullet
{
public JumpyDumpty(Character player, XY pos, int radius = GameData.bulletRadius) : base(player, radius, pos)
@@ -165,7 +166,7 @@ namespace GameClass.GameObj
ap = (int)(GameData.basicApOfGhost * 0.6);
}
public override double BulletBombRange => GameData.basicBulletBombRange / 2;
public override double AttackDistance => GameData.basicAttackShortRange * 16 / 22;
public override double AttackDistance => GameData.basicAttackShortRange * 18 / 22;

public override int Speed => (int)(GameData.basicBulletMoveSpeed * 43 / 37);
public override bool IsRemoteAttack => false;


+ 0
- 1
logic/GameClass/GameObj/Character/Character.cs View File

@@ -595,7 +595,6 @@ namespace GameClass.GameObj
lock (actionLock)
{
if (!TryToRemove()) return false;
Debugger.Output(this, "TryToRemove");
ReSetCanMove(false);
SetPlayerState(playerStateType);
position = GameData.PosWhoDie;


+ 6
- 9
logic/Gaming/AttackManager.cs View File

@@ -52,9 +52,8 @@ namespace Gaming

private void BombObj(Bullet bullet, GameObj objBeingShot)
{
#if DEBUG
Debugger.Output(bullet, "bombed " + objBeingShot.ToString());
#endif
switch (objBeingShot.Type)
{
case GameObjType.Character:
@@ -122,12 +121,11 @@ namespace Gaming

private void BulletBomb(Bullet bullet, GameObj? objBeingShot)
{
#if DEBUG
if (objBeingShot != null)
Debugger.Output(bullet, "bombed with" + objBeingShot.ToString());
else
Debugger.Output(bullet, "bombed without objBeingShot");
#endif
if (!TryRemoveBullet(bullet)) return;

if (bullet.BulletBombRange == 0)
@@ -155,14 +153,13 @@ namespace Gaming

if (bullet.TypeOfBullet == BulletType.BombBomb && objBeingShot != null)
{
ProduceBombBomb(bullet, 0);
ProduceBombBomb(bullet, Math.PI / 4);
ProduceBombBomb(bullet, Math.PI / 2);
ProduceBombBomb(bullet, Math.PI * 3 / 4);
ProduceBombBomb(bullet, Math.PI * 2 / 3);
ProduceBombBomb(bullet, Math.PI * 5 / 6);
ProduceBombBomb(bullet, Math.PI);
ProduceBombBomb(bullet, Math.PI * 5 / 4);
ProduceBombBomb(bullet, Math.PI * 7 / 6);
ProduceBombBomb(bullet, Math.PI * 4 / 3);
ProduceBombBomb(bullet, Math.PI * 3 / 2);
ProduceBombBomb(bullet, Math.PI * 7 / 4);
}

var beAttackedList = new List<IGameObj>();


Loading…
Cancel
Save