mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-26 15:31:03 +00:00
Merge branch 'fix-gacha-lob' into 'master'
Adjust Gachabom lobbing trajectory and backward thrown radius See merge request KartKrew/Kart!1232
This commit is contained in:
commit
d2a2115abf
1 changed files with 41 additions and 18 deletions
59
src/k_kart.c
59
src/k_kart.c
|
|
@ -4570,10 +4570,33 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I
|
|||
finalscale = source->scale;
|
||||
}
|
||||
|
||||
if (dir == -1 && (type == MT_ORBINAUT || type == MT_GACHABOM || type == MT_BALLHOG))
|
||||
if (dir == -1)
|
||||
{
|
||||
fixed_t nerf = FRACUNIT;
|
||||
|
||||
// Backwards nerfs
|
||||
finalspeed /= 8;
|
||||
switch (type)
|
||||
{
|
||||
case MT_ORBINAUT:
|
||||
case MT_GACHABOM:
|
||||
// These items orbit in place.
|
||||
// Look for a tight radius...
|
||||
nerf = FRACUNIT/4;
|
||||
break;
|
||||
|
||||
case MT_BALLHOG:
|
||||
nerf = FRACUNIT/8;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (finalspeed != FRACUNIT)
|
||||
{
|
||||
// Scale to gamespeed for consistency
|
||||
finalspeed = FixedMul(finalspeed, FixedDiv(nerf, K_GetKartGameSpeedScalar(gamespeed)));
|
||||
}
|
||||
}
|
||||
|
||||
x = source->x + source->momx + FixedMul(finalspeed, FINECOSINE(an>>ANGLETOFINESHIFT));
|
||||
|
|
@ -5424,22 +5447,6 @@ mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t mapthing,
|
|||
if (!player)
|
||||
return NULL;
|
||||
|
||||
// Figure out projectile speed by game speed
|
||||
if (missile)
|
||||
{
|
||||
// Use info->speed for missiles
|
||||
PROJSPEED = FixedMul(mobjinfo[mapthing].speed, K_GetKartGameSpeedScalar(gamespeed));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use pre-determined speed for tossing
|
||||
PROJSPEED = FixedMul(82 * FRACUNIT, K_GetKartGameSpeedScalar(gamespeed));
|
||||
}
|
||||
|
||||
// Scale to map scale
|
||||
// Intentionally NOT player scale, that doesn't work.
|
||||
PROJSPEED = FixedMul(PROJSPEED, mapobjectscale);
|
||||
|
||||
if (altthrow)
|
||||
{
|
||||
if (altthrow == 2) // Kitchen sink throwing
|
||||
|
|
@ -5482,6 +5489,22 @@ mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t mapthing,
|
|||
missile = false;
|
||||
}
|
||||
|
||||
// Figure out projectile speed by game speed
|
||||
if (missile)
|
||||
{
|
||||
// Use info->speed for missiles
|
||||
PROJSPEED = FixedMul(mobjinfo[mapthing].speed, K_GetKartGameSpeedScalar(gamespeed));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use pre-determined speed for tossing
|
||||
PROJSPEED = FixedMul(82 * FRACUNIT, K_GetKartGameSpeedScalar(gamespeed));
|
||||
}
|
||||
|
||||
// Scale to map scale
|
||||
// Intentionally NOT player scale, that doesn't work.
|
||||
PROJSPEED = FixedMul(PROJSPEED, mapobjectscale);
|
||||
|
||||
if (missile) // Shootables
|
||||
{
|
||||
if (dir < 0 && mapthing != MT_SPB && mapthing != MT_GARDENTOP)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue