Sheen kill taunts + some fixes.

This commit is contained in:
Mari the Deer 2022-07-23 17:54:41 +02:00
commit 82c6be5cdc
8 changed files with 32 additions and 12 deletions

View file

@ -182,6 +182,8 @@ extend Class SWWMHandler
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);
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?3:6) && ((inflictor is 'HeavyMahSheenGun') || (inflictor is 'SheenTrail')) )
lc = AddOneliner("sheenkill",1,15);
if ( !lc )
{
if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?1:4) )

View file

@ -1141,6 +1141,22 @@ Class SWWMUtility
Victim.vel += Momentum;
}
// fixes some false positives for explosion taunts
static bool IsExplosiveSource( Actor s )
{
if ( s is 'DemolitionistShockwave' ) return false;
if ( s is 'BigPunchSplash' ) return false;
if ( s is 'AirBullet' ) return false;
if ( s is 'SaltBeam' ) return false;
if ( s is 'CorrodeDebuff' ) return false;
if ( s is 'CorrosiveSplash' ) return false;
if ( s is 'TheBall' ) return false;
if ( s is 'SilverAirRip' ) return false;
if ( s is 'SilverImpact' ) return false;
if ( s is 'SheenTrail' ) return false;
return true;
}
// complete spherical and more accurate replacement of A_Explode
// 100% free of the buggery GZDoom's own splash damage has
// returns the number of shootables hit/killed
@ -1235,7 +1251,7 @@ Class SWWMUtility
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
if ( !hnd || (hnd.psectors.Size() <= 1) )
{
if ( (Instigator is 'Demolitionist') && haskilled )
if ( (Instigator is 'Demolitionist') && haskilled && IsExplosiveSource(Source) )
{
let demo = Demolitionist(Instigator);
if ( (gametic > demo.lastbang+30) && (!hnd || (gametic > hnd.lastcombat+10)) && !Random[DemoLines](0,1) )
@ -1317,7 +1333,7 @@ Class SWWMUtility
if ( (!a || (a.Health <= 0)) && (!(flags&DE_COUNTENEMIES) || hostile) && (!(flags&DE_COUNTSTEALTH) || inactive) ) nkill++;
}
}
if ( (Instigator is 'Demolitionist') && haskilled )
if ( (Instigator is 'Demolitionist') && haskilled && IsExplosiveSource(Source) )
{
let demo = Demolitionist(Instigator);
if ( (gametic > demo.lastbang+30) && (gametic > hnd.lastcombat+10) && !Random[DemoLines](0,1) )