fix: 修复夺舍能力在跳跃前执行导致空指针的问题
修复 GestaltNode 相关逻辑的空指针异常 修复 Overlord 死亡或销毁时 HiveNode 的状态更新问题 增加 Pawn 不在当前地图时的检查
This commit is contained in:
@@ -41,17 +41,10 @@ namespace ArachnaeSwarm
|
||||
{
|
||||
base.Apply(target, dest);
|
||||
|
||||
// 新增:检查目标是否无法行动(倒地)
|
||||
if (target.Pawn != null && IsTargetImmobilized(target.Pawn))
|
||||
{
|
||||
ArachnaeLog.Debug($"[夺舍] 目标 {target.Pawn.LabelShort} 无法行动,直接执行夺舍");
|
||||
DoPossession(this.parent.pawn, target.Pawn);
|
||||
}
|
||||
else
|
||||
{
|
||||
ArachnaeLog.Debug($"[夺舍] 目标可以行动,执行标准夺舍流程");
|
||||
DoPossession(this.parent.pawn, target.Pawn);
|
||||
}
|
||||
// 修复:不再在 Apply 中直接执行 DoPossession。
|
||||
// 因为该能力使用 Verb_JumpAndCastOnLanding,会在落地时通过 OnJumpCompleted 触发夺舍。
|
||||
// 在此处执行会导致施法者在跳跃开始前或期间被销毁,导致 PawnFlyer 抛出空指针异常。
|
||||
ArachnaeLog.Debug($"[夺舍] Apply 触发,目标: {target.Pawn?.LabelShort ?? "无"}。等待跳跃落地后执行夺舍逻辑。");
|
||||
}
|
||||
|
||||
// 新增:检查目标是否无法行动
|
||||
|
||||
Reference in New Issue
Block a user