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