//============================================================================= // KFSM_PlayerSpecial_Slasher //============================================================================= // Player controlled stalker attacks //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC //============================================================================= class KFSM_PlayerSlasher_Roll extends KFSM_Evade; var rotator InitialRotation; /** Notification called when Special Move starts */ function SpecialMoveStarted( bool bForced, Name PrevMove ) { super.SpecialMoveStarted( bForced, PrevMove ); InitialRotation = KFPOwner.Rotation; } /** * Checks to see if this Special Move can be done. */ protected function bool InternalCanDoSpecialMove() { return KFPOwner != none && KFPOwner.Physics == PHYS_Walking && super.InternalCanDoSpecialMove(); } static function byte PackFlagsBase(KFPawn P) { return class'KFSM_PlayerMeleeBase'.static.GetFourWayMoveDirection(P); } /** Constantly apply velocity while move is active */ function Tick( float DeltaTime ) { super.Tick( DeltaTime ); if( KFPOwner != none && KFPOwner.Role != ROLE_SimulatedProxy ) { KFPOwner.SetRotation( InitialRotation ); } } defaultproperties { bUseRootMotion=true bDisableSteering=true bLockPawnRotation=true EvadeAnims.Empty EvadeAnims(DIR_Forward)=(Anims=(Player_Roll_F)) EvadeAnims(DIR_Backward)=(Anims=(Player_Roll_B)) EvadeAnims(DIR_Left)=(Anims=(Player_Roll_L)) EvadeAnims(DIR_Right)=(Anims=(Player_Roll_R)) // --------------------------------------------- // Camera bUseCustomThirdPersonViewOffset=true CustomThirdPersonViewOffset={( OffsetHigh=(X=-175,Y=50,Z=-80), OffsetLow=(X=-220,Y=50,Z=-80), OffsetMid=(X=-145,Y=50,Z=-90), )} ViewOffsetInterpTime=0.3f CustomCameraFOV=80.f CameraFOVTransitionTime=0.3f }