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)