Fix inflictor detection breakage in WorldThingDamaged (did not account for SWWMPuff).

This commit is contained in:
Mari the Deer 2022-06-07 21:00:48 +02:00
commit 2afad5d0d1
2 changed files with 11 additions and 9 deletions

View file

@ -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-";

View file

@ -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;