85 lines
2.5 KiB
Ucode
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)
|
|
}
|