This commit is contained in:
2026-02-25 17:30:59 +08:00
parent 0509f26c3c
commit fff40b0edb
70 changed files with 3951 additions and 1219 deletions

View File

@@ -0,0 +1,62 @@
using RimWorld;
using Verse;
using Verse.AI;
namespace WulaFallenEmpire
{
public class MentalState_MechNoPilot : MentalState
{
public override void PostStart(string reason)
{
base.PostStart(reason);
// 停止所有工作和移动
pawn.jobs?.StopAll();
pawn.pather?.StopDead();
// 取消征召
if (pawn.drafter != null && pawn.Drafted)
{
pawn.drafter.Drafted = false;
}
// 清除当前敌人目标
pawn.mindState.enemyTarget = null;
}
public override void PostEnd()
{
base.PostEnd();
}
public override void MentalStateTick(int delta)
{
// 使用父类的tick逻辑但不允许自动恢复
if (pawn.IsHashIntervalTick(30, delta))
{
age += 30;
// 只有在有驾驶员时才允许恢复
// 检查会由 CompMechPilotHolder 处理
// 这里不实现自动恢复逻辑
}
}
// 重写以禁用敌对行为
public override bool ForceHostileTo(Thing t)
{
return false;
}
public override bool ForceHostileTo(Faction f)
{
return false;
}
// 重写以禁用社交活动
public override RandomSocialMode SocialModeMax()
{
return RandomSocialMode.Off;
}
}
}