egg mine bracket

This commit is contained in:
minenice55 2025-11-04 23:30:28 -05:00
parent 2c04bb2ef5
commit b59a9272ea
3 changed files with 41 additions and 17 deletions

View file

@ -182,6 +182,9 @@ typedef enum
KRITEM_TRIPLEORBINAUT,
KRITEM_QUADORBINAUT,
KRITEM_DUALJAWZ,
// alt items implemented as separate things
KAITEM_EGGMINE, // also landmine
NUMKARTRESULTS
} kartitems_t;

View file

@ -251,7 +251,7 @@ void K_RegisterKartStuff(void)
// Nu-ITEMS
CV_RegisterVar(&cv_superring);
CV_RegisterVar(&cv_landmine);
// CV_RegisterVar(&cv_landmine);
CV_RegisterVar(&cv_bubbleshield);
CV_RegisterVar(&cv_flameshield);

View file

@ -56,7 +56,7 @@ consvar_t *KartItemCVars[NUMKARTRESULTS-1] =
&cv_pogospring,
&cv_kitchensink,
&cv_superring,
&cv_landmine,
// &cv_landmine,
&cv_bubbleshield,
&cv_flameshield,
&cv_dualsneaker,
@ -108,7 +108,7 @@ static UINT8 K_KartItemOddsRace[NUMKARTRESULTS-1][MAXODDS] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Pogo Spring
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Kitchen Sink
{ 7, 11, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Super Ring
{ 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Land Mine / Egg Mine
{ 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Land Mine
{ 0, 0, 0, 12, 15, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Bubble Shield
{ 0, 0, 0, 0, 0, 0, 2, 4, 12, 24, 27, 12, 7, 4, 0, 0}, // Flame Shield
{ 0, 0, 0, 0, 0, 0, 8, 20, 40, 12, 0, 0, 0, 0, 0, 0}, // Sneaker x2
@ -117,7 +117,8 @@ static UINT8 K_KartItemOddsRace[NUMKARTRESULTS-1][MAXODDS] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Banana x10
{ 0, 0, 0, 2, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Orbinaut x3
{ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Orbinaut x4
{ 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} // Jawz x2
{ 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // Jawz x2
{ 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} // Egg Mine
};
static UINT8 K_KartItemOddsBattle[NUMKARTRESULTS][2] =
@ -140,7 +141,7 @@ static UINT8 K_KartItemOddsBattle[NUMKARTRESULTS][2] =
{ 3, 0 }, // Pogo Spring
{ 0, 0 }, // Kitchen Sink
{ 0, 0 }, // Super Ring
{ 2, 0 }, // Land Mine / Egg Mine
{ 2, 0 }, // Land Mine
{ 1, 0 }, // Bubble Shield
{ 1, 0 }, // Flame Shield
{ 0, 0 }, // Sneaker x2
@ -149,7 +150,8 @@ static UINT8 K_KartItemOddsBattle[NUMKARTRESULTS][2] =
{ 1, 1 }, // Banana x10
{ 2, 0 }, // Orbinaut x3
{ 1, 1 }, // Orbinaut x4
{ 5, 1 } // Jawz x2
{ 5, 1 }, // Jawz x2
{ 2, 0 } // Egg Mine
};
/*
@ -173,7 +175,7 @@ static UINT8 K_KartItemOddsSpecial[NUMKARTRESULTS-1][4] =
{ 0, 0, 0, 0 }, // Pogo Spring
{ 0, 0, 0, 0 }, // Kitchen Sink
{ 0, 0, 0, 0 }, // Super Ring
{ 0, 0, 0, 0 }, // Land Mine / Egg Mine
{ 0, 0, 0, 0 }, // Land Mine
{ 0, 0, 0, 0 }, // Bubble Shield
{ 0, 0, 0, 0 }, // Flame Shield
{ 0, 1, 1, 0 }, // Sneaker x2
@ -182,7 +184,8 @@ static UINT8 K_KartItemOddsSpecial[NUMKARTRESULTS-1][4] =
{ 0, 0, 0, 0 }, // Banana x10
{ 0, 1, 1, 0 }, // Orbinaut x3
{ 0, 0, 1, 1 }, // Orbinaut x4
{ 0, 0, 1, 1 } // Jawz x2
{ 0, 0, 1, 1 }, // Jawz x2
{ 0, 0, 0, 0 } // Egg Mine
};
*/
@ -209,7 +212,7 @@ tic_t ItemBGone[NUMKARTRESULTS][2] =
{ 0, 0 }, // Pogo Spring
{ 0, 0 }, // Kitchen Sink
{ 0, 0 }, // Super Ring
{ 0, 0 }, // Land Mine / Egg Mine
{ 0, 0 }, // Land Mine
{ 5, 0 }, // Bubble Shield
{ 8, 0 }, // Flame Shield
{ 0, 0 }, // Sneaker x2
@ -218,7 +221,8 @@ tic_t ItemBGone[NUMKARTRESULTS][2] =
{ 30, 0 }, // Banana x10
{ 10, 0 }, // Orbinaut x3
{ 20, 0 }, // Orbinaut x4
{ 10, 0 } // Jawz x2
{ 10, 0 }, // Jawz x2
{ 0, 0 } // Egg Mine
};
// TODO: Vectorize all item tables and shove them into gamemode-uniqe pools (k_oddstable.cpp?).
@ -718,12 +722,27 @@ INT32 K_KartGetItemOdds(
notForBottom = true;
break;
case KITEM_EGGMAN:
// It blows you up and is overall ridiculous. This was *overdue*.
cooldownOnStart = true;
powerItem = true;
notNearEnd = true;
notForBottom = true;
if (K_IsKartItemAlternate(KITEM_EGGMAN))
{
notForBottom = true;
if (gametyperules & GTR_BATTLEODDS)
{
newodds = K_KartItemOddsBattle[KAITEM_EGGMINE-1][pos];
}
else if (gametyperules & GTR_RACEODDS)
{
newodds = K_KartItemOddsRace[KAITEM_EGGMINE-1][pos];
}
}
else
{
// It blows you up and is overall ridiculous. This was *overdue*.
cooldownOnStart = true;
powerItem = true;
notNearEnd = true;
notForBottom = true;
}
break;
case KITEM_SUPERRING:
notNearEnd = true;
@ -734,9 +753,11 @@ INT32 K_KartGetItemOdds(
newodds = 0;
}
break;
case KITEM_LANDMINE: // au revoir
newodds = 0;
break;
case KITEM_ROCKETSNEAKER:
case KITEM_LANDMINE:
case KRITEM_TRIPLESNEAKER:
powerItem = true;
break;