rott/kf_sources/KFMod/Classes/ACTION_PossessPawn.uc
2026-07-14 20:27:09 +07:00

38 lines
1017 B
Ucode

//=============================================================================
// ACTION_PossessPawn.
// Possess the Pawn with the PawnTag. Destroy any previous MonsterController.
// by SuperApe -- Dec 2005
//=============================================================================
class ACTION_PossessPawn extends ScriptedAction;
var() name PawnTag;
var bool bPawnExists;
function bool InitActionFor( ScriptedController C )
{
local Pawn P;
local MonsterController MC;
bPawnExists = false;
forEach C.DynamicActors( class'Pawn', P, PawnTag )
{
bPawnExists = true;
if ( P.Controller.IsA('MonsterController') )
MC = MonsterController( P.Controller );
P.Controller.Unpossess();
if ( P.Health > 0 )
{
C.Possess( P );
P.Controller = C;
P.AIScriptTag = C.Tag;
}
else P.AIScriptTag = '';
if ( MC != None )
MC.Destroy();
}
if ( !bPawnExists )
Warn("No Pawn with tag "$PawnTag$" exists!");
return false;
}