151 lines
5.0 KiB
Plaintext
151 lines
5.0 KiB
Plaintext
Scriptname _00E_MQ11c_OorbayaBossFightScript extends Actor
|
|
|
|
Import Utility
|
|
Import Math
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnInit()
|
|
|
|
Oorbaya.ForceRefTo(Self)
|
|
Self.StartCombat(PlayerREF)
|
|
BaseHealth = Self.GetBaseActorValue("Health")
|
|
|
|
EndEvent
|
|
|
|
auto state Fighting
|
|
|
|
Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
|
|
|
|
If (GetActorValue("Health") < BaseHealth * 0.03) && ! Dying
|
|
Dying = True
|
|
GotoState("Dying")
|
|
PlayDeathSequence()
|
|
EndIf
|
|
|
|
EndEvent
|
|
|
|
endstate
|
|
|
|
state Dying
|
|
; do nothing
|
|
endstate
|
|
|
|
;=====================================================================================
|
|
; FUNCTIONS
|
|
;=====================================================================================
|
|
|
|
Function PlayDeathSequence()
|
|
|
|
Self.SetGhost(True)
|
|
;; Gavrant: the code below is commented out because combatIdleStart breaks something in AI and the oorbaya stops making attacks in a fight
|
|
;Debug.SendAnimationEvent(Self, "combatIdleStart")
|
|
AtronachUnsummonDeathFXS.Play(Self)
|
|
int DyingSound = _00E_NPCOorbaya_DeathM.Play(Self)
|
|
Sound.SetInstanceVolume(DyingSound, 8.0)
|
|
Wait(1)
|
|
Self.SetCriticalStage(Self.CritStage_DisintegrateStart)
|
|
_00E_OorbayaFXShader.Stop(Self)
|
|
Self.PlaceAtMe(_00E_NPCOorbayaUnleashHeavenExplosion)
|
|
_00E_OorbayaPowerAttackIMOD.Apply()
|
|
ObjectReference AshPile = Self.AttachAshPile(_00E_NPCOorbayaAshPile)
|
|
|
|
if AshPile != None
|
|
AshPile.SetScale(2)
|
|
EndIf
|
|
|
|
utility.wait(0.5)
|
|
AtronachUnsummonDeathFXS.Stop(Self)
|
|
_00E_FXOorbayaTrailEffect2.Stop(Self)
|
|
Self.SetAlpha(0.0, True)
|
|
Self.SetCriticalStage(Self.CritStage_DisintegrateEnd)
|
|
Wait(1.5)
|
|
Self.KillEssential(PlayerREF)
|
|
_00E_Music_CombatEpicBoss.Remove()
|
|
_00E_Music_Combat_Epic_Transition.Remove()
|
|
MQ11c.SetCurrentStageID(260)
|
|
|
|
EndFunction
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
Float Property PrepareTime = 1.0 Auto
|
|
{How long the Oorbaya waits before either finishing healing or launching his attack}
|
|
int Property HealingRounds = 5 Auto Hidden
|
|
{How often the Oorbaya heals himself when entering the recovering state.}
|
|
Float Property HealAmount = 20.0 Auto
|
|
{How much the Oorbaya heals with each "Burst"}
|
|
Float Property UpdateTime = 20.0 Auto
|
|
{How often the Oorbaya will raise his shield and launch a special attack - either healing himself or casting the spell}
|
|
|
|
bool Shield
|
|
bool HealInterrupted
|
|
bool Destroying = False
|
|
bool Dying
|
|
int BarrierLP
|
|
int BarrierConjure
|
|
Float DamageDealt
|
|
Float BaseHealth
|
|
|
|
Actor Property PlayerREF Auto
|
|
|
|
Activator Property _00E_NPCOorbayaHealingSphere Auto
|
|
Activator Property _00E_NPCOorbayaAshPile Auto
|
|
|
|
Idle Property AtronachFrostUnsummon Auto
|
|
Idle Property AtronachFrostCombatStart Auto
|
|
Idle Property AtronachFrostSummonedStart Auto
|
|
|
|
Light Property _00E_NPCOorbayaHealingLight Auto
|
|
|
|
EffectShader Property _00E_NPCOOrbayaTeleportBlue Auto
|
|
EffectShader Property _00E_NPCOOrbayaTeleportRed Auto
|
|
EffectShader Property _00E_TeleportReappearShader Auto
|
|
EffectShader Property _00E_OorbayaFXShader Auto
|
|
EffectShader Property GhostEtherealFXShaderIntro Auto
|
|
EffectShader Property AtronachUnsummonDeathFXS Auto
|
|
|
|
Explosion Property _00E_NPCOorbayaTeleportExplosionBlue Auto
|
|
Explosion Property _00E_NPCOorbayaTeleportExplosionRed Auto
|
|
Explosion Property _00E_NPCOorbayaUnleashHeavenExplosion Auto
|
|
|
|
Static Property XMarkerHeading Auto
|
|
|
|
Message Property _00E_MQ11c_sOorbayaHealingInterrupted Auto
|
|
Message Property _00E_MQ11c_sOorbayaPrepareForAttack Auto
|
|
Message Property _00E_MQ11c_sOorbayaScreamPain Auto
|
|
|
|
ReferenceAlias Property Oorbaya Auto
|
|
|
|
Sound Property _00E_NPCOorbaya_HitHeavyM Auto
|
|
Sound Property _00E_NPCOorbaya_IdleTauntM Auto
|
|
Sound Property _00E_NPCOorbaya_IdleGrowlM Auto
|
|
Sound Property _00E_NPCOorbaya_IdleIntimidateM Auto
|
|
Sound Property _00E_A2_RiftDrainSound Auto
|
|
Sound Property MAGMysticismSoulTrapCapture Auto
|
|
Sound Property _00E_NPC_OorbayaUnleashHeavenCharge Auto
|
|
Spell Property _00E_NPCOorbayaUnleashHeavenSpell Auto
|
|
Sound Property _00E_A1_Rift_ClosePortalSound Auto
|
|
Sound Property MAGPowerRacialHitskinM Auto
|
|
Sound Property _00E_NPCOorbaya_DeathM Auto
|
|
Sound Property _00E_NPCOorbaya_RoarM Auto
|
|
|
|
GlobalVariable Property _00E_MQ11c_BallistaFired Auto
|
|
GlobalVariable Property _00E_MQ11c_RyneusOorbayaNoCombat Auto
|
|
|
|
MusicType Property _00E_Music_CombatEpicBoss Auto
|
|
MusicType Property _00E_Music_Combat_Epic_Transition Auto
|
|
|
|
Quest Property MQ11c Auto
|
|
|
|
ObjectReference Property OorbayaOrigin Auto
|
|
ObjectReference Property MQ11c_SC10_OorbayaShootMarker Auto
|
|
ObjectReference Property TeleportBackMarker Auto Hidden
|
|
|
|
ImageSpaceModifier Property _00E_OorbayaPowerAttackIMOD Auto
|
|
|
|
VisualEffect Property _00E_FXOorbayaTrailEffect2 Auto |