enderalse/source/scripts/_00e_a1_onslaughtsc.psc

114 lines
3.2 KiB
Plaintext

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)
_00E_A1_OnslaughtCloakSP.Cast(PlayerREF, 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
if SKSE.GetVersion()
; TODO: Investigate GetMagnitude() returning 7.0, first tier damage, on all three shout tiers
fWaitTimer = GetDuration() / 10
else
fWaitTimer = 0.2
endif
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
bool bDashing
Actor akDummy
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
SPell Property _00E_A1_OnslaughtCloakSP 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