mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Add electricity sparks & change purple spark colors
This commit is contained in:
parent
0e2b36e484
commit
ed91279391
4 changed files with 75 additions and 3 deletions
|
|
@ -3527,6 +3527,9 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
||||||
"S_DRIFTWARNSPARK3",
|
"S_DRIFTWARNSPARK3",
|
||||||
"S_DRIFTWARNSPARK4",
|
"S_DRIFTWARNSPARK4",
|
||||||
|
|
||||||
|
// Drift electricity
|
||||||
|
"S_DRIFTELECTRICITY",
|
||||||
|
|
||||||
// Fast lines
|
// Fast lines
|
||||||
"S_FASTLINE1",
|
"S_FASTLINE1",
|
||||||
"S_FASTLINE2",
|
"S_FASTLINE2",
|
||||||
|
|
@ -5451,6 +5454,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
||||||
"MT_DRIFTSPARK",
|
"MT_DRIFTSPARK",
|
||||||
"MT_BRAKEDRIFT",
|
"MT_BRAKEDRIFT",
|
||||||
"MT_DRIFTDUST",
|
"MT_DRIFTDUST",
|
||||||
|
"MT_DRIFTELECTRICITY",
|
||||||
|
|
||||||
"MT_ROCKETSNEAKER", // Rocket sneakers
|
"MT_ROCKETSNEAKER", // Rocket sneakers
|
||||||
|
|
||||||
|
|
|
||||||
30
src/info.c
30
src/info.c
|
|
@ -541,6 +541,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"DRIF", // Drift Sparks
|
"DRIF", // Drift Sparks
|
||||||
"BDRF", // Brake drift sparks
|
"BDRF", // Brake drift sparks
|
||||||
"DRWS", // Drift dust sparks
|
"DRWS", // Drift dust sparks
|
||||||
|
"DREL", // Drift electricity
|
||||||
|
|
||||||
// Kart Items
|
// Kart Items
|
||||||
"RSHE", // Rocket sneaker
|
"RSHE", // Rocket sneaker
|
||||||
|
|
@ -4096,6 +4097,8 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|2, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK4}, // S_DRIFTWARNSPARK3
|
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|2, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK4}, // S_DRIFTWARNSPARK3
|
||||||
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|3, 3, {NULL}, 0, 0, S_NULL}, // S_DRIFTWARNSPARK4
|
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|3, 3, {NULL}, 0, 0, S_NULL}, // S_DRIFTWARNSPARK4
|
||||||
|
|
||||||
|
{SPR_DREL, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE|FF_GLOBALANIM, 2, {NULL}, 5, 2, S_NULL}, // S_DRIFTELECTRICITY
|
||||||
|
|
||||||
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_FASTLINE2}, // S_FASTLINE1
|
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_FASTLINE2}, // S_FASTLINE1
|
||||||
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FASTLINE3}, // S_FASTLINE2
|
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FASTLINE3}, // S_FASTLINE2
|
||||||
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FASTLINE4}, // S_FASTLINE3
|
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FASTLINE4}, // S_FASTLINE3
|
||||||
|
|
@ -23473,6 +23476,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_DRIFTELECTRICITY
|
||||||
|
-1, // doomednum
|
||||||
|
S_DRIFTELECTRICITY, // 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
|
||||||
|
16*FRACUNIT, // radius
|
||||||
|
32*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
0, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIP|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
{ // MT_ROCKETSNEAKER
|
{ // MT_ROCKETSNEAKER
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_ROCKETSNEAKER_L, // spawnstate
|
S_ROCKETSNEAKER_L, // spawnstate
|
||||||
|
|
|
||||||
|
|
@ -1093,6 +1093,7 @@ typedef enum sprite
|
||||||
SPR_DRIF, // Drift Sparks
|
SPR_DRIF, // Drift Sparks
|
||||||
SPR_BDRF, // Brake drift sparks
|
SPR_BDRF, // Brake drift sparks
|
||||||
SPR_DRWS, // Drift dust sparks
|
SPR_DRWS, // Drift dust sparks
|
||||||
|
SPR_DREL, // Drift electricity
|
||||||
|
|
||||||
// Kart Items
|
// Kart Items
|
||||||
SPR_RSHE, // Rocket sneaker
|
SPR_RSHE, // Rocket sneaker
|
||||||
|
|
@ -4500,6 +4501,9 @@ typedef enum state
|
||||||
S_DRIFTWARNSPARK3,
|
S_DRIFTWARNSPARK3,
|
||||||
S_DRIFTWARNSPARK4,
|
S_DRIFTWARNSPARK4,
|
||||||
|
|
||||||
|
// Drift electricity
|
||||||
|
S_DRIFTELECTRICITY,
|
||||||
|
|
||||||
// Fast lines
|
// Fast lines
|
||||||
S_FASTLINE1,
|
S_FASTLINE1,
|
||||||
S_FASTLINE2,
|
S_FASTLINE2,
|
||||||
|
|
@ -6462,6 +6466,7 @@ typedef enum mobj_type
|
||||||
MT_DRIFTSPARK,
|
MT_DRIFTSPARK,
|
||||||
MT_BRAKEDRIFT,
|
MT_BRAKEDRIFT,
|
||||||
MT_DRIFTDUST,
|
MT_DRIFTDUST,
|
||||||
|
MT_DRIFTELECTRICITY,
|
||||||
|
|
||||||
MT_ROCKETSNEAKER,
|
MT_ROCKETSNEAKER,
|
||||||
|
|
||||||
|
|
|
||||||
39
src/k_kart.c
39
src/k_kart.c
|
|
@ -3573,14 +3573,18 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
|
||||||
else if (charge >= dsthree)
|
else if (charge >= dsthree)
|
||||||
{
|
{
|
||||||
// Stage 3: Purple
|
// Stage 3: Purple
|
||||||
if (charge <= dsthree+(32*3))
|
if (charge <= dsthree+(16*3))
|
||||||
|
{
|
||||||
|
color = SKINCOLOR_TAFFY;
|
||||||
|
}
|
||||||
|
else if (charge <= dsthree+(32*3))
|
||||||
{
|
{
|
||||||
// transition
|
// transition
|
||||||
color = SKINCOLOR_ULTRAMARINE;
|
color = SKINCOLOR_MOONSET;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
color = SKINCOLOR_THISTLE;
|
color = SKINCOLOR_PURPLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (charge >= dstwo)
|
else if (charge >= dstwo)
|
||||||
|
|
@ -3613,6 +3617,30 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void K_SpawnDriftElectricity(player_t *player)
|
||||||
|
{
|
||||||
|
UINT8 i;
|
||||||
|
mobj_t *mo = player->mo;
|
||||||
|
fixed_t verticalradius = FixedDiv(mo->radius/3, mo->scale); // P_SpawnMobjFromMobj will rescale
|
||||||
|
fixed_t horizontalradius = FixedDiv(5*mo->radius/3, mo->scale);
|
||||||
|
angle_t verticalangle = K_MomentumAngle(mo) + ANGLE_180;
|
||||||
|
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
mobj_t *spark;
|
||||||
|
angle_t horizonatalangle = verticalangle + (2*i - 1) * ANGLE_90;
|
||||||
|
fixed_t x = P_ReturnThrustX(mo, verticalangle, verticalradius)
|
||||||
|
+ P_ReturnThrustX(mo, horizonatalangle, horizontalradius);
|
||||||
|
fixed_t y = P_ReturnThrustY(mo, verticalangle, verticalradius)
|
||||||
|
+ P_ReturnThrustY(mo, horizonatalangle, horizontalradius);
|
||||||
|
|
||||||
|
spark = P_SpawnMobjFromMobj(mo, x, y, 0, MT_DRIFTELECTRICITY);
|
||||||
|
spark->angle = verticalangle + ANGLE_180;// + (2*i - 1) * ANGLE_22h;
|
||||||
|
spark->color = K_DriftSparkColor(player, player->kartstuff[k_driftcharge]);
|
||||||
|
K_GenericExtraFlagsNoZAdjust(spark, mo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void K_SpawnDriftSparks(player_t *player)
|
static void K_SpawnDriftSparks(player_t *player)
|
||||||
{
|
{
|
||||||
const INT32 dsone = K_GetKartDriftSparkValueForStage(player, 1);
|
const INT32 dsone = K_GetKartDriftSparkValueForStage(player, 1);
|
||||||
|
|
@ -3758,6 +3786,11 @@ static void K_SpawnDriftSparks(player_t *player)
|
||||||
|
|
||||||
K_MatchGenericExtraFlags(spark, player->mo);
|
K_MatchGenericExtraFlags(spark, player->mo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player->kartstuff[k_driftcharge] >= dsthree)
|
||||||
|
{
|
||||||
|
K_SpawnDriftElectricity(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void K_SpawnAIZDust(player_t *player)
|
static void K_SpawnAIZDust(player_t *player)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue