From 2afad5d0d1c15c798034684fbbfb7d1d16c89bb5 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Tue, 7 Jun 2022 21:00:48 +0200 Subject: [PATCH] Fix inflictor detection breakage in WorldThingDamaged (did not account for SWWMPuff). --- language.version | 4 ++-- zscript/handler/swwm_handler_damage.zsc | 16 +++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/language.version b/language.version index a86fd5fa0..72b448b4b 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.21 r13 \cu(Tue 7 Jun 20:54:55 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.2.21 r13 \cu(2022-06-07 20:54:55)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.22 \cu(Tue 7 Jun 21:04:33 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.2.22 \cu(2022-06-07 21:04:33)\c-"; diff --git a/zscript/handler/swwm_handler_damage.zsc b/zscript/handler/swwm_handler_damage.zsc index 8ff142a33..3a1890078 100644 --- a/zscript/handler/swwm_handler_damage.zsc +++ b/zscript/handler/swwm_handler_damage.zsc @@ -167,11 +167,13 @@ extend Class SWWMHandler if ( (e.DamageType == 'Falling') && !e.DamageSource ) src = SWWMWhoPushedMe.RecallInstigator(e.Thing); if ( (!src || !src.player || (src == e.Thing)) ) return; + let inflictor = e.Inflictor; + if ( inflictor is 'SWWMPuff' ) inflictor = inflictor.master; let s = SWWMStats.Find(src.player); if ( s ) { s.kills++; - s.AddWeaponKill(e.Inflictor,e.Thing,e.DamageType); + s.AddWeaponKill(inflictor,e.Thing,e.DamageType); } if ( src == players[consoleplayer].mo ) { @@ -190,7 +192,7 @@ extend Class SWWMHandler { if ( (e.Thing.bBOSS||e.Thing.FindInventory("BossMarker")) && ((e.DamageType == 'Dash') || (e.DamageType == 'Buttslam')) ) SWWMUtility.AchievementProgressInc("bossdash",1,src.player); - if ( (e.Inflictor is 'DeepImpact') && (e.DamageType == 'Push') ) + if ( (inflictor is 'DeepImpact') && (e.DamageType == 'Push') ) SWWMUtility.AchievementProgressInc("sneeze",1,src.player); else if ( e.DamageType == 'Buttslam' ) SWWMUtility.AchievementProgressInc("butts",1,src.player); @@ -200,14 +202,14 @@ extend Class SWWMHandler SWWMUtility.AchievementProgressInc("thicc",1,src.player); else if ( (e.DamageType == 'Love') && !(e.Thing is 'WolfensteinSS') && (e.Thing.Species != 'WolfensteinSS') ) SWWMUtility.AchievementProgressInc("love",1,src.player); - Inventory buff = e.Inflictor?e.Inflictor.FindInventory('ParriedBuff'):null; + Inventory buff = inflictor?inflictor.FindInventory('ParriedBuff'):null; if ( buff ) { SWWMUtility.AchievementProgressInc("reflect",1,src.player); - if ( (e.Thing is 'Cyberdemon') && (e.Inflictor is 'Rocket') && (buff.tracer == e.Thing) ) + if ( (e.Thing is 'Cyberdemon') && (inflictor is 'Rocket') && (buff.tracer == e.Thing) ) SWWMUtility.MarkAchievement("cybully",src.player); } - if ( (e.Inflictor is 'PusherWeapon') || (e.Inflictor is 'PusherProjectile') ) + if ( (inflictor is 'PusherWeapon') || (inflictor is 'PusherProjectile') ) SWWMUtility.AchievementProgressInc("tender",1,src.player); Inventory tk; if ( (tk = e.Thing.FindInventory("DeepImpactOnlyToken")) && (tk.special1 == 1) ) @@ -289,13 +291,13 @@ extend Class SWWMHandler score += 600; if ( scr ) scr.AppendXString(StringTable.Localize(((e.Thing is 'WolfensteinSS')||(e.Thing.Species=='WolfensteinSS'))?"$SWWM_LOVED_ALT":"$SWWM_LOVED"),0,Font.FindFontColor('BlushPink')); } - else if ( e.Inflictor is 'FroggyChair' ) + else if ( inflictor is 'FroggyChair' ) { score += 1440; if ( scr ) scr.AppendXString(StringTable.Localize("$SWWM_FROGGED"),0,Font.CR_GREEN); } Inventory pb; - if ( e.Inflictor && (pb = e.Inflictor.FindInventory('ParriedBuff')) ) + if ( inflictor && (pb = inflictor.FindInventory('ParriedBuff')) ) { score += 200; if ( pb.special1&1 ) score += 200;