enderalse/source/scripts/_00e_fs_nqr05_perversionsc.psc

58 lines
1.5 KiB
Plaintext

Scriptname _00E_FS_NQR05_PerversionSC extends Actor
Event OnInit()
SetAV("UnarmedDamage", 35)
EndEvent
Event OnEnterBleedout()
PlayDeathFX()
EndEvent
Event OnDying(Actor akKiller)
; Perversions are essential by default, but the death FX make them non-essential for a short time.
; This is a safeguard for a perversion dying while its actor base is non-essential because another perversion of the same base started its death FX a bit earlier.
PlayDeathFX()
EndEvent
Bool bIsDying = False
Function PlayDeathFX()
If bIsDying
Return
EndIf
bIsDying = True
SetGhost(True)
ActorBase myActorBase = GetActorBase()
_00E_FS_NPC_PerversionDeathM.Play(Self)
_00E_HighOnesDisintegrate.Play(Self)
Utility.Wait(1.9)
SetCriticalStage(CritStage_DisintegrateStart)
AbsorbRedImod.Apply()
PlaceAtMe(_00E_FS_NQR05_BloodGeysir)
PlaceAtMe(_00E_FS_NQR05_PerversionExp)
StopCombat()
myActorBase.SetEssential(False)
Kill(None)
AttachAshPile(_00E_CorpseExplosionPile_Remains)
SetAlpha(0.0, True)
SetCriticalStage(CritStage_DisintegrateEnd)
myActorBase.SetEssential(True)
If RewardExp > 0
If (Game.GetPlayer() as _00E_EPUpdateFunctions).receiveEP(RewardExp)
; Player receives EXP
EndIf
EndIf
EndFunction
Explosion Property _00E_FS_NQR05_PerversionExp Auto
Explosion Property _00E_FS_NQR05_BloodGeysir Auto
Sound Property _00E_FS_NPC_PerversionDeathM Auto
ImageSpaceModifier Property AbsorbRedImod Auto
EffectShader Property _00E_HighOnesDisintegrate Auto
Activator Property _00E_CorpseExplosionPile_Remains Auto
Int Property RewardExp Auto