1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

59 lines
2.0 KiB

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