// adds health and shields to possesed Pawn or to matching Tag class ACTION_AddShield extends ScriptedAction; var(Action) class PawnClass; // leave none to heal possed pawn var(Action) name PawnTag; var(Action) int ShieldToAdd; var(Action) int HealthToAdd; var(Action) bool bDelayedHealing; // use GiveHealth() for KFPawns function ProceedPawn(Pawn P) { if ( HealthToAdd > 0 ) { if ( bDelayedHealing && KFPawn(P) != none ) KFPawn(P).GiveHealth(HealthToAdd, P.HealthMax); else P.Health = min(P.HealthMax, P.Health + HealthToAdd); } if ( ShieldToAdd > 0 ) P.AddShieldStrength(ShieldToAdd); } function bool InitActionFor(ScriptedController C) { local Actor A; if ( PawnClass == none ) { ProceedPawn(C.Pawn); } else { ForEach C.DynamicActors(PawnClass, A, PawnTag) ProceedPawn(Pawn(A)); } return false; } defaultproperties { ActionString="add health and armor" }