Merge branch 'battle-magician' into 'master'

Rerandomize Heavy Magician when recovering in GTR_BUMPERS

See merge request KartKrew/Kart!2183
This commit is contained in:
AJ Martinez 2024-03-29 03:13:16 +00:00
commit 5e8dd70ac1
6 changed files with 17 additions and 5 deletions

View file

@ -925,7 +925,7 @@ boolean Obj_SpecialUFODamage(mobj_t *ufo, mobj_t *inflictor, mobj_t *source, UIN
? demo.skinlist[demo.currentskinid[(source->player-players)]].flags
: skins[source->player->skin].flags;
if (skinflags & SF_IRONMAN)
SetRandomFakePlayerSkin(source->player, true);
SetRandomFakePlayerSkin(source->player, true, false);
}
ufo_intangible(ufo) = 60;

View file

@ -3276,6 +3276,15 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
Obj_EndBungee(player);
K_BumperInflate(target->player);
UINT32 hurtskinflags = (demo.playback)
? demo.skinlist[demo.currentskinid[(player-players)]].flags
: skins[player->skin].flags;
if (hurtskinflags & SF_IRONMAN)
{
if (gametyperules & GTR_BUMPERS)
SetRandomFakePlayerSkin(player, false, true);
}
// Explosions are explicit combo setups.
if (damagetype & DMG_EXPLODE)
player->bumperinflate = 0;

View file

@ -2017,7 +2017,7 @@ static void K_HandleLapIncrement(player_t *player)
: skins[player->skin].flags;
if (skinflags & SF_IRONMAN)
{
SetRandomFakePlayerSkin(player, true);
SetRandomFakePlayerSkin(player, true, false);
}
// Always trust waypoints entering the first lap.

View file

@ -4542,7 +4542,7 @@ void P_PlayerThink(player_t *player)
}
else if (!(gametyperules & GTR_CIRCUIT))
{
SetRandomFakePlayerSkin(player, false);
SetRandomFakePlayerSkin(player, false, false);
}
}
}

View file

@ -518,7 +518,7 @@ void SetFakePlayerSkin(player_t* player, INT32 skinid)
}
// Loudly rerandomize
void SetRandomFakePlayerSkin(player_t* player, boolean fast)
void SetRandomFakePlayerSkin(player_t* player, boolean fast, boolean instant)
{
INT32 i;
UINT8 usableskins = 0, maxskinpick;
@ -549,6 +549,9 @@ void SetRandomFakePlayerSkin(player_t* player, boolean fast)
SetFakePlayerSkin(player, i);
if (instant)
return;
if (player->mo && player->spectator == false && !(player->pflags & PF_VOID))
{
S_StartSound(player->mo, sfx_kc33);

View file

@ -127,7 +127,7 @@ UINT8 R_BotDefaultSkin(void);
// Heavy Magician
void SetFakePlayerSkin(player_t* player, INT32 skinnum);
void SetRandomFakePlayerSkin(player_t* player, boolean fast);
void SetRandomFakePlayerSkin(player_t* player, boolean fast, boolean instant);
void ClearFakePlayerSkin(player_t* player);
// Visual flair