1
0
KF2-Dev-Scripts/KFGameContent/Classes/KFSM_PlayerHusk_Suicide.uc

65 lines
2.0 KiB
Ucode
Raw Normal View History

2020-12-13 15:01:13 +00:00
//=============================================================================
// KFSM_PlayerHusk_Suicide
//=============================================================================
// Play a suicide attack animation sequence
//=============================================================================
// Killing Floor 2
// Copyright (C) 2016 Tripwire Interactive LLC
//=============================================================================
class KFSM_PlayerHusk_Suicide extends KFSM_Husk_Suicide;
protected function bool InternalCanDoSpecialMove()
{
if( KFPOwner.WorldInfo.GRI.bMatchIsOver || KFGameReplicationInfoVersus(KFPOwner.WorldInfo.GRI).bRoundIsOver )
{
return false;
}
return super.InternalCanDoSpecialMove();
}
/** Interrupts the special move if the player has released the button */
function SpecialMoveFlagsUpdated()
{
if( KFPOwner.SpecialMoveFlags == FLAG_SpecialMoveButtonReleased )
{
bPendingStopFire = true;
bCanBeInterrupted = true;
// End the special move on the server
if( KFPOwner.Role == ROLE_Authority )
{
// Wait 2 frames for the pending stopfire flag to propagate
KFPOwner.SetTimer( KFPOwner.WorldInfo.DeltaSeconds*2.f, false, nameOf(KFPOwner.EndSpecialMove) );
}
}
else
{
super.SpecialMoveFlagsUpdated();
}
}
/** Interrupt the move if the button was released */
function SpecialMoveButtonReleased()
{
bPendingStopFire = true;
KFPOwner.DoSpecialMove( KFPOwner.SpecialMove, true,, FLAG_SpecialMoveButtonReleased );
if( KFPOwner.Role < ROLE_Authority && KFPOwner.IsLocallyControlled() )
{
KFPOwner.ServerDoSpecialMove( KFPOwner.SpecialMove, true,, FLAG_SpecialMoveButtonReleased );
}
}
DefaultProperties
{
// ---------------------------------------------
// SpecialMove
Handle=KFSM_PlayerHusk_Suicide
bPawnRotationLocked=true
// ---------------------------------------------
// Animations
AnimName=Player_Explode
AnimStance=EAS_FullBody
bUseRootMotion=true
}