60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
|
Scriptname _00E_FS_Affinity_RitualistSC extends activemagiceffect
|
||
|
|
||
|
_FS_Phasmalist_ControlQuest Property ControlQuest Auto
|
||
|
_FS_Phasmalist_AffinityControlQuest Property AffinityControlQuest Auto
|
||
|
GlobalVariable Property _00E_FS_PlayerHasSummonedCreature Auto
|
||
|
Message Property _00E_FS_Affinity_Ritualist_ApparationBoost Auto
|
||
|
|
||
|
float boosted = 0.0
|
||
|
|
||
|
Event OnEffectStart(Actor akTarget, Actor akCaster)
|
||
|
AffinityControlQuest.registerForRitualistEvents(Self)
|
||
|
RegisterForModEvent("Phasmalist_ApparationSummon", "OnApparationSummoned")
|
||
|
RegisterForModEvent("PlayerSummonCreature", "OnPlayerSummonCreature")
|
||
|
Endevent
|
||
|
|
||
|
Function OnLoadGame()
|
||
|
RegisterForModEvent("Phasmalist_ApparationSummon", "OnApparationSummoned")
|
||
|
RegisterForModEvent("PlayerSummonCreature", "OnPlayerSummonCreature")
|
||
|
EndFunction
|
||
|
|
||
|
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
||
|
AffinityControlQuest.unRegisterForRitualistEvents()
|
||
|
UnRegisterForModEvent("Phasmalist_ApparationSummon")
|
||
|
UnRegisterForModEvent("PlayerSummonCreature")
|
||
|
if ControlQuest.apparationAlias.GetActorReference()
|
||
|
removeBoost()
|
||
|
Endif
|
||
|
Endevent
|
||
|
|
||
|
Event OnApparationSummoned(string eventName, string strArg, float numArg, Form sender)
|
||
|
if (_00E_FS_PlayerHasSummonedCreature.GetValue())
|
||
|
applyBoost()
|
||
|
Endif
|
||
|
Endevent
|
||
|
|
||
|
Event OnPlayerSummonCreature(string eventName, string strArg, float numArg, Form sender)
|
||
|
if ControlQuest.apparationAlias.GetActorReference()
|
||
|
applyBoost()
|
||
|
Endif
|
||
|
Endevent
|
||
|
|
||
|
; called from _FS_Phasmalist_AffinityControlQuest since there is a bug with modevents that are send from inside oneffectfinish events
|
||
|
Function OnPlayerUnsummonSummonedCreature()
|
||
|
if ControlQuest.apparationAlias.GetActorReference()
|
||
|
removeBoost()
|
||
|
Endif
|
||
|
Endfunction
|
||
|
|
||
|
Function applyBoost()
|
||
|
boosted = Self.getMagnitude()
|
||
|
ControlQuest.apparationAlias.getActorReference().modAv("attackDamageMult", boosted)
|
||
|
if (boosted != 0)
|
||
|
Debug.Notification(_00E_FS_Affinity_Ritualist_ApparationBoost.GetName())
|
||
|
Endif
|
||
|
EndFunction
|
||
|
|
||
|
Function removeBoost()
|
||
|
ControlQuest.apparationAlias.getActorReference().modAV("attackDamageMult", -boosted)
|
||
|
Endfunction
|