Files
WulaFallenEmpireRW/Source/WulaFallenEmpire/Ability/WULA_RequiresNonHostility/CompAbilityEffect_RequiresNonHostility.cs
2026-02-24 12:02:38 +08:00

49 lines
1.4 KiB
C#

using RimWorld;
using Verse;
namespace WulaFallenEmpire
{
public class CompProperties_AbilityRequiresNonHostility : CompProperties_AbilityEffect
{
public FactionDef factionDef;
public CompProperties_AbilityRequiresNonHostility()
{
compClass = typeof(CompAbilityEffect_RequiresNonHostility);
}
}
public class CompAbilityEffect_RequiresNonHostility : CompAbilityEffect
{
public new CompProperties_AbilityRequiresNonHostility Props => (CompProperties_AbilityRequiresNonHostility)props;
public override bool GizmoDisabled(out string reason)
{
Pawn pawn = parent.pawn;
if (pawn == null || pawn.Faction == null || Props.factionDef == null)
{
reason = null;
return false;
}
// 查找指定派系
Faction targetFaction = Find.FactionManager.FirstFactionOfDef(Props.factionDef);
if (targetFaction == null)
{
reason = null;
return false;
}
// 检查是否敌对
if (pawn.Faction.HostileTo(targetFaction))
{
reason = "WULA_AbilityRequiresNonHostility".Translate(Props.factionDef);
return true;
}
reason = null;
return false;
}
}
}