From f2a4dffcdfb13f977d2b10ef43f109eccb66eb9e Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Mon, 9 Jan 2023 18:39:06 +0100 Subject: [PATCH] Fix accumulated damage causing armor hit sfx to stack. --- language.version | 4 ++-- zscript/items/swwm_basearmor.zsc | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/language.version b/language.version index 07d172680..8504e6885 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r725 \cu(Sun 8 Jan 23:56:19 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r725 \cu(2023-01-08 23:56:19)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r726 \cu(Mon 9 Jan 18:39:06 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r726 \cu(2023-01-09 18:39:06)\c-"; diff --git a/zscript/items/swwm_basearmor.zsc b/zscript/items/swwm_basearmor.zsc index e4f33dce0..db2df8fcf 100644 --- a/zscript/items/swwm_basearmor.zsc +++ b/zscript/items/swwm_basearmor.zsc @@ -16,6 +16,7 @@ Class SWWMArmor : Armor abstract // useful for powerup-given armors transient int lastautousetic; // accumulated damage can make the use sounds stack + transient int lasthittic; // same here Default { @@ -80,7 +81,11 @@ Class SWWMArmor : Armor abstract if ( (amount <= 0) || DamageTypeDefinition.IgnoreArmor(damageType) || (damage <= 0) ) return; if ( !bNOHITFLASH ) SWWMHandler.DoFlash(Owner,Color(int(clamp(damage*.15,1,16)),255,224,192),3); - if ( !bNOHITSOUND ) Owner.A_StartSound("armor/hit",CHAN_DAMAGE,CHANF_OVERLAP,clamp(damage*.03,0.,1.),2.5); + if ( !bNOHITSOUND && (lasthittic < gametic) ) + { + Owner.A_StartSound("armor/hit",CHAN_DAMAGE,CHANF_OVERLAP,clamp(damage*.03,0.,1.),2.5); + lasthittic = gametic; + } saved = HandleDamage(damage,damageType,flags); int healed = max(0,saved-damage); saved = min(saved,damage);