//=============================================================================
// KFSM_Matriarch_WarningSiren
//=============================================================================
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2019 Tripwire Interactive LLC
//=============================================================================

class KFSM_Matriarch_WarningSiren extends KFSM_ScreamBase;

/** Max distance between the Matriarch and the current victim target */
var float MaxVictimDistance;

var name WindUpAnimName;

function SpecialMoveStarted(bool bForced, name PrevMove)
{
	super.SpecialMoveStarted(bForced, PrevMove);

	PlayWindUpAnimation();

	KFPawn_ZedMatriarch(KFPOwner).PlayWarningSirenDialog();
}

/** Plays subsequent animations in the barrage */
function AnimEndNotify(AnimNodeSequence SeqNode, float PlayedTime, float ExcessTime)
{
	switch (DeferredSeqName)
	{
	case WindUpAnimName:
		PlayFireAnim();
		break;

	case AnimName:
		KFPOwner.EndSpecialMove();
		break;
	}
}

/** Overridden to do nothing */
function PlayAnimation();

/** Plays our wind up anim, starts the barrel spin skel controller */
function PlayWindUpAnimation()
{
	PlaySpecialMoveAnim(WindUpAnimName, EAS_FullBody, BlendInTime, BlendOutTime, 1.f);
	KFPOwner.ZeroMovementVariables();
}

/** Plays our fire animation, starts weapon fire */
function PlayFireAnim()
{
	PlaySpecialMoveAnim(AnimName, EAS_FullBody, 0.1f, 0.2f);
	KFPOwner.ZeroMovementVariables();

	ScreamBegan(); // @todo: for the siren, this is called in an anim notify
}

function SpecialMoveEnded(Name PrevMove, Name NextMove)
{
	super.SpecialMoveEnded(PrevMove, NextMove);
}

defaultproperties
{
	Handle=KFSM_Matriarch_WarningSiren
	WindUpAnimName=Warning_Siren_In
	AnimName=Warning_Siren

	MaxVictimDistance=300.f

	bCanBeInterrupted=false
	bDisableSteering=true
	bDisableMovement=true

	bShouldDeferToPostTick=true

	ScreamDamage=35

	// explosion
	Begin Object Name=ExploTemplate0
		DamageRadius=1000 //800
		DamageFalloffExponent=0.5f
		DamageDelay=0.f

		MomentumTransferScale=100//-100000 Reactivate this to add siren pull

		ActorClassToIgnoreForDamage=class'KFPawn_Monster'

		// Damage Effects
		MyDamageType=class'KFDT_Sonic_MatriarchWarningSiren'
		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
}