1
0
KF2-Dev-Scripts/KFGame/Classes/AICommand_Stumble.uc

83 lines
2.1 KiB
Ucode
Raw Normal View History

2020-12-13 15:01:13 +00:00
//=============================================================================
// AICommand_Stumble
//=============================================================================
// Handles AI use of the stumble animation special move
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
class AICommand_Stumble extends AICommand_PushedBySM
within KFAIController;
var vector Momentum;
var EHitZoneBodyPart HitZoneLimb;
/*********************************************************************************************
* Initialization
********************************************************************************************* */
/** Simple constructor that pushes a new instance of the command for the AI */
static function bool Stumble( KFAIController AI, vector InMomentum, EHitZoneBodyPart InHitZoneLimb )
{
local AICommand_Stumble Cmd;
if( AI != None )
{
Cmd = new(AI) default.class;
if( Cmd != None )
{
Cmd.Momentum = InMomentum;
Cmd.HitZoneLimb = InHitZoneLimb;
AI.PushCommand( Cmd );
return true;
}
}
return false;
}
function Pushed()
{
Super.Pushed();
if( !bAllowMeleeCombatDecisions )
{
DisableMeleeRangeEventProbing();
}
`AILog( GetFuncName()$"() Beginning stumble AICommand", 'Command_Stumble' );
AIActionStatus = "Staggering";
}
function Popped()
{
Super.Popped();
EnableMeleeRangeEventProbing();
AIActionStatus = "Done Staggering";
`AILog( GetFuncName()$"() Finished stumble AICommand", 'Command_Stumble' );
}
/*********************************************************************************************
* Overrides
********************************************************************************************* */
function bool ShouldIgnoreTimeTransitions()
{
return true;
}
function bool IsAllowedToAttack()
{
return false;
}
DefaultProperties
{
TimeOutDelaySeconds=10.f
bAllowedToAttack=false
bIgnoreNotifies=true
bAllowMeleeCombatDecisions=false
}