diff --git a/filter/hexen/sprites/TSPKX0.png b/filter/hexen/sprites/TSPKX0.png new file mode 100644 index 000000000..80ed94ace Binary files /dev/null and b/filter/hexen/sprites/TSPKX0.png differ diff --git a/language.version b/language.version index 1f9a98599..3664add68 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.0.9 \cu(Sat 28 Aug 18:10:36 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.0.9 \cu(2021-08-28 18:10:36)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.0.9 \cu(Sat 28 Aug 18:56:23 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.0.9 \cu(2021-08-28 18:56:23)\c-"; diff --git a/trnslate.txt b/trnslate.txt index ed30fee96..9834eb49f 100644 --- a/trnslate.txt +++ b/trnslate.txt @@ -7,3 +7,4 @@ HotMetal5 = "0:255=%[0.23,0.18,0.12]:[0.7,0.6,0.32]" HotMetal6 = "0:255=%[0.2,0.12,0.1]:[0.5,0.4,0.28]" HotMetal7 = "0:255=%[0.0,0.0,0.0]:[0.25,0.25,0.25]" Rubble = "0:255=%[0.0,0.0,0.0]:[0.2,0.2,0.2]" +StoneSpike = "0:255=%[0.20,0.10,0.05]:[0.70,0.50,0.35]" diff --git a/zscript/swwm_common_fx.zsc b/zscript/swwm_common_fx.zsc index 3b894f9a6..36623b146 100644 --- a/zscript/swwm_common_fx.zsc +++ b/zscript/swwm_common_fx.zsc @@ -1615,3 +1615,22 @@ Class SWWMSizzleSmoke2 : SWWMBaseSplash s.special1 = Random[ExploS](0,1); } } + +// Hexen thing +Class SWWMCrushedSpike : Actor +{ + Default + { + Radius 20; + Height 16; + +SOLID; + +FLOORCLIP; + +NOTELEPORT; + } + States + { + Spawn: + TSPK X -1; + Stop; + } +} diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 63fd259af..83566c000 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -1458,9 +1458,38 @@ Class Demolitionist : PlayerPawn let hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); if ( hnd ) hnd.tookdamage[PlayerNumber()] = true; } - // check if we can break any active crushers - if ( (mod == 'Crush') && !inflictor && !source ) - CheckBreakCrusher(); + if ( mod == 'Crush' ) + { + // check if we can break any active crushers + if ( !inflictor && !source ) CheckBreakCrusher(); + // break a spike trap + else if ( source is 'ThrustFloor' ) + { + let q = Spawn("BustedQuake",source.pos); + q.special1 = 4; + int numpt = Random[ExploS](30,40); + for ( int i=0; i