Scriptname _00E_A1_OnslaughtSC extends activemagiceffect  

Import _00E_TalentLibrary

;=====================================================================================
;              							 EVENTS                   					 
;=====================================================================================

Event OnUpdate()

	if bDashing 
		bDashing = False
		PlayImpactExplosion()
	Else
		_00E_A1_OnslaughtSynergyTimer.SetValueInt(0)
	EndIf

EndEvent

Event OnEffectStart(Actor akTarget, Actor akCaster)

	SetValues()
	MAGShoutSprint03.Apply()
	MAGShoutSprintFire.Play(PlayerREF)	
	bDashing = True
	RegisterForSingleUpdate(fWaitTimer)
	
EndEvent

;=====================================================================================
;              							 FUNCTIONS                   					 
;=====================================================================================

Function PlayDashVisuals()

	akDummy = PlayerREF.PlaceActorAtMe(_00E_A1_OnslaughtDummy) as Actor
	akDummy.MoveTo(PlayerREF)
		
EndFunction

Function PlayImpactExplosion()

	_00E_A1_OnslaughtSynergyTimer.SetValueInt(1)
	PlayerREF.KnockAreaEffect(fCollisionForce, 128)
	_00E_A1_OnslaughtImpactIMOD.Apply()
	PlayerREF.PlaceAtMe(_00E_FXDustExplosionBig)
	PlayerREF.PlaceAtMe(_00E_A1_OnslaughtImpactEXP)
	Game.ShakeCamera(afStrength = 0.75)
	VOCShoutImpactPushImpactDragonSDM.Play(PlayerREF)
	MAGPerkShieldChargeImpactM.Play(PlayerREF)
	PlayerREF.SetAlpha(1.0)
	RegisterForSingleUpdate(2)
	
EndFunction

Function SetValues()

	int iIndex = GetPlayerTalentLevel(_00E_Class_WarriorPerk_Talent_Onslaught, _00E_Class_WarriorPerk_Talent_Onslaught2, _00E_Class_WarriorPerk_Talent_Onslaught3)

	if iIndex == 1
		fCollisionForce = fCollisionForce_Level_01
	Elseif iIndex == 2
		fCollisionForce = fCollisionForce_Level_02
	Else
		fCollisionForce = fCollisionForce_Level_03
	EndIf
		
	fCollisionDamage = GetMagnitude()
	fWaitTimer = GetDuration()/10
	
	_00E_A1_OnslaughtCloakDMG.SetNthEffectMagnitude(0, fCollisionDamage/2)
	
EndFunction

;=====================================================================================
;              							 PROPERTIES                   					 
;=====================================================================================

bool bDashing

Actor akDummy

float fCollisionDamage
float fWaitTimer 
float fCollisionForce

float fCollisionForce_Level_01 = 0.3 
float fCollisionForce_Level_02 = 0.5 
float fCollisionForce_Level_03 = 0.7 

Spell Property _00E_A1_OnslaughtCloakDMG Auto

Perk Property _00E_Class_WarriorPerk_Talent_Onslaught Auto
Perk Property _00E_Class_WarriorPerk_Talent_Onslaught2 Auto
Perk Property _00E_Class_WarriorPerk_Talent_Onslaught3 Auto

Actor Property PlayerREF Auto
ActorBase Property _00E_A1_OnslaughtDummy Auto

GlobalVariable Property _00E_A1_OnslaughtSynergyTimer Auto

Explosion Property _00E_A1_OnslaughtImpactEXP Auto
Explosion Property _00E_FXDustExplosionBig Auto

Sound Property MAGPerkShieldChargeImpactM Auto
Sound Property VOCShoutImpactPushImpactDragonSDM Auto
Sound Property MAGShoutSprintFire Auto

ImageSpaceModifier Property _00E_A1_OnslaughtImpactIMOD Auto
ImageSpaceModifier Property MAGShoutSprint03 Auto