https://sureai.net/forum/viewtopic.php?t=13179
if FrozenActor.GetAV("Health") < 1
FrozenActor.PlaceAtMe(_00E_FrostShatteringExplosion02)
if FrozenActor.HasKeyword(ActorTypeNPC) || FrozenActor.GetRace() == DraugrRace
FrozenActor.PlaceAtMe(_00E_FS_MAGIceGoreExplosion)
Else
FrozenActor.PlaceAtMe(_00E_FrostShatteringExplosion)
EndIf
FrozenActor.SetAlpha (0.0, true)
FrozenActor.SetCriticalStage(FrozenActor.CritStage_DisintegrateStart)
FrozenActor.AttachAshPile(_00E_ShatteredEnemyPile)
WPNImpactBladeVsIce.Play(FrozenActor)
Game.ShakeCamera(afStrength = 0.3)
Utility.Wait(0.5)
FrozenActor.SetCriticalStage(FrozenActor.CritStage_DisintegrateEnd)
If Utility.RandomFloat() < ShatterChance
; Debug.MessageBox("Shatter!")
HasBeenShattered = true
ShatterEnemy()
GoToState("Finished")
EndIf
Function ShatterEnemy()
FrozenActor.Kill(PlayerREF)
EndFunctionState Finished
; Do nothing
EndStateFunction ShatterEnemy()
FrozenActor.PlaceAtMe(_00E_FrostShatteringExplosion02)
if FrozenActor.HasKeyword(ActorTypeNPC) || FrozenActor.GetRace() == DraugrRace
FrozenActor.PlaceAtMe(_00E_FS_MAGIceGoreExplosion)
Else
FrozenActor.PlaceAtMe(_00E_FrostShatteringExplosion)
EndIf
FrozenActor.Kill(PlayerREF)
FrozenActor.SetAlpha (0.0, true)
FrozenActor.SetCriticalStage(FrozenActor.CritStage_DisintegrateStart)
FrozenActor.AttachAshPile(_00E_ShatteredEnemyPile)
WPNImpactBladeVsIce.Play(FrozenActor)
Game.ShakeCamera(afStrength = 0.3)
Utility.Wait(0.5)
FrozenActor.SetCriticalStage(FrozenActor.CritStage_DisintegrateEnd)
EndFunctionFunction ShatterEnemy()
FrozenActor.Kill(PlayerREF)
Utility.Wait(0.1)
FrozenActor.PlaceAtMe(_00E_FrostShatteringExplosion02)
if FrozenActor.HasKeyword(ActorTypeNPC) || FrozenActor.GetRace() == DraugrRace
FrozenActor.PlaceAtMe(_00E_FS_MAGIceGoreExplosion)
Else
FrozenActor.PlaceAtMe(_00E_FrostShatteringExplosion)
EndIf
FrozenActor.SetAlpha (0.0, true)
FrozenActor.SetCriticalStage(FrozenActor.CritStage_DisintegrateStart)
FrozenActor.AttachAshPile(_00E_ShatteredEnemyPile)
WPNImpactBladeVsIce.Play(FrozenActor)
Game.ShakeCamera(afStrength = 0.3)
Utility.Wait(0.5)
FrozenActor.SetCriticalStage(FrozenActor.CritStage_DisintegrateEnd)
EndFunction