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

85 lines
2.5 KiB
Ucode

//=============================================================================
// KFSM_Emerge_Crawler
//=============================================================================
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
class KFSM_Emerge_Crawler extends KFSM_Emerge;
var() byte LastEmergeType;
/** Stop the movement and play the stun animation for all clients */
function name PlayEmerge()
{
local name EmergeAnim;
EmergeAnim = Super.PlayEmerge();
LastEmergeType = KFPOwner.SpecialMoveFlags & 15;
// Special cases for Crawler's collision restoration and physics adjustments after emerge
//SetCrawlerPostEmergeFlags( EmergeAnim );
return EmergeAnim;
}
/** Crawler-specific emerge handling to make adjustments immediately after emerging to avoid unwanted
basechanges, etc. */
function SetCrawlerPostEmergeFlags( name EmergeAnim )
{
// deprecated function
}
/** Called from SpecialMoveEnded */
//function RestoreCollision()
//{
// // @hack: collision tends to be in the wall, nudge outward. FitCollision will be less likely to fail
// if ( EmergeType == EMERGE_Wall248UU )
// {
// PawnOwner.SetLocation( PawnOwner.Location + 45.f * vector(PawnOwner.rotation) );
// }
// else if ( EmergeType == EMERGE_WallHigh )
// {
// PawnOwner.SetLocation( PawnOwner.Location + 60.f * vector(PawnOwner.rotation) );
// }
// else if ( EmergeType == EMERGE_Ceiling )
// {
// PawnOwner.SetLocation( PawnOwner.Location + 48.f * vect(0,0,-1) );
// }
//
// Super.RestoreCollision();
//}
/** Variant is still using parent's array length! Just hardcode variant here */
function name GetEmergeAnim( byte EmergeType, int Variant )
{
switch( EmergeType )
{
case EMERGE_Floor:
return FloorEmerge[Variant];
case EMERGE_Wall248UU:
return Wall248Emerge[0];
case EMERGE_WallHigh:
return WallHighEmerge[0];
case EMERGE_Ceiling:
return CeilingEmerge[0];
}
`log(GetFuncName()@"Failed to find valid anim for:"$EmergeType@"variant:"$Variant);
}
/** Disabled */
function PushOverlappingHumans();
DefaultProperties
{
DefaultAICommandClass=class'KFGame.AICommand_CrawlerEmerge'
AITimeout=11.f
// removed all wall crawling anims
Wall248Emerge=(Enter_vent_C_V2)
WallHighEmerge=(Enter_ventHigh_C_V2)
CeilingEmerge=(Enter_Ceiling_V4)
}