From 0bb3e463cc864543c7ca8c576e6ba422bf010318 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 11 Oct 2019 00:54:21 +0200 Subject: [PATCH] Release Candidate 3 Hotfix 1: - Small fix for Amplifier. - Add note about the fact the Protomag is more accurate, because people don't seem to notice. --- GunLore.md | 4 ++-- zscript/upowerups.zsc | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/GunLore.md b/GunLore.md index 891bc21..c7953be 100644 --- a/GunLore.md +++ b/GunLore.md @@ -218,8 +218,8 @@ no need to reload. An experimental entanglement unit inside the gun's internal mag locates spare ammunition carried by the user and automatically loads it. Both of its fire modes work exactly like the Automag, although due to -internal differences, it's a bit weaker in terms of speed and damage. The fact -that it never needs to reload at least compensates for this. +internal differences, it's a bit weaker in terms of speed and damage. However +it compensates by being much more accurate, even when rapid firing. Pressing the reload button makes use of the gun's weight to beat the crap out of your enemies up close. diff --git a/zscript/upowerups.zsc b/zscript/upowerups.zsc index 44644fd..3a0d73b 100644 --- a/zscript/upowerups.zsc +++ b/zscript/upowerups.zsc @@ -111,7 +111,13 @@ Class Amplifier : UnrealInventory let d = Amplifier(Owner.FindInventory("Amplifier")); if ( !d || !d.bActive ) return 1.; double Multiplier = max(1,4*(double(d.Charge-val)/d.DefaultCharge)); - d.DrainCharge(val); + if ( d.DrainCharge(val) ) + { + d.Owner.A_PlaySound("amplifier/unset",CHAN_ITEM); + if ( d.Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_AMPLIFIER")); + if ( d.tracer ) d.tracer.Destroy(); + if ( d.Amount <= 0 ) d.DepleteOrDestroy(); + } return Multiplier; } override bool Use( bool pickup ) @@ -132,12 +138,12 @@ Class Amplifier : UnrealInventory } else if ( !bActive && tracer ) tracer.Destroy(); if ( !bActive ) return; - if ( (Charge <= 0) || (!(level.maptime%35) && DrainCharge(2)) ) + if ( !(level.maptime%35) && DrainCharge(2) ) { - Owner.A_PlaySound("amplifier/set",CHAN_ITEM); + Owner.A_PlaySound("amplifier/unset",CHAN_ITEM); if ( Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_AMPLIFIER")); if ( tracer ) tracer.Destroy(); - DepleteOrDestroy(); + if ( Amount <= 0 ) DepleteOrDestroy(); } } States