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:
Mari the Deer 2020-10-05 22:23:55 +02:00
commit aabc9de051
471 changed files with 3003 additions and 749 deletions

View file

@ -18,10 +18,117 @@ enum ESWWMGZChannels
// Future planning, will be filled out with AI stuff and whatnot someday
Class SWWMMonster : Actor
{
// integrated fun tags
virtual clearscope String GetFunTag( String defstr = "" )
{
return GetTag(defstr);
}
// the function that should be overriden in subclasses
virtual int HandleLocationalDamage( Actor inflictor, Actor source, int damage, Name mod, Vector3 HitLocation, int flags = 0, double angle = 0 )
{
return damage;
}
// locational damage support, akin to UE1, but hitlocation will be treated as a relative offset, to make things easier
// this one should be called directly by everything in this mod, when possible
int LocationalDamageMobj( Actor inflictor, Actor source, int damage, Name mod, Vector3 HitLocation, int flags = 0, double angle = 0 )
{
damage = HandleLocationalDamage(inflictor,source,damage,mod,HitLocation,flags,angle);
return Super.DamageMobj(inflictor,source,damage,mod,flags,angle);
}
// "estimated" locational damage for the vanilla DamageMobj
override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle )
{
Vector3 guesspos = (0,0,Height/2.);
// use inflictor if available, as it may be a projectile or hitscan puff
// if damage comes from an item, use owner
// all of this could be done better (or implemented as an engine feature), but whatever
Actor whomst = inflictor?inflictor:source;
if ( whomst is 'Inventory' ) whomst = Inventory(whomst).Owner;
if ( whomst )
{
if ( whomst.bMISSILE || (flags&DMG_INFLICTOR_IS_PUFF) )
guesspos = level.Vec3Diff(pos,whomst.pos);
else guesspos = level.Vec3Diff(pos,whomst.Vec3Offset(0,0,whomst.Height/2));
guesspos.x = clamp(guesspos.x,-radius,radius);
guesspos.y = clamp(guesspos.y,-radius,radius);
guesspos.z = clamp(guesspos.z,0,height);
}
return LocationalDamageMobj(inflictor,source,damage,mod,guesspos,flags,angle);
}
}
// Less mean-spirited Keen
Class SWWMHangingKeen : Actor
{
action void A_DropKeen()
{
Spawn("SWWMDroppedKeen",Vec3Offset(0,0,8));
}
Default
{
Tag "$FN_KEEN";
Health 100;
Radius 10;
Height 54;
Mass int.max;
PainChance 256;
+SOLID;
+SPAWNCEILING;
+NOGRAVITY;
+SHOOTABLE;
+NOICEDEATH;
+DONTFALL;
+NOBLOOD;
+DONTTHRUST;
PainSound "keen/pain";
DeathSound "keen/death";
}
States
{
Spawn:
KEE2 A -1;
Stop;
Death:
KEE2 A 6;
KEE2 B 6 A_DropKeen();
KEE2 C 6 A_Scream();
KEE2 DE 6;
KEE2 F 30;
KEE2 F -1 A_KeenDie();
Stop;
Pain:
KEE2 G 4;
KEE2 G 8 A_Pain();
Goto Spawn;
}
}
Class SWWMDroppedKeen : Actor
{
Default
{
Radius 10;
Height 32;
Gravity .5;
+NOBLOCKMAP;
}
States
{
Spawn:
KEE3 A 1 A_JumpIf(pos.z<=floorz,1);
Wait;
KEE3 B 1 { vel.z = 4; }
KEE3 B 1 A_JumpIf(pos.z<=floorz,1);
Wait;
KEE3 B 1 { vel.z = 2; }
KEE3 B 1 A_JumpIf(pos.z<=floorz,1);
Wait;
KEE3 B 12;
TNT1 A 1 { Spawn("TeleportFog",pos,ALLOW_REPLACE); }
Stop;
}
}
// imitates UE1 light type LT_TexturePaletteOnce/LT_TexturePaletteLoop