From 52d0937139fe38799ab0ed16cf79fa9e3ab004f1 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 | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/language.version b/language.version index 7e11848b7..6f042ff77 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r103 \cu(Tue 7 Jun 20:53:59 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r103 \cu(2022-06-07 20:53:59)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r104 \cu(Tue 7 Jun 21:00:48 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r104 \cu(2022-06-07 21:00:48)\c-"; diff --git a/zscript/handler/swwm_handler_damage.zsc b/zscript/handler/swwm_handler_damage.zsc index 18b76816a..667a1a3a0 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 ) { @@ -183,8 +185,8 @@ extend Class SWWMHandler else if ( (!lastcombat || (gametic > lastcombat+50)) && !SWWMHDoomHandler.IsCuteGirl(e.Thing) ) // [HDoom] don't shout at the girls { int lc = 0; - Inventory buff = e.Inflictor?e.Inflictor.FindInventory('ParriedBuff'):null; - if ( !Random[DemoLines](0,3) && buff && (e.Thing is 'Cyberdemon') && (e.Inflictor is 'Rocket') && (buff.tracer == e.Thing) ) lc = AddOneliner("cybully",1,15); + Inventory buff = inflictor?inflictor.FindInventory('ParriedBuff'):null; + if ( !Random[DemoLines](0,3) && buff && (e.Thing is 'Cyberdemon') && (inflictor is 'Rocket') && (buff.tracer == e.Thing) ) lc = AddOneliner("cybully",1,15); else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?1:2) && (e.DamageType == 'CriticalConcussion') ) lc = AddOneliner("ballskill",1,15); else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?2:5) && (e.DamageType == 'Buttslam') ) lc = AddOneliner("asskill",1,15); if ( !lc ) @@ -202,7 +204,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); @@ -212,11 +214,11 @@ 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); } Inventory tk; @@ -299,13 +301,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;