Rebalances to dashing/boosting:

- Doubled fuel capacity.
 - Increased fuel usage of dashing by 1.5x.
 - Reduced deceleration of boosting when holding jump.
 - Changed the fuel bar graphic to reflect new capacity.
Increased air control.
Fixed reported fuel usage (the fuel cells are 4L).
This commit is contained in:
Mari the Deer 2020-05-23 14:07:12 +02:00
commit 30fbfafa5c
6 changed files with 10 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 128 B

Before After
Before After

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\cxSWWM GZ\c- r266 (Sat 23 May 13:53:24 CEST 2020)";
SWWM_MODVER="\cxSWWM GZ\c- r267 (Sat 23 May 14:07:12 CEST 2020)";

View file

@ -2129,7 +2129,7 @@ Class SWWMHandler : EventHandler
// initialize some player vars
if ( p.mo is 'Demolitionist' )
{
Demolitionist(p.mo).dashfuel = 100.;
Demolitionist(p.mo).dashfuel = 240.;
Demolitionist(p.mo).last_boost = 0;
Demolitionist(p.mo).last_kick = 0;
}
@ -2156,7 +2156,7 @@ Class SWWMHandler : EventHandler
// initialize some player vars
if ( e.Thing is 'Demolitionist' )
{
Demolitionist(e.Thing).dashfuel = 100.;
Demolitionist(e.Thing).dashfuel = 240.;
Demolitionist(e.Thing).last_boost = 0;
Demolitionist(e.Thing).last_kick = 0;
}

View file

@ -880,7 +880,7 @@ Class SWWMStatusBar : BaseStatusBar
double alph = .6;
if ( !d || (d.dashfuel > 20) || ((gametic%10) < 5) ) alph = 1.;
Screen.DrawTexture(DashTex,false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,dw,DTA_Alpha,alph);
int fw = FuelInter.GetValue();
int fw = FuelInter.GetValue()/2;
Screen.DrawTexture(FuelTex,false,margin+2,ss.y-(margin+24),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,fw);
int ht = clamp(HealthInter.GetValue(),0,10000);
int hw = min(ht,100);

View file

@ -1932,7 +1932,7 @@ Class SWWMKnowledgeBaseMenu : GenericMenu
str = String.Format("\cx%s\c-%d",StringTable.Localize("$SWWM_STATSTOMP"),stats.stompcount);
Screen.DrawText(fnt,Font.CR_WHITE,origin.x+xx,origin.y+yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
yy += 16;
str = String.Format("\cx%s\c-%g\cul\c-",StringTable.Localize("$SWWM_STATFUEL"),stats.fuelusage/6.);
str = String.Format("\cx%s\c-%g\cul\c-",StringTable.Localize("$SWWM_STATFUEL"),stats.fuelusage/60.);
Screen.DrawText(fnt,Font.CR_WHITE,origin.x+xx,origin.y+yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
yy += 16;
str = String.Format("\cx%s\c-%g\cukm/h\c-",StringTable.Localize("$SWWM_STATSPEED"),stats.topspeed*32000./(3600*Thinker.TICRATE));

View file

@ -285,8 +285,8 @@ Class Demolitionist : PlayerPawn
if ( swwm_extraalert ) A_AlertMonsters(800);
dashboost *= (player.cmd.buttons&BT_USER2)?.8:.1;
}
mystats.fuelusage += dashfuel-max(0.,dashfuel-dashboost);
dashfuel = max(0.,dashfuel-dashboost);
mystats.fuelusage += dashfuel-max(0.,dashfuel-dashboost*1.5);
dashfuel = max(0.,dashfuel-dashboost*1.5);
dashcooldown = min(40,max(10,int(dashcooldown*1.4)));
fuelcooldown = max(60,fuelcooldown);
if ( (dashfuel <= 0.) || (dashboost <= 0.) )
@ -300,7 +300,7 @@ Class Demolitionist : PlayerPawn
else
{
if ( swwm_extraalert ) A_AlertMonsters(800);
dashboost *= (player.cmd.buttons&BT_JUMP)?.9:.4;
dashboost *= (player.cmd.buttons&BT_JUMP)?.95:.4;
last_boost = level.maptime+1;
}
mystats.fuelusage += dashfuel-max(0.,dashfuel-dashboost);
@ -548,7 +548,7 @@ Class Demolitionist : PlayerPawn
dashcooldown = max(0,dashcooldown-1);
boostcooldown = max(0,boostcooldown-1);
if ( fuelcooldown <= 0 )
dashfuel = min(120.,dashfuel+max(dashfuel*.01,.05));
dashfuel = min(240.,dashfuel+max(dashfuel*.01,.05));
if ( (dashboost > 0.) && (InStateSequence(CurState,FindState("Dash")) || (InStateSequence(CurState,FindState("Jump")) && player.cmd.buttons&BT_JUMP)) )
dashsnd = true;
else
@ -779,7 +779,7 @@ Class Demolitionist : PlayerPawn
double fs = TweakSpeeds(1.,0.);
if ( CanCrouch() && (player.crouchfactor != -1) ) fs *= player.crouchfactor;
Vector3 accel = (RotateVector((player.cmd.forwardmove,-player.cmd.sidemove),angle),0);
accel *= fs/960.;
accel *= fs/512.;
double spd = vel.length();
if ( spd > 10. ) vel = (vel+accel/TICRATE).unit()*spd;
else vel = vel+accel/TICRATE;