WIP: Move Bail activation FX to correct spot, buff boost, remove broly

This commit is contained in:
Antonio Martinez 2025-05-12 19:07:55 -04:00 committed by Ashnal
parent 6cc9de5efd
commit d297577d8b
8 changed files with 18 additions and 18 deletions

View file

@ -1574,7 +1574,7 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_BLOCKRING", "S_BLOCKRING",
"S_BLOCKBODY", "S_BLOCKBODY",
"S_BAILCHARGE", "S_BAIL",
"S_TECHCHARGE", "S_TECHCHARGE",
"S_AMPRING", "S_AMPRING",
@ -3567,7 +3567,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_BLOCKRING", "MT_BLOCKRING",
"MT_BLOCKBODY", "MT_BLOCKBODY",
"MT_BAILCHARGE", "MT_BAIL",
"MT_AMPRING", "MT_AMPRING",
"MT_AMPBODY", "MT_AMPBODY",

View file

@ -2163,7 +2163,7 @@ state_t states[NUMSTATES] =
{SPR_GRNG, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_BLOCKRING {SPR_GRNG, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_BLOCKRING
{SPR_GBDY, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_BLOCKBODY {SPR_GBDY, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_BLOCKBODY
{SPR_BAIL, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 8, 1, S_NULL}, // S_BAILCHARGE {SPR_BAIL, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 8, 1, S_NULL}, // S_BAIL
{SPR_TECH, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 41, 1, S_NULL}, // S_TECHCHARGE {SPR_TECH, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 41, 1, S_NULL}, // S_TECHCHARGE
{SPR_AMPB, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_AMPRING {SPR_AMPB, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_AMPRING
@ -13751,9 +13751,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_BAILCHARGE { // MT_BAIL
-1, // doomednum -1, // doomednum
S_BAILCHARGE, // spawnstate S_BAIL, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound

View file

@ -2632,7 +2632,7 @@ typedef enum state
S_BLOCKRING, S_BLOCKRING,
S_BLOCKBODY, S_BLOCKBODY,
S_BAILCHARGE, S_BAIL,
S_TECHCHARGE, S_TECHCHARGE,
S_AMPRING, S_AMPRING,
@ -4652,7 +4652,7 @@ typedef enum mobj_type
MT_BLOCKRING, MT_BLOCKRING,
MT_BLOCKBODY, MT_BLOCKBODY,
MT_BAILCHARGE, MT_BAIL,
MT_AMPRING, MT_AMPRING,
MT_AMPBODY, MT_AMPBODY,

View file

@ -13926,8 +13926,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->bailcharge++; player->bailcharge++;
if (player->bailcharge == 1) if (player->bailcharge == 1)
{ {
mobj_t * bail = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, MT_BAILCHARGE); // Hi Ashnal
P_SetTarget(&bail->target, player->mo);
} }
} }
else else
@ -13935,12 +13934,15 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->bailcharge = 0; player->bailcharge = 0;
} }
if ((!P_PlayerInPain(player) && player->bailcharge >= BAIL_MAXCHARGE) || player->bailcharge >= BAIL_PAINMAXCHARGE) if ((!P_PlayerInPain(player) && player->bailcharge >= BAIL_MAXCHARGE) || player->bailcharge)
{ {
CONS_Printf("rl %d it %d ia %d ri %d sr %d pr %d\n", player->itemRoulette.active, player->itemtype, player->itemamount, player->rings > 0, player->superring > 0, player->pickuprings > 0); CONS_Printf("rl %d it %d ia %d ri %d sr %d pr %d\n", player->itemRoulette.active, player->itemtype, player->itemamount, player->rings > 0, player->superring > 0, player->pickuprings > 0);
player->bailcharge = 0; player->bailcharge = 0;
mobj_t * bail = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, MT_BAIL);
P_SetTarget(&bail->target, player->mo);
UINT32 debtrings = 20; UINT32 debtrings = 20;
if (player->rings < 0) if (player->rings < 0)
{ {
@ -13989,8 +13991,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->baildrop = baildrop * BAIL_DROPFREQUENCY + 1; player->baildrop = baildrop * BAIL_DROPFREQUENCY + 1;
K_AddHitLag(player->mo, TICRATE/4, false); K_AddHitLag(player->mo, TICRATE/4, false);
mobj_t *broly = Obj_SpawnBrolyKi(player->mo, player->mo->hitlag);
broly->extravalue2 = 16*mapobjectscale;
if (P_PlayerInPain(player)) if (P_PlayerInPain(player))
{ {

View file

@ -47,7 +47,7 @@ Make sure this matches the actual number of states
#define BAIL_MAXCHARGE (9) // tics to bail when not in painstate #define BAIL_MAXCHARGE (9) // tics to bail when not in painstate
#define BAIL_PAINMAXCHARGE (42) // tics to bail when in painstate #define BAIL_PAINMAXCHARGE (42) // tics to bail when in painstate
#define BAIL_DROP (FRACUNIT/2) #define BAIL_DROP (FRACUNIT/2)
#define BAIL_BOOST (FRACUNIT/3) #define BAIL_BOOST (FRACUNIT)
#define BAIL_DROPFREQUENCY (3) #define BAIL_DROPFREQUENCY (3)
#define MAXCOMBOTHRUST (mapobjectscale*20) #define MAXCOMBOTHRUST (mapobjectscale*20)

View file

@ -154,7 +154,7 @@ void Obj_ChargeReleaseThink(mobj_t *release);
void Obj_ChargeExtraThink(mobj_t *extra); void Obj_ChargeExtraThink(mobj_t *extra);
/* Bail VFX */ /* Bail VFX */
void Obj_BailChargeThink(mobj_t *aura); void Obj_BailThink(mobj_t *aura);
/* Ring Shooter */ /* Ring Shooter */
boolean Obj_RingShooterThinker(mobj_t *mo); boolean Obj_RingShooterThinker(mobj_t *mo);

View file

@ -17,13 +17,13 @@
#include "../k_kart.h" #include "../k_kart.h"
#include "../p_local.h" #include "../p_local.h"
void Obj_BailChargeThink (mobj_t *aura) void Obj_BailThink (mobj_t *aura)
{ {
if (P_MobjWasRemoved(aura->target) if (P_MobjWasRemoved(aura->target)
|| aura->target->health == 0 || aura->target->health == 0
|| aura->target->destscale <= 1 // sealed star fall out || aura->target->destscale <= 1 // sealed star fall out
|| !aura->target->player || !aura->target->player
|| !aura->target->player->bailcharge) || !aura->target->hitlag)
{ {
P_RemoveMobj(aura); P_RemoveMobj(aura);
} }

View file

@ -8923,9 +8923,9 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
Obj_BlockBodyThink(mobj); Obj_BlockBodyThink(mobj);
break; break;
} }
case MT_BAILCHARGE: case MT_BAIL:
{ {
Obj_BailChargeThink(mobj); Obj_BailThink(mobj);
break; break;
} }
case MT_AMPRING: case MT_AMPRING: