mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Ancient Shrine polish
- Change the phrasing from "activate the ancient shrine" to "play a melody for the ancient shrine in" - Add ~~Morbius~~ Mystic Melody Orb decorations - A_FireShrink has been fixed to use mapobjectscale (and prevent dividing by 0)
This commit is contained in:
parent
52674c7bb2
commit
70c0b0503d
6 changed files with 104 additions and 15 deletions
|
|
@ -1198,6 +1198,22 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
||||||
// Ancient Shrine
|
// Ancient Shrine
|
||||||
"S_ANCIENTSHRINE",
|
"S_ANCIENTSHRINE",
|
||||||
|
|
||||||
|
"S_MORB1",
|
||||||
|
"S_MORB2",
|
||||||
|
"S_MORB3",
|
||||||
|
"S_MORB4",
|
||||||
|
"S_MORB5",
|
||||||
|
"S_MORB6",
|
||||||
|
"S_MORB7",
|
||||||
|
"S_MORB8",
|
||||||
|
"S_MORB9",
|
||||||
|
"S_MORB10",
|
||||||
|
"S_MORB11",
|
||||||
|
"S_MORB12",
|
||||||
|
"S_MORB13",
|
||||||
|
"S_MORB14",
|
||||||
|
"S_MORB15",
|
||||||
|
|
||||||
// Chaos Emeralds
|
// Chaos Emeralds
|
||||||
"S_CHAOSEMERALD1",
|
"S_CHAOSEMERALD1",
|
||||||
"S_CHAOSEMERALD2",
|
"S_CHAOSEMERALD2",
|
||||||
|
|
|
||||||
19
src/info.c
19
src/info.c
|
|
@ -145,6 +145,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"EMBM", // Emblem
|
"EMBM", // Emblem
|
||||||
"SPCN", // Spray Can
|
"SPCN", // Spray Can
|
||||||
"MMSH", // Ancient Shrine
|
"MMSH", // Ancient Shrine
|
||||||
|
"MORB", // One Morbillion
|
||||||
"EMRC", // Chaos Emeralds
|
"EMRC", // Chaos Emeralds
|
||||||
"SEMR", // Super Emeralds
|
"SEMR", // Super Emeralds
|
||||||
"ESPK",
|
"ESPK",
|
||||||
|
|
@ -1902,6 +1903,22 @@ state_t states[NUMSTATES] =
|
||||||
// Ancient Shrine
|
// Ancient Shrine
|
||||||
{SPR_MMSH, 0, -1, {NULL}, 0, 0, S_NULL}, // S_ANCIENTSHRINE
|
{SPR_MMSH, 0, -1, {NULL}, 0, 0, S_NULL}, // S_ANCIENTSHRINE
|
||||||
|
|
||||||
|
{SPR_MORB, 0|FF_ADD, 1, {A_FireShrink}, 2*FRACUNIT/3, 12, S_MORB2}, // S_MORB1
|
||||||
|
{SPR_MORB, 1|FF_ADD, 1, {NULL}, 0, 0, S_MORB3}, // S_MORB2
|
||||||
|
{SPR_MORB, 2|FF_ADD, 1, {NULL}, 0, 0, S_MORB4}, // S_MORB3
|
||||||
|
{SPR_MORB, 3|FF_ADD, 1, {NULL}, 0, 0, S_MORB5}, // S_MORB4
|
||||||
|
{SPR_MORB, 4|FF_ADD, 1, {NULL}, 0, 0, S_MORB6}, // S_MORB5
|
||||||
|
{SPR_MORB, 5|FF_ADD, 1, {NULL}, 0, 0, S_MORB7}, // S_MORB6
|
||||||
|
{SPR_MORB, 6|FF_ADD, 1, {NULL}, 0, 0, S_MORB8}, // S_MORB7
|
||||||
|
{SPR_MORB, 7|FF_ADD, 4, {NULL}, 0, 0, S_MORB9}, // S_MORB8
|
||||||
|
{SPR_MORB, 6|FF_ADD, 1, {A_FireShrink}, 1, 12, S_MORB10}, // S_MORB9
|
||||||
|
{SPR_MORB, 5|FF_ADD, 1, {NULL}, 0, 0, S_MORB11}, // S_MORB10
|
||||||
|
{SPR_MORB, 4|FF_ADD, 1, {NULL}, 0, 0, S_MORB12}, // S_MORB11
|
||||||
|
{SPR_MORB, 3|FF_ADD, 1, {NULL}, 0, 0, S_MORB13}, // S_MORB12
|
||||||
|
{SPR_MORB, 2|FF_ADD, 1, {NULL}, 0, 0, S_MORB14}, // S_MORB13
|
||||||
|
{SPR_MORB, 1|FF_ADD, 1, {NULL}, 0, 0, S_MORB15}, // S_MORB14
|
||||||
|
{SPR_MORB, 0|FF_ADD, 1, {NULL}, 0, 0, S_NULL}, // S_MORB15
|
||||||
|
|
||||||
// Chaos Emeralds
|
// Chaos Emeralds
|
||||||
{SPR_EMRC, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_CHAOSEMERALD2}, // S_CHAOSEMERALD1
|
{SPR_EMRC, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_CHAOSEMERALD2}, // S_CHAOSEMERALD1
|
||||||
{SPR_EMRC, FF_FULLBRIGHT|FF_ADD, 1, {NULL}, 0, 0, S_CHAOSEMERALD1}, // S_CHAOSEMERALD2
|
{SPR_EMRC, FF_FULLBRIGHT|FF_ADD, 1, {NULL}, 0, 0, S_CHAOSEMERALD1}, // S_CHAOSEMERALD2
|
||||||
|
|
@ -1923,7 +1940,7 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|11, 8, {NULL}, 7, 1, S_GAINAX_MID2}, // S_EMERALDFLARE1
|
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|11, 8, {NULL}, 7, 1, S_GAINAX_MID2}, // S_EMERALDFLARE1
|
||||||
|
|
||||||
// Prison Egg Drops
|
// Prison Egg Drops
|
||||||
{SPR_ALTM, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_PRISONEGGDROP_CD
|
{SPR_ALTM, 0|FF_PAPERSPRITE|FF_SEMIBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_PRISONEGGDROP_CD
|
||||||
|
|
||||||
// Bubble Source
|
// Bubble Source
|
||||||
{SPR_BBLS, 0, 8, {A_BubbleSpawn}, 2048, 0, S_BUBBLES2}, // S_BUBBLES1
|
{SPR_BBLS, 0, 8, {A_BubbleSpawn}, 2048, 0, S_BUBBLES2}, // S_BUBBLES1
|
||||||
|
|
|
||||||
17
src/info.h
17
src/info.h
|
|
@ -700,6 +700,7 @@ typedef enum sprite
|
||||||
SPR_EMBM, // Emblem
|
SPR_EMBM, // Emblem
|
||||||
SPR_SPCN, // Spray Can
|
SPR_SPCN, // Spray Can
|
||||||
SPR_MMSH, // Ancient Shrine
|
SPR_MMSH, // Ancient Shrine
|
||||||
|
SPR_MORB, // One Morbillion
|
||||||
SPR_EMRC, // Chaos Emeralds
|
SPR_EMRC, // Chaos Emeralds
|
||||||
SPR_SEMR, // Super Emeralds
|
SPR_SEMR, // Super Emeralds
|
||||||
SPR_ESPK,
|
SPR_ESPK,
|
||||||
|
|
@ -2382,6 +2383,22 @@ typedef enum state
|
||||||
// Ancient Shrine
|
// Ancient Shrine
|
||||||
S_ANCIENTSHRINE,
|
S_ANCIENTSHRINE,
|
||||||
|
|
||||||
|
S_MORB1,
|
||||||
|
S_MORB2,
|
||||||
|
S_MORB3,
|
||||||
|
S_MORB4,
|
||||||
|
S_MORB5,
|
||||||
|
S_MORB6,
|
||||||
|
S_MORB7,
|
||||||
|
S_MORB8,
|
||||||
|
S_MORB9,
|
||||||
|
S_MORB10,
|
||||||
|
S_MORB11,
|
||||||
|
S_MORB12,
|
||||||
|
S_MORB13,
|
||||||
|
S_MORB14,
|
||||||
|
S_MORB15,
|
||||||
|
|
||||||
// Chaos Emeralds
|
// Chaos Emeralds
|
||||||
S_CHAOSEMERALD1,
|
S_CHAOSEMERALD1,
|
||||||
S_CHAOSEMERALD2,
|
S_CHAOSEMERALD2,
|
||||||
|
|
|
||||||
|
|
@ -1827,7 +1827,7 @@ static const char *M_GetConditionString(condition_t *cn)
|
||||||
else if (cn->type == UC_MAPSPBATTACK)
|
else if (cn->type == UC_MAPSPBATTACK)
|
||||||
work = "conquer";
|
work = "conquer";
|
||||||
else if (cn->type == UC_MAPMYSTICMELODY)
|
else if (cn->type == UC_MAPMYSTICMELODY)
|
||||||
work = "activate the ancient shrine in";
|
work = "play a melody for the ancient shrine in";
|
||||||
|
|
||||||
work = va("%s%s %s",
|
work = va("%s%s %s",
|
||||||
prefix,
|
prefix,
|
||||||
|
|
|
||||||
|
|
@ -12652,11 +12652,11 @@ void A_FireShrink(mobj_t *actor)
|
||||||
INT32 locvar1 = var1;
|
INT32 locvar1 = var1;
|
||||||
INT32 locvar2 = var2;
|
INT32 locvar2 = var2;
|
||||||
|
|
||||||
if (LUA_CallAction(A_FIRESHRINK, actor))
|
if (LUA_CallAction(A_FIRESHRINK, actor) || locvar2 == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
actor->destscale = locvar1;
|
actor->destscale = locvar1;
|
||||||
actor->scalespeed = FRACUNIT/locvar2;
|
actor->scalespeed = mapobjectscale/locvar2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function: A_SpawnPterabytes
|
// Function: A_SpawnPterabytes
|
||||||
|
|
|
||||||
61
src/p_mobj.c
61
src/p_mobj.c
|
|
@ -7257,16 +7257,55 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
case MT_ANCIENTSHRINE:
|
case MT_ANCIENTSHRINE:
|
||||||
{
|
{
|
||||||
if (P_MobjWasRemoved(mobj->tracer) == false
|
boolean docolorized = false;
|
||||||
&& mobj->tracer->fuse == 1)
|
|
||||||
{
|
|
||||||
if (!(mapheaderinfo[gamemap-1]->records.mapvisited & MV_MYSTICMELODY))
|
|
||||||
{
|
|
||||||
mapheaderinfo[gamemap-1]->records.mapvisited |= MV_MYSTICMELODY;
|
|
||||||
|
|
||||||
if (!M_UpdateUnlockablesAndExtraEmblems(true, true))
|
if (P_MobjWasRemoved(mobj->tracer) == false)
|
||||||
S_StartSound(NULL, sfx_ncitem);
|
{
|
||||||
gamedata->deferredsave = true;
|
if (mobj->tracer->fuse == 1)
|
||||||
|
{
|
||||||
|
if (!(mapheaderinfo[gamemap-1]->records.mapvisited & MV_MYSTICMELODY))
|
||||||
|
{
|
||||||
|
mapheaderinfo[gamemap-1]->records.mapvisited |= MV_MYSTICMELODY;
|
||||||
|
|
||||||
|
if (!M_UpdateUnlockablesAndExtraEmblems(true, true))
|
||||||
|
S_StartSound(NULL, sfx_ncitem);
|
||||||
|
gamedata->deferredsave = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Non-RNG-advancing equivalent of Obj_SpawnEmeraldSparks
|
||||||
|
if (leveltime % 3 == 0)
|
||||||
|
{
|
||||||
|
mobj_t *sparkle = P_SpawnMobjFromMobj(
|
||||||
|
mobj,
|
||||||
|
M_RandomRange(-48, 48) * FRACUNIT,
|
||||||
|
M_RandomRange(-48, 48) * FRACUNIT,
|
||||||
|
M_RandomRange(0, 64) * FRACUNIT,
|
||||||
|
MT_SPARK
|
||||||
|
);
|
||||||
|
P_SetMobjState(sparkle, S_MORB1);
|
||||||
|
|
||||||
|
sparkle->color = SKINCOLOR_PLAGUE;
|
||||||
|
sparkle->momz += 6 * mobj->scale * P_MobjFlip(mobj);
|
||||||
|
P_SetScale(sparkle, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
docolorized = !!(leveltime & 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mobj->colorized != docolorized)
|
||||||
|
{
|
||||||
|
if (docolorized)
|
||||||
|
{
|
||||||
|
mobj->colorized = true;
|
||||||
|
mobj->color = SKINCOLOR_PLAGUE;
|
||||||
|
mobj->spriteyoffset = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mobj->colorized = false;
|
||||||
|
mobj->color = SKINCOLOR_NONE;
|
||||||
|
mobj->spriteyoffset = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -7678,7 +7717,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
mobj->renderflags |= RF_SEMIBRIGHT;
|
mobj->renderflags |= RF_SEMIBRIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
P_SetMobjState(mobj, teststate);
|
P_SetMobjStateNF(mobj, teststate);
|
||||||
|
|
||||||
if (P_MobjWasRemoved(mobj))
|
if (P_MobjWasRemoved(mobj))
|
||||||
{
|
{
|
||||||
|
|
@ -7724,7 +7763,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
M_RandomRange(0, 64) * FRACUNIT,
|
M_RandomRange(0, 64) * FRACUNIT,
|
||||||
MT_SPARK
|
MT_SPARK
|
||||||
);
|
);
|
||||||
P_SetMobjState(sparkle, mobjinfo[MT_EMERALDSPARK].spawnstate);
|
P_SetMobjStateNF(sparkle, mobjinfo[MT_EMERALDSPARK].spawnstate);
|
||||||
|
|
||||||
sparkle->color = M_RandomChance(FRACUNIT/2) ? SKINCOLOR_ULTRAMARINE : SKINCOLOR_MAGENTA;
|
sparkle->color = M_RandomChance(FRACUNIT/2) ? SKINCOLOR_ULTRAMARINE : SKINCOLOR_MAGENTA;
|
||||||
sparkle->momz += 8 * mobj->scale * P_MobjFlip(mobj);
|
sparkle->momz += 8 * mobj->scale * P_MobjFlip(mobj);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue