存一下
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class CompAbilityEffect_EmergencyEnergyRestore : CompAbilityEffect
|
||||
{
|
||||
public new CompProperties_AbilityEmergencyEnergyRestore Props => (CompProperties_AbilityEmergencyEnergyRestore)props;
|
||||
|
||||
public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
|
||||
{
|
||||
base.Apply(target, dest);
|
||||
|
||||
Pawn caster = parent.pawn;
|
||||
if (caster == null) return;
|
||||
|
||||
// 检查是否是乌拉族
|
||||
if (!IsWulaRace(caster))
|
||||
{
|
||||
Messages.Message("只有乌拉族才能使用紧急能量恢复", MessageTypeDefOf.RejectInput, false);
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查是否倒地(如果需要的话)
|
||||
if (Props.requireDowned && !caster.Downed)
|
||||
{
|
||||
Messages.Message("只能在倒地时使用紧急能量恢复", MessageTypeDefOf.RejectInput, false);
|
||||
return;
|
||||
}
|
||||
|
||||
// 添加Hediff
|
||||
if (Props.hediffDef != null)
|
||||
{
|
||||
var hediff = HediffMaker.MakeHediff(Props.hediffDef, caster);
|
||||
caster.health.AddHediff(hediff);
|
||||
|
||||
Messages.Message($"{caster.LabelShort}激活了紧急能量恢复协议", MessageTypeDefOf.PositiveEvent, false);
|
||||
|
||||
if (Prefs.DevMode)
|
||||
{
|
||||
Log.Message($"[EmergencyEnergyRestore] Applied to {caster.LabelShort}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override bool CanApplyOn(LocalTargetInfo target, LocalTargetInfo dest)
|
||||
{
|
||||
bool canApply = base.CanApplyOn(target, dest) && IsWulaRace(parent.pawn);
|
||||
|
||||
if (Props.requireDowned)
|
||||
{
|
||||
canApply = canApply && parent.pawn.Downed;
|
||||
}
|
||||
|
||||
return canApply;
|
||||
}
|
||||
|
||||
private bool IsWulaRace(Pawn pawn)
|
||||
{
|
||||
if (pawn?.def == null) return false;
|
||||
return pawn.def.defName == "WulaSpecies";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user