mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2024-11-25 00:06:18 +00:00
[Hotfix] Fix Eternatus egg tier (#4734)
This commit is contained in:
parent
9a56f080db
commit
dfb42e44a6
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "pokemon-rogue-battle",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "pokemon-rogue-battle",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@material/material-color-utilities": "^0.2.7",
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "pokemon-rogue-battle",
|
||||
"private": true,
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
|
@ -497,7 +497,7 @@ export const speciesEggTiers = {
|
||||
[Species.DREEPY]: EggTier.RARE,
|
||||
[Species.ZACIAN]: EggTier.LEGENDARY,
|
||||
[Species.ZAMAZENTA]: EggTier.LEGENDARY,
|
||||
[Species.ETERNATUS]: EggTier.COMMON,
|
||||
[Species.ETERNATUS]: EggTier.LEGENDARY,
|
||||
[Species.KUBFU]: EggTier.EPIC,
|
||||
[Species.ZARUDE]: EggTier.EPIC,
|
||||
[Species.REGIELEKI]: EggTier.EPIC,
|
||||
|
@ -544,11 +544,15 @@ export class Egg {
|
||||
////
|
||||
}
|
||||
|
||||
export function getLegendaryGachaSpeciesForTimestamp(scene: BattleScene, timestamp: number): Species {
|
||||
const legendarySpecies = Object.entries(speciesEggTiers)
|
||||
export function getValidLegendaryGachaSpecies() : Species[] {
|
||||
return Object.entries(speciesEggTiers)
|
||||
.filter(s => s[1] === EggTier.LEGENDARY)
|
||||
.map(s => parseInt(s[0]))
|
||||
.filter(s => getPokemonSpecies(s).isObtainable());
|
||||
.filter(s => getPokemonSpecies(s).isObtainable() && s !== Species.ETERNATUS);
|
||||
}
|
||||
|
||||
export function getLegendaryGachaSpeciesForTimestamp(scene: BattleScene, timestamp: number): Species {
|
||||
const legendarySpecies = getValidLegendaryGachaSpecies();
|
||||
|
||||
let ret: Species;
|
||||
|
||||
|
@ -1,4 +1,7 @@
|
||||
import { Egg, getLegendaryGachaSpeciesForTimestamp } from "#app/data/egg";
|
||||
import { speciesEggTiers } from "#app/data/balance/species-egg-tiers";
|
||||
import { speciesStarterCosts } from "#app/data/balance/starters";
|
||||
import { Egg, getLegendaryGachaSpeciesForTimestamp, getValidLegendaryGachaSpecies } from "#app/data/egg";
|
||||
import { allSpecies } from "#app/data/pokemon-species";
|
||||
import { EggSourceType } from "#app/enums/egg-source-types";
|
||||
import { EggTier } from "#app/enums/egg-type";
|
||||
import { VariantTier } from "#app/enums/variant-tier";
|
||||
@ -64,6 +67,12 @@ describe("Egg Generation Tests", () => {
|
||||
expect(gachaSpeciesCount).toBeGreaterThan(0.4 * EGG_HATCH_COUNT);
|
||||
expect(gachaSpeciesCount).toBeLessThan(0.6 * EGG_HATCH_COUNT);
|
||||
});
|
||||
it("should never be allowed to generate Eternatus via the legendary gacha", () => {
|
||||
const validLegendaryGachaSpecies = getValidLegendaryGachaSpecies();
|
||||
expect(validLegendaryGachaSpecies.every(s => speciesEggTiers[s] === EggTier.LEGENDARY)).toBe(true);
|
||||
expect(validLegendaryGachaSpecies.every(s => allSpecies[s].isObtainable())).toBe(true);
|
||||
expect(validLegendaryGachaSpecies.includes(Species.ETERNATUS)).toBe(false);
|
||||
});
|
||||
it("should hatch an Arceus. Set from species", () => {
|
||||
const scene = game.scene;
|
||||
const expectedSpecies = Species.ARCEUS;
|
||||
@ -376,4 +385,23 @@ describe("Egg Generation Tests", () => {
|
||||
expect(diffShiny).toBe(true);
|
||||
expect(diffAbility).toBe(true);
|
||||
});
|
||||
|
||||
// For now, we are using this test to detect oversights in egg tiers.
|
||||
// Delete this test if the balance team rebalances species costs independently of egg tiers.
|
||||
it("should have correct egg tiers based on species costs", () => {
|
||||
const getExpectedEggTier = (starterCost) =>
|
||||
starterCost <= 3 ? EggTier.COMMON
|
||||
: starterCost <= 5 ? EggTier.RARE
|
||||
: starterCost <= 7 ? EggTier.EPIC
|
||||
: EggTier.LEGENDARY;
|
||||
|
||||
allSpecies.forEach(pokemonSpecies => {
|
||||
const rootSpecies = pokemonSpecies.getRootSpeciesId();
|
||||
const speciesCost = speciesStarterCosts[rootSpecies];
|
||||
const expectedEggTier = getExpectedEggTier(speciesCost);
|
||||
const actualEggTier = speciesEggTiers[rootSpecies];
|
||||
|
||||
expect(actualEggTier).toBe(expectedEggTier);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user