87 lines
2.9 KiB
Plaintext
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
|
|
|