Make rideroid speed up to 150% speed with first blood

This commit is contained in:
Lat 2023-09-24 14:21:49 +02:00
parent 32620fbb4f
commit 3be4156e59

View file

@ -24,9 +24,10 @@
#include "../k_waypoint.h" #include "../k_waypoint.h"
#include "../k_respawn.h" #include "../k_respawn.h"
#include "../k_collide.h" #include "../k_collide.h"
#include "../k_color.h"
#define NODERADIUS 260 #define NODERADIUS 260
#define NODEPULLOK 16 #define NODEPULLOK 48
#define NODEROTSPEED ANG1 #define NODEROTSPEED ANG1
#define RIDEROIDSPEED 80 #define RIDEROIDSPEED 80
@ -160,8 +161,13 @@ static void Obj_rideroidTrail(mobj_t *mo)
P_SetScale(t, max(1, mapobjectscale*5/6 - ((10-j)*mapobjectscale/120))); P_SetScale(t, max(1, mapobjectscale*5/6 - ((10-j)*mapobjectscale/120)));
t->destscale = 1; t->destscale = 1;
if (p && p != &players[consoleplayer] && j) if (p)
t->renderflags |= RF_DONTDRAW; {
if (p != &players[consoleplayer] && j)
t->renderflags |= RF_DONTDRAW;
else if (p->startboost)
t->color = K_RainbowColor(leveltime);
}
} }
} }
@ -250,7 +256,7 @@ void Obj_RideroidThink(mobj_t *mo)
// the values are a little arbitrary but they work for how little use these have. // the values are a little arbitrary but they work for how little use these have.
if (p->ringboost) if (p->ringboost)
maxspd *= 12/10; // Ring Boost: 120% max speed. maxspd = (maxspd*12)/10; // Ring Boost: 120% max speed.
if (p->draftpower) if (p->draftpower)
{ {
@ -258,6 +264,9 @@ void Obj_RideroidThink(mobj_t *mo)
maxspd += (draftperc/5) / 100; maxspd += (draftperc/5) / 100;
} }
if (p->startboost)
maxspd = (maxspd*15)/10; // 150% speed
// increase speed as we go unless we're turning harshly. // increase speed as we go unless we're turning harshly.
if (p->rideroidspeed*mapobjectscale < maxspd) if (p->rideroidspeed*mapobjectscale < maxspd)
{ {
@ -368,7 +377,7 @@ void Obj_RideroidThink(mobj_t *mo)
p->rdaddmomx = pmo->momx - basemomx; p->rdaddmomx = pmo->momx - basemomx;
p->rdaddmomy = pmo->momy - basemomy; p->rdaddmomy = pmo->momy - basemomy;
CONS_Printf("AX1: %d, AY1: %d\n", p->rdaddmomx/mapobjectscale, p->rdaddmomy/mapobjectscale); //CONS_Printf("AX1: %d, AY1: %d\n", p->rdaddmomx/mapobjectscale, p->rdaddmomy/mapobjectscale);
pmo->momx = basemomx; pmo->momx = basemomx;
pmo->momy = basemomy; pmo->momy = basemomy;