First batch of changes:

- Fix score being reset on coop respawn.
 - Remove slight vertical offset of ground dash, not needed when we have NOFRICTION.
 - Disable stair downstepping while dashing.
 - Add crit sound for buttslams when they kill something.
 - Clean up some more stuff on map transitions (e.g.: dash/stomp canceling)
 - Korax messages show with a colored name now, for zazz.
 - Removed hitscan parrying, as it's odd and unpredictable.
 - Adjusted how wall detection works in dashes, should work better with stairs.
 - Allow down-dashes in mid-air when jumping is disabled, so you can still groundslam.
This commit is contained in:
Mari the Deer 2020-09-19 11:20:53 +02:00
commit 75e3ef30fc
8 changed files with 73 additions and 97 deletions

View file

@ -571,7 +571,7 @@ Class SWWMHandler : EventHandler
override void PlayerEntered( PlayerEvent e )
{
// create some static thinkers for this player
// create some static thinkers for this player if needed
PlayerInfo p = players[e.playernumber];
SWWMTradeHistory th = SWWMTradeHistory.Find(p);
if ( !th )
@ -634,13 +634,30 @@ Class SWWMHandler : EventHandler
// reset combat tracker
if ( !swwm_notrack )
SWWMCombatTracker.Spawn(players[e.playernumber].mo);
// initialize some player vars
if ( p.mo is 'Demolitionist' )
{
// reinitialize
Demolitionist(p.mo).dashfuel = Demolitionist(p.mo).default.dashfuel;
Demolitionist(p.mo).last_boost = 0;
Demolitionist(p.mo).last_kick = 0;
// cancel dash/boost
p.mo.A_StopSound(CHAN_JETPACK);
Demolitionist(p.mo).fuelcooldown = 0.;
Demolitionist(p.mo).dashcooldown = 0.;
Demolitionist(p.mo).dashboost = 0.;
Demolitionist(p.mo).dashsnd = false;
// prevent sudden stomping if we were previously falling
Demolitionist(p.mo).lastvelz = p.mo.vel.z;
// early cancel gestures
if ( p.ReadyWeapon is 'SWWMGesture' )
{
p.PendingWeapon = SWWMGesture(p.ReadyWeapon).formerweapon;
p.SetPSprite(PSP_WEAPON,p.ReadyWeapon.ResolveState("Deselect"));
}
}
// reset score (optional) if inventory should be cleared
if ( level.removeitems && !e.IsReturn && swwm_resetscore )
c.credits = c.hcredits = 0;
}
override void PlayerRespawned( PlayerEvent e )