143 lines
3.9 KiB
Ucode
143 lines
3.9 KiB
Ucode
|
//=============================================================================
|
||
|
// KFSM_Matriarch_LightningStorm
|
||
|
//=============================================================================
|
||
|
//
|
||
|
//=============================================================================
|
||
|
// Killing Floor 2
|
||
|
// Copyright (C) 2019 Tripwire Interactive LLC
|
||
|
//=============================================================================
|
||
|
|
||
|
class KFSM_Matriarch_LightningStorm extends KFSM_PlaySingleAnim;
|
||
|
|
||
|
/** Max distance between the Matriarch and the current victim target */
|
||
|
var float MaxVictimDistance;
|
||
|
|
||
|
/** Wind Up animation name */
|
||
|
var Name WindUpAnimName;
|
||
|
|
||
|
/** Wind Down animation name */
|
||
|
var Name WindDownAnimName;
|
||
|
|
||
|
var KFGameExplosion ExplosionTemplate;
|
||
|
|
||
|
/** Notification called when Special Move starts */
|
||
|
function SpecialMoveStarted(bool bForced, Name PrevMove)
|
||
|
{
|
||
|
super.SpecialMoveStarted(bForced, PrevMove);
|
||
|
|
||
|
PlayWindUpAnimation();
|
||
|
|
||
|
KFPawn_ZedMatriarch(KFPOwner).PlayLightningStormDialog();
|
||
|
}
|
||
|
|
||
|
/** Overridden to do nothing */
|
||
|
function PlayAnimation();
|
||
|
|
||
|
/** Plays our wind up anim, starts the barrel spin skel controller */
|
||
|
function PlayWindUpAnimation()
|
||
|
{
|
||
|
// bUseRootMotion = true; ?
|
||
|
// EnableRootMotion(); ??
|
||
|
// SetGunTracking ???
|
||
|
|
||
|
// Zero movement
|
||
|
KFPOwner.ZeroMovementVariables();
|
||
|
|
||
|
PlaySpecialMoveAnim(WindUpAnimName, EAS_FullBody, BlendInTime, BlendOutTime, 1.f);
|
||
|
}
|
||
|
|
||
|
/** Plays our fire animation, starts weapon fire */
|
||
|
function PlayFireAnim()
|
||
|
{
|
||
|
local KFExplosionActor ExplosionActor;
|
||
|
|
||
|
PlaySpecialMoveAnim(AnimName, EAS_FullBody, 0.1f, 0.2f);
|
||
|
|
||
|
// Zero movement
|
||
|
KFPOwner.ZeroMovementVariables();
|
||
|
|
||
|
// Do damage
|
||
|
ExplosionActor = KFPOwner.Spawn(
|
||
|
class'KFExplosionActor', KFPOwner,, KFPOwner.Mesh.GetBoneLocation('Root'), rotator(vect(0,0,1)));
|
||
|
if (ExplosionActor != none)
|
||
|
{
|
||
|
ExplosionActor.Explode(ExplosionTemplate);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** Plays our wind down animation, stops firing, disables barrel spin skel controller */
|
||
|
function PlayWindDownAnim()
|
||
|
{
|
||
|
// Zero movement
|
||
|
KFPOwner.ZeroMovementVariables();
|
||
|
|
||
|
PlaySpecialMoveAnim(WindDownAnimName, EAS_FullBody, BlendInTime, BlendOutTime, 1.f);
|
||
|
}
|
||
|
|
||
|
/** Plays subsequent animations in the barrage */
|
||
|
function AnimEndNotify(AnimNodeSequence SeqNode, float PlayedTime, float ExcessTime)
|
||
|
{
|
||
|
switch (DeferredSeqName)
|
||
|
{
|
||
|
case WindUpAnimName:
|
||
|
PlayFireAnim();
|
||
|
break;
|
||
|
|
||
|
case AnimName:
|
||
|
PlayWindDownAnim();
|
||
|
break;
|
||
|
|
||
|
case WindDownAnimName:
|
||
|
KFPOwner.EndSpecialMove();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function SpecialMoveEnded(Name PrevMove, Name NextMove)
|
||
|
{
|
||
|
super.SpecialMoveEnded(PrevMove, NextMove);
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
Handle=KFSM_Matriarch_LightningStorm
|
||
|
bDisableSteering=false
|
||
|
bDisableMovement=true
|
||
|
bCanBeInterrupted=false
|
||
|
bAllowFireAnims=true
|
||
|
bShouldDeferToPostTick=true // enables AnimEndNotify
|
||
|
|
||
|
// Animation
|
||
|
// NOTE: Yes, the animation names are "Lighting," not "LightNing"
|
||
|
WindUpAnimName=Lighting_Storm_In
|
||
|
AnimName=Lighting_Storm_Loop
|
||
|
WindDownAnimName=Lighting_Storm_Out
|
||
|
|
||
|
MaxVictimDistance=400.f
|
||
|
|
||
|
|
||
|
Begin Object Class=KFGameExplosion Name=ExploTemplate1
|
||
|
Damage=65
|
||
|
DamageRadius=800
|
||
|
DamageFalloffExponent=0.f
|
||
|
DamageDelay=0.f
|
||
|
MyDamageType=class'KFDT_EMP_MatriarchLightningStorm'
|
||
|
|
||
|
// Damage Effects
|
||
|
KnockDownStrength=0
|
||
|
KnockDownRadius=0
|
||
|
FractureMeshRadius=0
|
||
|
FracturePartVel=0
|
||
|
ExplosionEffects=KFImpactEffectInfo'ZED_Matriarch_ARCH.Lightning_Storm_Explosion_Arch'
|
||
|
ExplosionSound=AkEvent'WW_ZED_Matriarch.Play_Matriarch_Storm_Attack_01'
|
||
|
MomentumTransferScale=0
|
||
|
|
||
|
// Camera Shake
|
||
|
CamShake=CameraShake'FX_CameraShake_Arch.Grenades.Default_Grenade'
|
||
|
CamShakeInnerRadius=450
|
||
|
CamShakeOuterRadius=900
|
||
|
CamShakeFalloff=1.f
|
||
|
bOrientCameraShakeTowardsEpicenter=true
|
||
|
End Object
|
||
|
ExplosionTemplate=ExploTemplate1
|
||
|
}
|