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

128 lines
3.2 KiB
Ucode

//=============================================================================
// KFSM_Siren_Scream
//=============================================================================
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2016 Tripwire Interactive LLC
//=============================================================================
class KFSM_Siren_Scream extends KFSM_ScreamBase;
/** Cached pawn reference */
var KFPawn_ZedSiren MySirenPawn;
/**
* Can a new special move override this one before it is finished?
* This is only if CanDoSpecialMove() == TRUE && !bForce when starting it.
*/
function bool CanOverrideMoveWith( Name NewMove )
{
if ( bCanBeInterrupted && (NewMove == 'KFSM_Stunned' || NewMove == 'KFSM_Stumble' || NewMove == 'KFSM_Knockdown' || NewMove == 'KFSM_Frozen') )
{
return TRUE;
}
return FALSE;
}
/**
* Can the special move be chained after the current one finishes?
*/
function bool CanChainMove( Name NextMove )
{
if( NextMove == 'KFSM_MeleeAttack' )
{
return true;
}
return super.CanChainMove( NextMove );
}
function SpecialMoveStarted( bool bForced, name PrevMove )
{
super.SpecialMoveStarted( bForced, PrevMove );
if (MySirenPawn == none)
{
MySirenPawn = KFPawn_ZedSiren(KFPOwner);
}
}
/** Create and initialize projectile shield */
function SpawnProjectileShield()
{
super.SpawnProjectileShield();
// Flicker neck light as a visual cue
if ( MySirenPawn != none )
{
MySirenPawn.EnableScreamFlicker( true );
}
}
/** Destroys the projectile shield based on position in animation */
function Timer_DestroyProjectileShield()
{
DestroyProjectileShield();
}
/** Destroy and clear proectile shield */
function DestroyProjectileShield()
{
super.DestroyProjectileShield();
// Turn off flicker when projectile shield goes down
if( MySirenPawn != none )
{
MySirenPawn.EnableScreamFlicker( false );
}
}
DefaultProperties
{
// SpecialMove
ProjectileShieldLifetime=2.2 // 0.52
AnimName=Atk_Combo1_V1
Handle=KFSM_Siren_Scream
bDisableSteering=false
bDisableMovement=false
AnimStance=EAS_UpperBody
bCanBeInterrupted=true
ScreamDamage=15
ScreamDamageFrequency=0.5f //1.0
ScreamInterruptSound=AkEvent'WW_ZED_Siren.Stop_Siren_Scream'
bDrawProjectileShield=false
bDrawWaveRadius=false
ExplosionActorClass=class'KFExplosion_SirenScream'
// explosion
Begin Object Class=KFGameExplosion Name=ExploTemplate0
//Damage=15 @NOTE: This is now set using the ScreamDamage variable -MattF
DamageRadius=600 //800
DamageFalloffExponent=1f
DamageDelay=0.f
MomentumTransferScale=100//-100000 Reactivate this to add siren pull
ActorClassToIgnoreForDamage=class'KFPawn_Monster'
// Damage Effects
MyDamageType=class'KFDT_Sonic'
KnockDownStrength=0
FractureMeshRadius=200.0
FracturePartVel=500.0
ExplosionEffects=none
ExplosionSound=none
// Camera Shake
CamShake=CameraShake'FX_CameraShake_Arch.Misc_Explosions.SirenScream'
CamShakeInnerRadius=450
CamShakeOuterRadius=700 //900
CamShakeFalloff=1.f
bOrientCameraShakeTowardsEpicenter=true
End Object
ExplosionTemplate=ExploTemplate0
}