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
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue