1
0
KF2-Dev-Scripts/KFGame/Classes/AICommand_CrawlerEmerge.uc
2020-12-13 18:01:13 +03:00

95 lines
2.1 KiB
Ucode

//=============================================================================
// AICommand_CrawlerEmerge
//=============================================================================
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
class AICommand_CrawlerEmerge extends AICommand_PushedBySM
within KFAIController_ZedCrawler;
/*********************************************************************************************
* Initialization
********************************************************************************************* */
static function bool Emerge( KFAIController_ZedCrawler AI )
{
local AICommand_CrawlerEmerge Cmd;
if( AI != None )
{
Cmd = new(AI) Default.Class;
if( Cmd != None )
{
AI.PushCommand(Cmd);
return true;
}
}
return false;
}
function NavigationPoint GetStartAnchor()
{
return none;
}
function NavigationPoint GetUpdatedAnchor()
{
return none;
}
function SpecialMoveTimeout()
{
// Temporarily disabled
`AILog( self$" Special move timed out", 'Command_PushedBySM' );
if( MyKFPawn.SpecialMove == SpecialMove )
{
MyKFPawn.EndSpecialMove();
}
if( MyKFPawn != none )
{
MyKFPawn.MyKFAIC.AttemptToTeleport();
return;
}
Status = 'Failure';
AbortCommand(self);
}
state WaitForMove
{
function bool IsSpecialMoveComplete()
{
if( !bPreparingMove || MyKFPawn == None || MyKFPawn.SpecialMove != SpecialMove )
{
return true;
}
return false;
}
Begin:
SetTimer( TimeOutDelaySeconds, FALSE, nameof(self.SpecialMoveTimeOut), self );
do
{
Sleep(0.1f);
} until( IsSpecialMoveComplete() );
// if( Pawn.bCrawler )
// {
// SetFocalPoint(Vect(0,0,0));
// MyKFPawn.ResetDesiredRotation();
// }
`AILog( "bPreparingMove:" @ bPreparingMove @ "MyKFPawn:" @ MyKFPawn @ "SpecialMove:" @ MyKFPawn.SpecialMove @ SpecialMove, 'Command_PushedBySM' );
Status = 'Success';
PopCommand( self );
}
DefaultProperties
{
TimeOutDelaySeconds=11.f
}