4
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

109 lines
2.8 KiB

Scriptname _00E_NQ_G_03_PetrifiedCombatSC extends ReferenceAlias
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnInit()
akSelf = Self.GetActorReference()
If NQ_G_03.GetCurrentStageID() == 15
akSelf.SetGhost(false)
akSelf.SetActorValue("Aggression", 2)
EndIf
EndEvent
Event OnEnterBleedout()
If NQ_G_03.GetCurrentStageID() < 20
SpawnProtectiveBarrier()
EndIf
EndEvent
Event OnUpdate()
if !akSelf.IsBleedingOut() || NQ_G_03.GetCurrentStageID() >= 20
StopProtectiveBarrier()
Else
RegisterForSingleUpdate(1)
Endif
EndEvent
Event OnCombatStateChanged(Actor akTarget, int aeCombatState)
If (aeCombatState == 0)
NQ_G_03Functions.TryToChangeCombatSoundtrack()
ElseIf (aeCombatState == 1) && akTarget == Game.GetPlayer()
NQ_G_03Functions.TryToChangeCombatSoundtrack()
akSelf.SetActorValue("Aggression", 2)
akSelf.SetGhost(false)
EndIf
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function SpawnProtectiveBarrier()
_00E_A2_GhostwalkTeleportVFX.Play(akSelf)
AzuraEvil.Play(akSelf)
akSelf.SetAlpha(0.75)
If bIsDevra
If !_00E_NQ_G_03_AlyxREF.IsBleedingOut()
NightingaleStrifeAbsorbTargetVFX.Play(_00E_NQ_G_03_AlyxREF, akFacingObject = _00E_NQ_G_03_DevraREF)
Else
; Do nothing
EndIf
Else
If !_00E_NQ_G_03_DevraREF.IsBleedingOut()
NightingaleStrifeAbsorbTargetVFX.Play(_00E_NQ_G_03_DevraREF, akFacingObject = _00E_NQ_G_03_AlyxREF)
Else
; Do nothing
EndIf
EndIf
RegisterForSingleUpdate(1)
EndFunction
Function StopProtectiveBarrier()
AzuraEvil.Stop(akSelf)
akSelf.SetAlpha(1)
akSelf.RestoreActorValue("Health", (akSelf.GetBaseActorValue("Health")*__Config_fHealthPercentage))
MAGRestorationFFFire.Play(akSelf)
If (NQ_G_03.GetCurrentStageID() == 15)
akSelf.StartCombat(Game.GetPlayer())
Endif
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
bool Property bIsDevra Auto
float Property __Config_fHealthPercentage = 0.3 Auto
Actor akSelf
Actor Property _00E_NQ_G_03_AlyxREF Auto
Actor Property _00E_NQ_G_03_DevraREF Auto
Quest Property NQ_G_03 Auto
_00E_NQ_G_03_Functions Property NQ_G_03Functions Auto
EffectShader Property AzuraEvil Auto
VisualEffect Property _00E_A2_GhostwalkTeleportVFX Auto
VisualEffect Property NightingaleStrifeAbsorbTargetVFX Auto
Sound Property MAGRestorationFFFire Auto