enderalse/scripts/source/_00e_game_oorbayaspawnsc.psc

87 lines
2.9 KiB
Plaintext

Scriptname _00E_Game_OorbayaSpawnSC extends Actor
{This script controls how Oorbayas spawn when the player kills a wild-mage}
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnDeath(Actor akKiller)
Actor akParent = self as Actor
PlayVictimVFX(akParent)
InitializeOorbaya(akParent, akKiller)
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function PlayVictimVFX(Actor akParent)
_00E_NPCMagicAnomalyScreamM.Play(akParent)
akParent.SetCriticalStage(akParent.CritStage_DisintegrateStart)
ShockDisintegrate01FXS.Play(akParent)
Utility.Wait(2)
akParent.PlaceAtMe(_00E_MQ11c_RyneusTransformExplosion)
akParent.SetAlpha(0.0, true)
Game.ShakeCamera(afStrength = 0.1)
akParent.AttachAshPile(DefaultAshPile1)
akParent.SetCriticalStage(akParent.CritStage_DisintegrateEnd)
EndFunction
Function InitializeOorbaya(Actor akParent, Actor akKiller)
Actor akOorbaya = akParent.PlaceActorAtMe(_01E_Oorbaya, 1)
Debug.SendAnimationEvent(akOorbaya, "returnToDefault")
akOorbaya.SetAlpha(0.0)
(akOorbaya as _00E_CombatSoundtrackScript)._00E_Music_Combat_Regular = (akParent as _00E_CombatSoundtrackScript)._00E_Music_Combat_Regular
ObjectReference objParent = akParent as ObjectReference
(akOorbaya as _00E_OorbayaDeathScript).__Config_RewardExp = ((objParent as _00E_EPOnDeath).RewardExp) / 2
akOorbaya.SetActorValue("Health", akParent.GetBaseActorValue("Health") * __Config_fOorbayaStrength)
akOorbaya.SetActorValue("Magicka", akParent.GetBaseActorValue("Magicka") * __Config_fOorbayaStrength)
akOorbaya.SetActorValue("Stamina", akParent.GetBaseActorValue("Stamina") * __Config_fOorbayaStrength)
_00E_QuestFunctions.WaitForReferenceToLoad(akOorbaya)
Debug.SendAnimationEvent(akOorbaya, "summonStart")
_00E_NPCOorbaya_RoarM.Play(akOorbaya)
akOorbaya.SetAlpha(0.9, true)
akOorbaya.SetGhost(False)
Utility.Wait(0.9)
Debug.SendAnimationEvent(akOorbaya, "IdleForceDefaultState")
If akKiller
akOorbaya.StartCombat(akKiller)
EndIf
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
Float Property __Config_fOorbayaStrength = 0.75 Auto
{How strong the Oorbaya should be in relation to the parent actor. Default = 0.75}
Activator Property DefaultAshPile1 Auto
Sound Property _00E_NPCOorbaya_RoarM Auto
Sound Property _00E_NPCMagicAnomalyScreamM Auto
EffectShader Property ShockDisintegrate01FXS Auto
ActorBase Property _01E_Oorbaya Auto
Explosion Property _00E_MQ11c_RyneusTransformExplosion Auto