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_BAIL",
|
||||||
"S_BAIB",
|
"S_BAIB",
|
||||||
|
"S_BAIC",
|
||||||
"S_BAILCHARGE",
|
"S_BAILCHARGE",
|
||||||
|
|
||||||
"S_AMPRING",
|
"S_AMPRING",
|
||||||
|
|
@ -3570,6 +3571,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
||||||
|
|
||||||
"MT_BAIL",
|
"MT_BAIL",
|
||||||
"MT_BAILCHARGE",
|
"MT_BAILCHARGE",
|
||||||
|
"MT_BAILSPARKLE",
|
||||||
|
|
||||||
"MT_AMPRING",
|
"MT_AMPRING",
|
||||||
"MT_AMPBODY",
|
"MT_AMPBODY",
|
||||||
|
|
|
||||||
33
src/info.c
33
src/info.c
|
|
@ -336,6 +336,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
|
|
||||||
"BAIL", // Bail charge
|
"BAIL", // Bail charge
|
||||||
"BAIB", // Bail after effect
|
"BAIB", // Bail after effect
|
||||||
|
"BAIC", // Bail sparkle
|
||||||
"TECH", // Bail tech charge
|
"TECH", // Bail tech charge
|
||||||
|
|
||||||
"TRC1", // Charge aura
|
"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_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_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_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
|
{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
|
100, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
sfx_None, // activesound
|
||||||
MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
|
MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP, // flags
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -13803,7 +13805,34 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
100, // mass
|
100, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
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
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -877,6 +877,7 @@ typedef enum sprite
|
||||||
|
|
||||||
SPR_BAIL, // Bail charge
|
SPR_BAIL, // Bail charge
|
||||||
SPR_BAIB, // Bail after effect
|
SPR_BAIB, // Bail after effect
|
||||||
|
SPR_BAIC, // Bail sparkle
|
||||||
SPR_TECH, // Bail tech charge
|
SPR_TECH, // Bail tech charge
|
||||||
|
|
||||||
SPR_TRC1, // Charge aura
|
SPR_TRC1, // Charge aura
|
||||||
|
|
@ -2635,6 +2636,7 @@ typedef enum state
|
||||||
|
|
||||||
S_BAIL,
|
S_BAIL,
|
||||||
S_BAIB,
|
S_BAIB,
|
||||||
|
S_BAIC,
|
||||||
S_BAILCHARGE,
|
S_BAILCHARGE,
|
||||||
|
|
||||||
S_AMPRING,
|
S_AMPRING,
|
||||||
|
|
@ -4656,6 +4658,7 @@ typedef enum mobj_type
|
||||||
|
|
||||||
MT_BAIL,
|
MT_BAIL,
|
||||||
MT_BAILCHARGE,
|
MT_BAILCHARGE,
|
||||||
|
MT_BAILSPARKLE,
|
||||||
|
|
||||||
MT_AMPRING,
|
MT_AMPRING,
|
||||||
MT_AMPBODY,
|
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) {
|
if (player->invincibilitytimer <= 0) {
|
||||||
player->tripwireLeniency = max( player->tripwireLeniency, TICRATE );
|
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,
|
// The precise ordering of start-of-level made me want to cut my head off,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue