From fe9f6dcb3f345e460a1d90d7dbacba2938605985 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Thu, 4 Aug 2022 17:29:07 +0200 Subject: [PATCH] CC Romero boss death special. --- language.version | 4 ++-- zscript/handler/swwm_handler_vanillaboss.zsc | 24 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/language.version b/language.version index c84bda48a..b396484b8 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r248 \cu(Thu 4 Aug 17:20:02 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r248 \cu(2022-08-04 17:20:02)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r248 \cu(Thu 4 Aug 17:29:07 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r248 \cu(2022-08-04 17:29:07)\c-"; diff --git a/zscript/handler/swwm_handler_vanillaboss.zsc b/zscript/handler/swwm_handler_vanillaboss.zsc index 0699421b9..569f5369e 100644 --- a/zscript/handler/swwm_handler_vanillaboss.zsc +++ b/zscript/handler/swwm_handler_vanillaboss.zsc @@ -56,6 +56,29 @@ Class ROM3R0Message : Inventory } } } +Class ROM3R0Death : Inventory +{ + override void OwnerDied() + { + // copied from boss brain + let ti = ThinkerIterator.Create("Actor"); + Actor a; + while ( a = Actor(ti.Next()) ) + { + if ( a is 'BossEye' ) a.SetStateLabel("Null"); + else if ( a is 'SpawnShot' ) + { + a.Spawn("SpawnFire",a.pos,ALLOW_REPLACE); + a.SetStateLabel("Null"); + } + else if ( (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) ) + a.DamageMobj(self,self,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS); + } + DepleteOrDestroy(); + return; + } +} + extend Class SWWMHandler { String bosstag; @@ -422,6 +445,7 @@ extend Class SWWMHandler e.Thing.GiveInventory('BossMarker',1); e.Thing.GiveInventory('EndgameBossMarker',1); e.Thing.GiveInventory('ROM3R0Message',1); + e.Thing.GiveInventory('ROM3R0Death',1); } } private void VanillaBossTick()