diff --git a/docs/游戏机制与平衡性调整更新草案.md b/docs/游戏机制与平衡性调整更新草案.md index 8e4418e..3078a65 100644 --- a/docs/游戏机制与平衡性调整更新草案.md +++ b/docs/游戏机制与平衡性调整更新草案.md @@ -23,6 +23,7 @@ v1.6 - 增强为“可以攻击使门被打开(可以重新被锁上)” - 小炸弹JumpyDumpty - 小炸弹不受道具增益影响 + - 修改为“小炸弹与自己无碰撞体积” - strike(新增) - 可以攻击未写完的作业 diff --git a/logic/GameClass/GameObj/Bullet/Bullet.cs b/logic/GameClass/GameObj/Bullet/Bullet.cs index 262bc92..86fefab 100644 --- a/logic/GameClass/GameObj/Bullet/Bullet.cs +++ b/logic/GameClass/GameObj/Bullet/Bullet.cs @@ -1,6 +1,5 @@ using Preparation.Interface; using Preparation.Utility; -using System; namespace GameClass.GameObj { @@ -27,7 +26,6 @@ namespace GameClass.GameObj public bool HasSpear => hasSpear; /// - /// 与THUAI4不同的一个攻击判定方案,通过这个函数判断爆炸时能否伤害到target /// /// 被尝试攻击者 /// 是否可以攻击到 @@ -36,7 +34,7 @@ namespace GameClass.GameObj public override bool IgnoreCollideExecutor(IGameObj targetObj) { - if (targetObj == Parent && CanMove) return true; + if (targetObj == Parent) return true; if (targetObj.Type == GameObjType.Prop || targetObj.Type == GameObjType.Bullet) return true; return false; diff --git a/logic/GameClass/GameObj/Character/Character.Ghost.cs b/logic/GameClass/GameObj/Character/Character.Ghost.cs index 3ad0240..d4f185c 100644 --- a/logic/GameClass/GameObj/Character/Character.Ghost.cs +++ b/logic/GameClass/GameObj/Character/Character.Ghost.cs @@ -1,10 +1,5 @@ using Preparation.Interface; using Preparation.Utility; -using System; -using System.Collections.Generic; -using System.Numerics; -using System.Runtime.InteropServices; -using System.Threading; namespace GameClass.GameObj { diff --git a/logic/GameClass/GameObj/Map/Map.cs b/logic/GameClass/GameObj/Map/Map.cs index 7e35cff..3a3869f 100644 --- a/logic/GameClass/GameObj/Map/Map.cs +++ b/logic/GameClass/GameObj/Map/Map.cs @@ -484,7 +484,7 @@ namespace GameClass.GameObj } case (uint)PlaceType.Window: { - Add(new Window(GameData.GetCellCenterPos(i, j), mapResource[i - 1, j] == (uint)PlaceType.Wall)); + Add(new Window(GameData.GetCellCenterPos(i, j))); break; } case (uint)PlaceType.BirthPoint1: diff --git a/logic/GameEngine/MoveEngine.cs b/logic/GameEngine/MoveEngine.cs index 318d6e6..3288cf7 100644 --- a/logic/GameEngine/MoveEngine.cs +++ b/logic/GameEngine/MoveEngine.cs @@ -148,9 +148,11 @@ namespace GameEngine { Thread.Sleep(GameData.numOfPosGridPerCell / GameData.numOfStepPerSecond); new FrameRateTaskExecutor( - () => gameTimer.IsGaming && obj.StateNum == stateNum && obj.CanMove && !obj.IsRemoved, + () => gameTimer.IsGaming, () => { + if (obj.StateNum == stateNum && obj.CanMove && !obj.IsRemoved) + return !(isEnded = true); return !(isEnded = !LoopDo(obj, direction, ref deltaLen, stateNum)); }, GameData.numOfPosGridPerCell / GameData.numOfStepPerSecond, @@ -179,8 +181,13 @@ namespace GameEngine if (!isEnded && obj.StateNum == stateNum && obj.CanMove && !obj.IsRemoved) isEnded = !LoopDo(obj, direction, ref deltaLen, stateNum); } - - if (!isEnded && obj.StateNum == stateNum && obj.CanMove && !obj.IsRemoved) + if (isEnded) + { + obj.IsMoving = false; + EndMove(obj); + return; + } + if (obj.StateNum == stateNum && obj.CanMove && !obj.IsRemoved) { int leftTime = moveTime % (GameData.numOfPosGridPerCell / GameData.numOfStepPerSecond); if (leftTime > 0)