0.9.10b release (oh boy where do I start):
- New fun options implemented (omnibusting, unlimited fuel, party time) - Biospark Carbine gets a requested nerf - Candygun combo fire has been buffed (watch out for that splash damage) - All powerup effects are additive (stacc 'em) - Automap hud respects gzdoom's cvars for toggling certain elements - Automap hud shows stats and times in gold when 100% / under par - Weapons and ammo are no longer affected by skill amount modifiers, for balance (and to avoid any weird glitches) - Sorting improvements for menu (weapons by slot, ammo by weapons, other items by value, etc.) - Grilled Cheese Sandwich now saves you from lethal falls properly - Blown kisses instakill nazis - Added non-violent Keen replacement (based on "Less mean-spirited Keen replacement" by SiFi270) - Added gib deaths for hell nobles, pinkies, cacos, revs and viles (sprites by Amuscaria and Ryan Cordell) - Blown kisses can activate use switches - Gestures can be chained by pressing a gesture button while another is playing - Fixed Grilled Cheese Sandwich not avoiding telefrags properly (now also works with voodoo dolls) - More precise weapon kill tracking (fixes some ragekit quirks) - Merge both DLC weaponsets, removing redundant weapons (see FuturePlans.md) - Discarded some collectables for the next updates, to save time - Preparation work for collectables update, including some (partial) lore files - Remove ammo fabricators from store, makes no sense to have them when you can just buy ammo directly - Cosmetic Boss Brain sprite replacements, just for fun - 10 more intermission tips, because yes - Added option to reduce distance at which enemy healthbars are picked - Various minor bugfixes and adjustments (and also some tiny typo fixes) - Ragekit now heals over time and with each hit (so it's more rewarding to go wild) - PNG optimization pass (again lol) - Fix crouched gestures having no facial animation
This commit is contained in:
parent
1daf12138f
commit
aabc9de051
471 changed files with 3003 additions and 749 deletions
|
|
@ -584,6 +584,81 @@ Class PurpleBloodReference : Actor
|
|||
}
|
||||
}
|
||||
|
||||
// bare actor used for extra gib deaths
|
||||
Class ExtraGibDeaths : Actor
|
||||
{
|
||||
StateLabel gibstate;
|
||||
|
||||
static void GibThis( Actor a, Statelabel st )
|
||||
{
|
||||
if ( !a ) return;
|
||||
let g = ExtraGibDeaths(Spawn("ExtraGibDeaths"));
|
||||
g.master = a;
|
||||
g.gibstate = st;
|
||||
}
|
||||
|
||||
void A_DoGib()
|
||||
{
|
||||
if ( !master ) return;
|
||||
master.SetState(FindState(gibstate));
|
||||
}
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TNT1 A 1 NoDelay;
|
||||
TNT1 A 1 A_DoGib();
|
||||
Stop;
|
||||
DemonXDeath:
|
||||
SARX A 5;
|
||||
SARX B 5 A_XScream();
|
||||
SARX C 5 A_NoBlocking();
|
||||
SARX DEF 5;
|
||||
SARX G -1;
|
||||
Stop;
|
||||
KnightXDeath:
|
||||
BO2X A 5;
|
||||
BO2X B 5 A_XScream();
|
||||
BO2X C 5;
|
||||
BO2X D 5 A_NoBlocking();
|
||||
BO2X EFGH 5;
|
||||
BO2X I -1;
|
||||
Stop;
|
||||
BaronXDeath:
|
||||
BOSX A 5;
|
||||
BOSX B 5 A_XScream();
|
||||
BOSX C 5;
|
||||
BOSX D 5 A_NoBlocking();
|
||||
BOSX EFGH 5;
|
||||
BOSX I -1 A_BossDeath();
|
||||
Stop;
|
||||
CacoXDeath:
|
||||
CACX A 5;
|
||||
CACX B 5 A_XScream();
|
||||
CACX C 5 A_NoBlocking();
|
||||
CACX D 4;
|
||||
CACX E 3;
|
||||
CACX F 4;
|
||||
CACX G 5;
|
||||
CACX H -1;
|
||||
Stop;
|
||||
BonerXDeath:
|
||||
REVX A 3;
|
||||
REVX B 4 A_XScream();
|
||||
REVX C 5 A_NoBlocking();
|
||||
REVX DE 5;
|
||||
REVX F -1;
|
||||
Stop;
|
||||
VileXDeath:
|
||||
VILX A 5;
|
||||
VILX B 5 A_XScream();
|
||||
VILX C 5 A_NoBlocking();
|
||||
VILX DEF 5;
|
||||
VILX G -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// corpse thump handler
|
||||
Class CorpseFallTracker : Thinker
|
||||
{
|
||||
|
|
@ -749,6 +824,28 @@ Class SWWMGoreHandler : EventHandler
|
|||
e.Thing.CopyBloodColor(pb);
|
||||
pb.Destroy();
|
||||
}
|
||||
else if ( e.Thing.GetClass() == "LostSoul" )
|
||||
e.Thing.bNOBLOOD = true;
|
||||
}
|
||||
|
||||
override void WorldThingDied( WorldEvent e )
|
||||
{
|
||||
// force insert gib animations on some vanilla Doom monsters
|
||||
int gibhealth = e.Thing.GetGibHealth();
|
||||
bool gotgibbed = (!e.Thing.bDONTGIB && ((e.Inflictor && e.Inflictor.bEXTREMEDEATH) || (e.DamageSource && e.DamageSource.bEXTREMEDEATH) || (e.DamageType == 'Extreme') || (e.Thing.Health < gibhealth)) && (!e.Inflictor || !e.Inflictor.bNOEXTREMEDEATH) && (!e.DamageSource || !e.DamageSource.bNOEXTREMEDEATH));
|
||||
if ( !gotgibbed ) return;
|
||||
if ( (e.Thing.GetClass() == "Demon") || (e.Thing.GetClass() == "Spectre") )
|
||||
ExtraGibDeaths.GibThis(e.Thing,"DemonXDeath");
|
||||
else if ( e.Thing.GetClass() == "HellKnight" )
|
||||
ExtraGibDeaths.GibThis(e.Thing,"KnightXDeath");
|
||||
else if ( e.Thing.GetClass() == "BaronOfHell" )
|
||||
ExtraGibDeaths.GibThis(e.Thing,"BaronXDeath");
|
||||
else if ( e.Thing.GetClass() == "Cacodemon" )
|
||||
ExtraGibDeaths.GibThis(e.Thing,"CacoXDeath");
|
||||
else if ( e.Thing.GetClass() == "Revenant" )
|
||||
ExtraGibDeaths.GibThis(e.Thing,"BonerXDeath");
|
||||
else if ( e.Thing.GetClass() == "Archvile" )
|
||||
ExtraGibDeaths.GibThis(e.Thing,"VileXDeath");
|
||||
}
|
||||
|
||||
override void WorldThingDamaged( WorldEvent e )
|
||||
|
|
@ -756,6 +853,14 @@ Class SWWMGoreHandler : EventHandler
|
|||
if ( e.Thing.Health > 0 ) return;
|
||||
// no gib if it was erased
|
||||
if ( e.DamageType == 'Ynykron' ) return;
|
||||
int gibhealth = e.Thing.GetGibHealth();
|
||||
bool gotgibbed = (!e.Thing.bDONTGIB && ((e.Inflictor && e.Inflictor.bEXTREMEDEATH) || (e.DamageSource && e.DamageSource.bEXTREMEDEATH) || (e.DamageType == 'Extreme') || (e.Thing.Health < gibhealth)) && (!e.Inflictor || !e.Inflictor.bNOEXTREMEDEATH) && (!e.DamageSource || !e.DamageSource.bNOEXTREMEDEATH));
|
||||
bool forcegibbed = false;
|
||||
// force gib availability for some vanilla Doom monsters
|
||||
if ( gotgibbed && ((e.Thing.GetClass() == "Demon") || (e.Thing.GetClass() == "Spectre") || (e.Thing.GetClass() == "HellKnight") || (e.Thing.GetClass() == "BaronOfHell") || (e.Thing.GetClass() == "Cacodemon") || (e.Thing.GetClass() == "Revenant") || (e.Thing.GetClass() == "Archvile")) )
|
||||
forcegibbed = true;
|
||||
if ( !e.Thing.FindState("XDeath",true) && !e.Thing.FindState("Death.Extreme",true) && !forcegibbed )
|
||||
gotgibbed = false;
|
||||
// only do special handling if they use our blood
|
||||
if ( (e.Thing.GetBloodType(0) != "mkBlood") || e.Thing.bNOBLOOD )
|
||||
return;
|
||||
|
|
@ -782,8 +887,7 @@ Class SWWMGoreHandler : EventHandler
|
|||
return;
|
||||
}
|
||||
// override gibbing
|
||||
int gibhealth = e.Thing.GetGibHealth();
|
||||
if ( !e.Thing.bDONTGIB && (e.Thing.FindState("XDeath",true) || e.Thing.FindState("Death.Extreme",true)) && ((e.Inflictor && e.Inflictor.bEXTREMEDEATH) || (e.DamageSource && e.DamageSource.bEXTREMEDEATH) || (e.DamageType == 'Extreme') || (e.Thing.Health < gibhealth)) && (!e.Inflictor || !e.Inflictor.bNOEXTREMEDEATH) && (!e.DamageSource || !e.DamageSource.bNOEXTREMEDEATH) )
|
||||
if ( gotgibbed )
|
||||
{
|
||||
[b,a] = e.Thing.A_SpawnItemEx("mkGibber",flags:SXF_USEBLOODCOLOR);
|
||||
if ( !b ) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue