| @@ -20,7 +20,7 @@ | |||||
| - 增强为“可以攻击未写完的作业” | - 增强为“可以攻击未写完的作业” | ||||
| - 增强为“可以攻击使门被打开(可以重新被锁上)” | - 增强为“可以攻击使门被打开(可以重新被锁上)” | ||||
| - 小炸弹JumpyDumpty | - 小炸弹JumpyDumpty | ||||
| - 攻击距离改为1600 | |||||
| - 攻击距离改为1800 | |||||
| - 小炸弹不受道具增益影响 | - 小炸弹不受道具增益影响 | ||||
| - 修改为“小炸弹与自己无碰撞体积” | - 修改为“小炸弹与自己无碰撞体积” | ||||
| - strike(新增) | - strike(新增) | ||||
| @@ -30,7 +30,7 @@ | |||||
| | 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfTricker|飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | strike | | | 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfTricker|飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | strike | | ||||
| | :--------------------- | :---------------------| :--------------------- | :--------------------- | :--------------------- | :--------------------- | | | :--------------------- | :---------------------| :--------------------- | :--------------------- | :--------------------- | :--------------------- | | ||||
| | 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | 0 | | | 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | 0 | | ||||
| | 子弹攻击距离 | 2200 | 78000 | 2200 | 1600 | 2000 | | |||||
| | 子弹攻击距离 | 2200 | 78000 | 2200 | 1800 | 2000 | | |||||
| | 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | 1600000 | | | 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | 1600000 | | ||||
| | 移动速度/s | 7400 | 18500 | 6000 | 8600 | 6250 | | | 移动速度/s | 7400 | 18500 | 6000 | 8600 | 6250 | | ||||
| | 前摇(ms) | 297 | 600 | 366 | - | 320 | | | 前摇(ms) | 297 | 600 | 366 | - | 320 | | ||||
| @@ -109,7 +109,7 @@ | |||||
| - CD:45s, 持续时间:10s | - CD:45s, 持续时间:10s | ||||
| - 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败) | - 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败) | ||||
| - 主动技能 蹦蹦炸弹 JumpyBomb | - 主动技能 蹦蹦炸弹 JumpyBomb | ||||
| - 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上0°,45°,90°,135°,180°,225°,270°,315° 发出8个小炸弹 | |||||
| - 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,120°,150°,180°,210°,240°,270° 发出7个小炸弹 | |||||
| - Idol | - Idol | ||||
| 主动技能ShowTime改为 | 主动技能ShowTime改为 | ||||
| "持续时间内 | "持续时间内 | ||||
| @@ -59,5 +59,10 @@ | |||||
| # 5月20日23:30更新 | # 5月20日23:30更新 | ||||
| - fix:修复了学习已经完成的作业会卡死的问题 | - fix:修复了学习已经完成的作业会卡死的问题 | ||||
| # 5月21日0:30更新 | |||||
| - fix:修复了游戏结束判定的bug | |||||
| - fix:修复了死亡状态设置的bug | |||||
| # 5月21日更新 | # 5月21日更新 | ||||
| - fix:修复了游戏结束判定的bug | |||||
| - docs:更新了 游戏机制与平衡性调整更新(基本不变版).pdf | |||||
| - Klee小炸弹的攻击范围与放射方向调整 | |||||
| @@ -158,6 +158,7 @@ namespace GameClass.GameObj | |||||
| public override BulletType TypeOfBullet => BulletType.BombBomb; | public override BulletType TypeOfBullet => BulletType.BombBomb; | ||||
| } | } | ||||
| internal sealed class JumpyDumpty : Bullet | internal sealed class JumpyDumpty : Bullet | ||||
| { | { | ||||
| public JumpyDumpty(Character player, XY pos, int radius = GameData.bulletRadius) : base(player, radius, pos) | 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); | ap = (int)(GameData.basicApOfGhost * 0.6); | ||||
| } | } | ||||
| public override double BulletBombRange => GameData.basicBulletBombRange / 2; | 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 int Speed => (int)(GameData.basicBulletMoveSpeed * 43 / 37); | ||||
| public override bool IsRemoteAttack => false; | public override bool IsRemoteAttack => false; | ||||
| @@ -595,7 +595,6 @@ namespace GameClass.GameObj | |||||
| lock (actionLock) | lock (actionLock) | ||||
| { | { | ||||
| if (!TryToRemove()) return false; | if (!TryToRemove()) return false; | ||||
| Debugger.Output(this, "TryToRemove"); | |||||
| ReSetCanMove(false); | ReSetCanMove(false); | ||||
| SetPlayerState(playerStateType); | SetPlayerState(playerStateType); | ||||
| position = GameData.PosWhoDie; | position = GameData.PosWhoDie; | ||||
| @@ -52,9 +52,8 @@ namespace Gaming | |||||
| private void BombObj(Bullet bullet, GameObj objBeingShot) | private void BombObj(Bullet bullet, GameObj objBeingShot) | ||||
| { | { | ||||
| #if DEBUG | |||||
| Debugger.Output(bullet, "bombed " + objBeingShot.ToString()); | Debugger.Output(bullet, "bombed " + objBeingShot.ToString()); | ||||
| #endif | |||||
| switch (objBeingShot.Type) | switch (objBeingShot.Type) | ||||
| { | { | ||||
| case GameObjType.Character: | case GameObjType.Character: | ||||
| @@ -122,12 +121,11 @@ namespace Gaming | |||||
| private void BulletBomb(Bullet bullet, GameObj? objBeingShot) | private void BulletBomb(Bullet bullet, GameObj? objBeingShot) | ||||
| { | { | ||||
| #if DEBUG | |||||
| if (objBeingShot != null) | if (objBeingShot != null) | ||||
| Debugger.Output(bullet, "bombed with" + objBeingShot.ToString()); | Debugger.Output(bullet, "bombed with" + objBeingShot.ToString()); | ||||
| else | else | ||||
| Debugger.Output(bullet, "bombed without objBeingShot"); | Debugger.Output(bullet, "bombed without objBeingShot"); | ||||
| #endif | |||||
| if (!TryRemoveBullet(bullet)) return; | if (!TryRemoveBullet(bullet)) return; | ||||
| if (bullet.BulletBombRange == 0) | if (bullet.BulletBombRange == 0) | ||||
| @@ -155,14 +153,13 @@ namespace Gaming | |||||
| if (bullet.TypeOfBullet == BulletType.BombBomb && objBeingShot != null) | if (bullet.TypeOfBullet == BulletType.BombBomb && objBeingShot != null) | ||||
| { | { | ||||
| ProduceBombBomb(bullet, 0); | |||||
| ProduceBombBomb(bullet, Math.PI / 4); | |||||
| ProduceBombBomb(bullet, Math.PI / 2); | 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); | ||||
| 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 * 3 / 2); | ||||
| ProduceBombBomb(bullet, Math.PI * 7 / 4); | |||||
| } | } | ||||
| var beAttackedList = new List<IGameObj>(); | var beAttackedList = new List<IGameObj>(); | ||||