144 lines
3.0 KiB
Plaintext
144 lines
3.0 KiB
Plaintext
Scriptname FS_NQR05_BossfightAbnormalitySC extends Actor
|
|
|
|
float Property invulnerabilityLength = 15 autoreadonly
|
|
int Property invulnerabilityWait = 50 autoreadonly
|
|
float Property attackDamageMultDuringInvulnerability = 3 autoreadonly
|
|
|
|
Spell Property _FS_NQR05_BossfightFireCloakSP Auto
|
|
|
|
ImageSpaceModifier Property MAGFireBoltEXCastImod Auto
|
|
Explosion Property _00E_FS_NQR05_PerversionExp Auto
|
|
|
|
Scene Property FS_NQR05_SC_Bossfight Auto
|
|
|
|
Topic Property FS_NQR05_Warnings_Invulnerability Auto
|
|
|
|
VisualEffect Property SoulTrapPVFX02 Auto
|
|
|
|
GlobalVariable Property FS_NQR05_AbnormalityDead Auto
|
|
GlobalVariable Property FS_NQR05_AbnormalityInitialized Auto
|
|
|
|
Actor Property FS_NQR05_TharaelREF Auto
|
|
|
|
Quest Property FS_NQR05 Auto
|
|
|
|
Sound Property MAGCloakOut Auto
|
|
|
|
Idle Property GiantKnownDown Auto
|
|
|
|
Actor playerREF
|
|
float oldAttackDmgMult
|
|
|
|
Event OnEnterBleedout()
|
|
|
|
Self.SetActorValue("healRate", 0.0)
|
|
Self.SetActorValue("healRatemult", 0.0)
|
|
FS_NQR05_AbnormalityDead.SetValueInt(1)
|
|
|
|
EndEvent
|
|
|
|
Event OnDeath(Actor killer)
|
|
FS_NQR05.SetCurrentStageID(255)
|
|
gotoState("Dead")
|
|
EndEvent
|
|
|
|
Event OnLoad()
|
|
|
|
if !FS_NQR05.IsRunning()
|
|
; Don't run the fight routine in debug
|
|
return
|
|
endif
|
|
|
|
if FS_NQR05.GetCurrentStageID() >= 251 && FS_NQR05.GetCurrentStageID() < 255
|
|
gotostate("CombatStart")
|
|
elseif FS_NQR05_AbnormalityInitialized.GetValueInt() == 0
|
|
self.playIdle(GiantKnownDown)
|
|
FS_NQR05_AbnormalityInitialized.SetValueInt(1)
|
|
registerforSingleUpdate(20)
|
|
endif
|
|
|
|
if !FS_NQR05_SC_Bossfight.IsPlaying()
|
|
self.SetAlpha(0.0)
|
|
endif
|
|
|
|
Endevent
|
|
|
|
Event OnUpdate()
|
|
Endevent
|
|
|
|
State CombatStart
|
|
|
|
Event OnBeginState()
|
|
playerREF = Game.getPlayer()
|
|
Self.RegisterForSingleUpdate(10)
|
|
EndEvent
|
|
|
|
Event OnUpdate()
|
|
|
|
if FS_NQR05.GetCurrentStageID() >= 251 && FS_NQR05.GetCurrentStageID() < 255
|
|
gotoState("Invulnerability")
|
|
endif
|
|
|
|
Endevent
|
|
|
|
Endstate
|
|
|
|
State Invulnerability
|
|
|
|
Event OnBeginState()
|
|
|
|
if FS_NQR05.GetCurrentStageID() >= 251 && FS_NQR05.GetCurrentStageID() < 255
|
|
|
|
MAGFireBoltEXCastImod.Apply()
|
|
;SoulTrapPVFX02.Play(self, -1, heart)
|
|
Utility.wait(1.0)
|
|
FS_NQR05_TharaelREF.Say(FS_NQR05_Warnings_Invulnerability)
|
|
oldAttackDmgMult = Self.GetActorValue("attackdamagemult")
|
|
Utility.wait(3.0)
|
|
self.setghost(True)
|
|
Self.SetActorValue("attackdamagemult", attackDamageMultDuringInvulnerability)
|
|
self.addspell(_FS_NQR05_BossfightFireCloakSP)
|
|
placeatme(_00E_FS_NQR05_PerversionExp)
|
|
Self.RegisterForSingleUpdate(invulnerabilityLength)
|
|
|
|
endif
|
|
|
|
EndEvent
|
|
|
|
Event OnEndState()
|
|
Endevent
|
|
|
|
Event OnUpdate()
|
|
MAGFireBoltEXCastImod.Apply()
|
|
self.setghost(False)
|
|
Self.SetActorValue("attackdamagemult", oldAttackDmgMult)
|
|
self.removespell(_FS_NQR05_BossfightFireCloakSP)
|
|
MAGCloakOut.Play(Self)
|
|
SoulTrapPVFX02.stop(self)
|
|
gotoState("Combat")
|
|
Endevent
|
|
|
|
Endstate
|
|
|
|
State Combat
|
|
|
|
Event OnBeginState()
|
|
Self.RegisterForSingleUpdate(invulnerabilityWait)
|
|
Endevent
|
|
|
|
Event OnUpdate()
|
|
gotoState("Invulnerability")
|
|
Endevent
|
|
|
|
EndState
|
|
|
|
State Dead
|
|
|
|
EndState
|
|
|
|
Function RegisterCombatStart()
|
|
|
|
GoToState("CombatStart")
|
|
|
|
EndFunction
|