mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Bail Sparkle
This commit is contained in:
parent
8711e287e4
commit
9c0432eb1b
4 changed files with 65 additions and 2 deletions
|
|
@ -1576,6 +1576,7 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
|
||||
"S_BAIL",
|
||||
"S_BAIB",
|
||||
"S_BAIC",
|
||||
"S_BAILCHARGE",
|
||||
|
||||
"S_AMPRING",
|
||||
|
|
@ -3570,6 +3571,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
|||
|
||||
"MT_BAIL",
|
||||
"MT_BAILCHARGE",
|
||||
"MT_BAILSPARKLE",
|
||||
|
||||
"MT_AMPRING",
|
||||
"MT_AMPBODY",
|
||||
|
|
|
|||
33
src/info.c
33
src/info.c
|
|
@ -336,6 +336,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
|
||||
"BAIL", // Bail charge
|
||||
"BAIB", // Bail after effect
|
||||
"BAIC", // Bail sparkle
|
||||
"TECH", // Bail tech charge
|
||||
|
||||
"TRC1", // Charge aura
|
||||
|
|
@ -2166,6 +2167,7 @@ state_t states[NUMSTATES] =
|
|||
|
||||
{SPR_BAIL, FF_FULLBRIGHT|FF_ANIMATE|0, 8, {NULL}, 8, 1, S_BAIB}, // S_BAIL
|
||||
{SPR_BAIB, FF_FULLBRIGHT|FF_ANIMATE|0, 10, {NULL}, 9, 1, S_NULL}, // S_BAIB
|
||||
{SPR_BAIC, FF_FULLBRIGHT|FF_ANIMATE|0, 11, {NULL}, 10, 1, S_NULL}, // S_BAIC
|
||||
{SPR_TECH, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 41, 1, S_NULL}, // S_BAILCHARGE
|
||||
|
||||
{SPR_AMPB, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_AMPRING
|
||||
|
|
@ -13776,7 +13778,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
|
||||
MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
|
|
@ -13803,7 +13805,34 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
|
||||
MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_BAILSPARKLE
|
||||
-1, // doomednum
|
||||
S_BAIC, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
0, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
67*FRACUNIT, // radius
|
||||
67*FRACUNIT, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP|MF_SCENERY, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -877,6 +877,7 @@ typedef enum sprite
|
|||
|
||||
SPR_BAIL, // Bail charge
|
||||
SPR_BAIB, // Bail after effect
|
||||
SPR_BAIC, // Bail sparkle
|
||||
SPR_TECH, // Bail tech charge
|
||||
|
||||
SPR_TRC1, // Charge aura
|
||||
|
|
@ -2635,6 +2636,7 @@ typedef enum state
|
|||
|
||||
S_BAIL,
|
||||
S_BAIB,
|
||||
S_BAIC,
|
||||
S_BAILCHARGE,
|
||||
|
||||
S_AMPRING,
|
||||
|
|
@ -4656,6 +4658,7 @@ typedef enum mobj_type
|
|||
|
||||
MT_BAIL,
|
||||
MT_BAILCHARGE,
|
||||
MT_BAILSPARKLE,
|
||||
|
||||
MT_AMPRING,
|
||||
MT_AMPBODY,
|
||||
|
|
|
|||
29
src/k_kart.c
29
src/k_kart.c
|
|
@ -10002,6 +10002,35 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
if (player->invincibilitytimer <= 0) {
|
||||
player->tripwireLeniency = max( player->tripwireLeniency, TICRATE );
|
||||
}
|
||||
|
||||
if (player->baildrop)
|
||||
{
|
||||
mobj_t *pmo = player->mo;
|
||||
// particle spawn
|
||||
#define BAILSPARKLE_MAXBAIL 61 // amount of bail rings needed for max sparkle spawn frequency
|
||||
UINT32 baildropinversefreq = BAILSPARKLE_MAXBAIL - min(player->baildrop, BAILSPARKLE_MAXBAIL-6);
|
||||
UINT32 baildropmodulo = baildropinversefreq *5/3 /10;
|
||||
if ((leveltime % (1+baildropmodulo)) == 0)
|
||||
{
|
||||
mobj_t *sparkle = P_SpawnMobj(pmo->x + (P_RandomRange(PR_DECORATION, -40,40) * pmo->scale),
|
||||
pmo->y + (P_RandomRange(PR_DECORATION, -40,40) * pmo->scale),
|
||||
pmo->z + (pmo->height/2) + (P_RandomRange(PR_DECORATION, -40,40) * pmo->scale),
|
||||
MT_BAILSPARKLE);
|
||||
|
||||
sparkle->scale = pmo->scale;
|
||||
sparkle->angle = pmo->angle;
|
||||
sparkle->momx = 3*pmo->momx/4;
|
||||
sparkle->momy = 3*pmo->momy/4;
|
||||
sparkle->momz = 3*P_GetMobjZMovement(pmo)/4;
|
||||
K_MatchGenericExtraFlags(sparkle, pmo);
|
||||
sparkle->renderflags = (pmo->renderflags & ~RF_TRANSMASK);//|RF_TRANS20|RF_ADD;
|
||||
}
|
||||
|
||||
if ((player->baildrop % BAIL_DROPFREQUENCY) == 0)
|
||||
{
|
||||
P_FlingBurst(player, K_MomentumAngle(pmo), MT_FLINGRING, 10*TICRATE, FRACUNIT, player->baildrop/BAIL_DROPFREQUENCY);
|
||||
S_StartSound(pmo, sfx_gshad);
|
||||
}
|
||||
}
|
||||
|
||||
// The precise ordering of start-of-level made me want to cut my head off,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue