diff --git a/maps/XE1M3.wad b/maps/XE1M3.wad index 56b32d2..d8b6bdc 100644 Binary files a/maps/XE1M3.wad and b/maps/XE1M3.wad differ diff --git a/zscript/actor/blast_boots.zs b/zscript/actor/blast_boots.zs index b86056f..37b5e47 100644 --- a/zscript/actor/blast_boots.zs +++ b/zscript/actor/blast_boots.zs @@ -15,9 +15,38 @@ */ class PowerBlastJump : Powerup { + bool blasting; + ChexPlayerHGA ply; + property blasting: blasting; + + override bool HandlePickup(Inventory item) { + bool ok = Super.HandlePickup(item); + if (ok) { + blasting = false; + } + + return ok; + } + override void InitEffect() { - let ply = ChexPlayerHGA(Owner); - ply.AddZ(72); // double std jump height + Super.InitEffect(); + + ply = ChexPlayerHGA(Owner); + //ply.AddZ(72); // double std jump height + blasting = true; + ply.GiveInventoryType("InvBlastBoots"); + } + + override void Tick() { + Super.Tick(); + if (blasting) { + ply.AddZ(8); + } + } + + override void EndEffect() { + blasting = false; + Super.EndEffect(); } } @@ -27,6 +56,8 @@ class InvBlastBoots : PowerupGiver { //$Title "Blast Boots" +COUNTITEM Tag "$TAG_BLASTBOOTS"; + Powerup.Type "PowerBlastJump"; + Powerup.Duration 10; // ten tics should be enough for the engine to go "oh yeah powerup" while still being an instant-effect Inventory.Icon "NULLA0"; Inventory.AltHUDIcon "NULLA0";