enderalse/source/scripts/fxatronachstormscript.psc

89 lines
2.8 KiB
Plaintext

Scriptname FXAtronachStormSCRIPT extends activeMagicEffect
{This script runs from the Storm Atronach's ability and controlls the fx arts.}
;===============================================
import utility
import form
;===============================================
VisualEffect Property AtronachStormCloak Auto
EffectShader Property AtronachStormShockFXS Auto
EffectShader Property AtronachUnsummonDeathFXS Auto
Armor Property FXAtronachStormArmor Auto
int atronachHealth
actor selfRef
EVENT OnEffectStart(Actor Target, Actor Caster)
selfRef = caster
;USKP 2.0.1 - Stop this from attaching to the player.
if( selfRef == Game.GetPlayer() )
Return
EndIf
;USSEP 4.1.5 Bug #13993: added this line:
USSEP_RegisterForAnimationEvents (selfRef)
selfRef.PlaySubGraphAnimation( "AutoOneOff" )
;USKP 2.0.3 - Sanity checks added in case properties are not assigned. Ash Guardians in Dragonborn for example.
if( AtronachStormCloak )
AtronachStormCloak.Play(selfRef, -1)
EndIf
AtronachStormShockFXS.Play(selfRef)
if( FXAtronachStormArmor )
selfRef.EquipItem(FXAtronachStormArmor)
EndIf
ENDEVENT
Event OnEffectFinish(Actor akTarget, Actor akCaster)
;USKP 2.0.3 - Sanity checks added in case properties are not assigned. Ash Guardians in Dragonborn for example.
if( AtronachStormCloak )
AtronachStormCloak.Stop(selfRef)
EndIf
AtronachStormShockFXS.Stop(selfRef)
if( FXAtronachStormArmor )
selfRef.unEquipItem(FXAtronachStormArmor)
EndIf
endEvent
EVENT onDying(actor myKiller)
atronachHealth = selfRef.GetActorValue("Health") as int
if atronachHealth > 0
; debug.trace("health > 0")
;USKP 2.0.3 - Sanity checks added in case properties are not assigned. Ash Guardians in Dragonborn for example.
if( AtronachStormCloak )
AtronachStormCloak.Stop(selfRef)
EndIf
AtronachStormShockFXS.Stop(selfRef)
AtronachUnsummonDeathFXS.Play(selfRef)
wait(1.5)
;selfRef.disable()
elseIf atronachHealth <= 0
; debug.trace("health == 0")
;USKP 2.0.3 - Sanity checks added in case properties are not assigned. Ash Guardians in Dragonborn for example.
if( AtronachStormCloak )
AtronachStormCloak.Stop(selfRef)
EndIf
selfRef.PlaySubGraphAnimation( "StopEffect" )
wait(3)
AtronachStormShockFXS.Stop(selfRef)
if( FXAtronachStormArmor )
selfRef.unEquipItem(FXAtronachStormArmor)
EndIf
endIf
ENDEVENT
;-----------------------------------------------------------------
; Added by USSEP 4.1.5 for Bug #13993:
;-----------------------------------------------------------------
Event OnAnimationEvent (ObjectReference akSource, string asEventName)
;do nothing
EndEvent
function USSEP_RegisterForAnimationEvents (actor actorRef)
if actorRef
RegisterForAnimationEvent (actorRef, "AutoOneOff")
RegisterForAnimationEvent (actorRef, "StopEffect")
endif
endFunction