114 lines
3.2 KiB
Plaintext
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
|