enderalse/source/scripts/magicimodbeginloopend.psc

71 lines
2.2 KiB
Plaintext

scriptName magicImodBeginLoopEnd extends ActiveMagicEffect
{Scripted effect for the Night Eye Spell}
;======================================================================================;
; PROPERTIES /
;=============/
Bool Property bPlayerOnly = False auto
{Set this if you only want this Imod to play if the player is the spell caster.}
float property fDelay = 0.83 auto
{time to wait before switching to constant Imod}
ImageSpaceModifier property IntroFX auto
{IsMod applied at the start of the spell effect}
ImageSpaceModifier property LoopFX auto
{main isMod for spell}
ImageSpaceModifier property OutroFX auto
{IsMod applied at the end of the spell effect}
Float Property fImodStrength = 1.0 auto
{IsMod Strength from 0.0 to 1.0}
; sound property IntroSoundFX auto ; create a sound property we'll point to in the editor
; sound property OutroSoundFX auto ; create a sound property we'll point to in the editor
; Obtain the target of the active fire effect
Bool bIsOkToPlay = true
bool bIsFinishing = false
actor TargetActor
actor CasterActor
;======================================================================================;
; EVENTS /
;=============/
Event OnEffectStart(Actor Target, Actor Caster)
TargetActor = Target
CasterActor = Caster
if bPlayerOnly
if CasterActor != game.GetPlayer()
bIsOkToPlay = False
endif
endif
if bIsOkToPlay
;int instanceID = IntroSoundFX.play((target as objectReference)) ; play IntroSoundFX sound from my self
IntroFX.remove()
LoopFX.remove() ;Kill Imods from another cast, if running.
OutroFX.remove()
introFX.apply(fImodStrength) ; apply isMod at full strength
utility.wait(fDelay) ; NOTE - neccessary?
if bIsFinishing == False
;LoopFX.apply()
introFX.PopTo(LoopFX,fImodStrength) ; remove initial FX
endif
endif
EndEvent
Event OnEffectFinish(Actor Target, Actor Caster)
bIsFinishing = True
if bIsOkToPlay
;int instanceID = OutroSoundFX.play((target as objectReference)) ; play OutroSoundFX sound from my self
introFX.remove()
;LoopFX.remove()
LoopFX.PopTo(OutroFX,fImodStrength)
endif
endEvent