Scale up Mushroom Hill Pole and remove speed requirement

This commit is contained in:
Lach 2025-08-25 02:41:34 +10:00
parent cf2ab09845
commit 4543f10666
3 changed files with 6 additions and 6 deletions

View file

@ -22960,7 +22960,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // deathsound
8*FRACUNIT, // speed
20*FRACUNIT, // radius
64*FRACUNIT, // height
128*FRACUNIT, // height
0, // display offset
0, // mass
0, // damage

View file

@ -84,18 +84,16 @@ void Obj_MushroomHillPolePlayerThink(player_t *player)
void Obj_MushroomHillPoleTouch(mobj_t *pole, mobj_t *toucher)
{
player_t *player = toucher->player;
fixed_t playerSpeed = FixedHypot(toucher->momx, toucher->momy);
angle_t momentumAngle;
if (
playerSpeed < FixedMul(pole->info->speed, pole->scale) // player is moving too slowly
|| player->carry != CR_NONE // player is already being carried by something else
player->carry != CR_NONE // player is already being carried by something else
|| pole->tracer == toucher // pole just launched this player
|| (
!P_MobjWasRemoved(pole->target)
&& pole->target->player
&& pole->target->player->carry == CR_MUSHROOMHILLPOLE
) // pole is already occupied by a player
|| pole->tracer == toucher // pole just launched this player
)
{
return;
@ -104,7 +102,7 @@ void Obj_MushroomHillPoleTouch(mobj_t *pole, mobj_t *toucher)
momentumAngle = K_MomentumAngle(toucher);
P_SetTarget(&pole->target, toucher);
pole->movefactor = playerSpeed; // speed at which to spin around the pole
pole->movefactor = max(FixedHypot(toucher->momx, toucher->momy), FixedMul(pole->info->speed, pole->scale)); // speed at which to spin around the pole
pole->movedir = R_PointToAngle2(pole->x, pole->y, toucher->x, toucher->y); // angle at which to project the player from the pole
pole->angle = toucher->angle + Easing_Linear(MOMENTUM_ANGLE_PROPORTION, 0, (INT32)(momentumAngle - toucher->angle)); // final launch angle
pole->extravalue1 = (pole->movedir - momentumAngle < ANGLE_180) ? -1 : 1; // direction to spin around the pole

View file

@ -11196,6 +11196,8 @@ fixed_t P_GetMobjDefaultScale(mobj_t *mobj)
return 2*FRACUNIT;
case MT_ANCIENTGEAR:
return 3*FRACUNIT/2;
case MT_MHPOLE:
return 4*FRACUNIT;
default:
break;
}