mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'unnerf-missiles' into 'master'
Add player speed to thrown items, no mention of top speed Closes #434 See merge request KartKrew/Kart!1050
This commit is contained in:
commit
954409fa2f
3 changed files with 11 additions and 19 deletions
10
src/info.c
10
src/info.c
|
|
@ -23387,7 +23387,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_ORBINAUT_DEAD,// deathstate
|
S_ORBINAUT_DEAD,// deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_s3k5d, // deathsound
|
sfx_s3k5d, // deathsound
|
||||||
64*FRACUNIT, // speed
|
24*FRACUNIT, // speed
|
||||||
24*FRACUNIT, // radius
|
24*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
|
@ -23441,7 +23441,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_JAWZ_DEAD1, // deathstate
|
S_JAWZ_DEAD1, // deathstate
|
||||||
S_JAWZ_DEAD2, // xdeathstate
|
S_JAWZ_DEAD2, // xdeathstate
|
||||||
sfx_s3k5d, // deathsound
|
sfx_s3k5d, // deathsound
|
||||||
64*FRACUNIT, // speed
|
24*FRACUNIT, // speed
|
||||||
16*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
|
@ -23765,7 +23765,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_BALLHOG_DEAD, // deathstate
|
S_BALLHOG_DEAD, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_hogbom, // deathsound
|
sfx_hogbom, // deathsound
|
||||||
80*FRACUNIT, // speed
|
20*FRACUNIT, // speed
|
||||||
26*FRACUNIT, // radius
|
26*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
|
@ -24062,7 +24062,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_GARDENTOP_DEAD, // deathstate
|
S_GARDENTOP_DEAD, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_s3k7a, // deathsound
|
sfx_s3k7a, // deathsound
|
||||||
40*FRACUNIT, // speed
|
20*FRACUNIT, // speed
|
||||||
30*FRACUNIT, // radius
|
30*FRACUNIT, // radius
|
||||||
68*FRACUNIT, // height
|
68*FRACUNIT, // height
|
||||||
-1, // display offset
|
-1, // display offset
|
||||||
|
|
@ -24440,7 +24440,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_GACHABOM, // deathstate
|
S_GACHABOM, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_s3k5d, // deathsound
|
sfx_s3k5d, // deathsound
|
||||||
64*FRACUNIT, // speed
|
24*FRACUNIT, // speed
|
||||||
24*FRACUNIT, // radius
|
24*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
|
|
||||||
18
src/k_kart.c
18
src/k_kart.c
|
|
@ -4556,31 +4556,23 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I
|
||||||
{
|
{
|
||||||
mobj_t *th;
|
mobj_t *th;
|
||||||
fixed_t x, y, z;
|
fixed_t x, y, z;
|
||||||
fixed_t topspeed = K_GetKartSpeed(source->player, false, false);
|
|
||||||
fixed_t finalspeed = speed;
|
fixed_t finalspeed = speed;
|
||||||
fixed_t finalscale = mapobjectscale;
|
fixed_t finalscale = mapobjectscale;
|
||||||
mobj_t *throwmo;
|
mobj_t *throwmo;
|
||||||
|
|
||||||
if (source->player != NULL)
|
if (source->player != NULL)
|
||||||
{
|
{
|
||||||
|
const angle_t delta = AngleDelta(source->angle, an);
|
||||||
|
const fixed_t deltaFactor = FixedDiv(AngleFixed(ANGLE_180 - delta), 180 * FRACUNIT);
|
||||||
|
|
||||||
if (source->player->itemscale == ITEMSCALE_SHRINK)
|
if (source->player->itemscale == ITEMSCALE_SHRINK)
|
||||||
{
|
{
|
||||||
// Nerf the base item speed a bit.
|
// Nerf the base item speed a bit.
|
||||||
speed = finalspeed = FixedMul(speed, SHRINK_PHYSICS_SCALE);
|
speed = finalspeed = FixedMul(speed, SHRINK_PHYSICS_SCALE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source->player->speed > topspeed)
|
// Add player speed on top, multiplied based on angle diff... i.e: don't do this for firing backward :V
|
||||||
{
|
finalspeed += FixedMul(source->player->speed, deltaFactor);
|
||||||
angle_t delta = AngleDelta(source->angle, an);
|
|
||||||
|
|
||||||
finalspeed = max(speed, FixedMul(
|
|
||||||
speed,
|
|
||||||
FixedMul(
|
|
||||||
FixedDiv(source->player->speed, topspeed), // Multiply speed to be proportional to your own, boosted maxspeed.
|
|
||||||
FixedDiv(AngleFixed(ANGLE_180 - delta), 180 * FRACUNIT) // multiply speed based on angle diff... i.e: don't do this for firing backward :V
|
|
||||||
)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
finalscale = K_ItemScaleForPlayer(source->player);
|
finalscale = K_ItemScaleForPlayer(source->player);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -441,7 +441,7 @@ anchor_top (mobj_t *top)
|
||||||
static void
|
static void
|
||||||
loose_think (mobj_t *top)
|
loose_think (mobj_t *top)
|
||||||
{
|
{
|
||||||
const fixed_t thrustamount = top->movefactor;
|
const fixed_t thrustamount = top->movefactor / 2;
|
||||||
const angle_t momangle = K_MomentumAngle(top);
|
const angle_t momangle = K_MomentumAngle(top);
|
||||||
|
|
||||||
angle_t ang = top->angle;
|
angle_t ang = top->angle;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue