71 lines
2.2 KiB
Plaintext
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
|