mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-04 07:22:19 +02:00
more time logs and fix pre-load issues
This commit is contained in:
parent
c9d05daad1
commit
2535f0ab67
@ -13,6 +13,7 @@ import { EggHatchData } from "#app/data/egg-hatch-data.js";
|
|||||||
export class EggLapsePhase extends Phase {
|
export class EggLapsePhase extends Phase {
|
||||||
|
|
||||||
private eggHatchData: EggHatchData[] = [];
|
private eggHatchData: EggHatchData[] = [];
|
||||||
|
private loadsWaiting: number;
|
||||||
constructor(scene: BattleScene) {
|
constructor(scene: BattleScene) {
|
||||||
super(scene);
|
super(scene);
|
||||||
}
|
}
|
||||||
@ -28,6 +29,7 @@ export class EggLapsePhase extends Phase {
|
|||||||
this.eggHatchData= [];
|
this.eggHatchData= [];
|
||||||
|
|
||||||
const minEggsToPromptSkip = 5;
|
const minEggsToPromptSkip = 5;
|
||||||
|
this.loadsWaiting = eggsToHatch.length;
|
||||||
|
|
||||||
if (eggsToHatchCount > 0) {
|
if (eggsToHatchCount > 0) {
|
||||||
|
|
||||||
@ -40,18 +42,13 @@ export class EggLapsePhase extends Phase {
|
|||||||
for (const egg of eggsToHatch) {
|
for (const egg of eggsToHatch) {
|
||||||
this.hatchEggSilently(egg);
|
this.hatchEggSilently(egg);
|
||||||
}
|
}
|
||||||
console.timeEnd("hatch eggs");
|
|
||||||
|
|
||||||
this.scene.unshiftPhase(new EggSummaryPhase(this.scene, this.eggHatchData));
|
|
||||||
this.end();
|
|
||||||
}, () => {
|
}, () => {
|
||||||
for (const egg of eggsToHatch) {
|
for (const egg of eggsToHatch) {
|
||||||
this.scene.unshiftPhase(new EggHatchPhase(this.scene, this, egg, eggsToHatchCount));
|
this.scene.unshiftPhase(new EggHatchPhase(this.scene, this, egg, eggsToHatchCount));
|
||||||
eggsToHatchCount--;
|
eggsToHatchCount--;
|
||||||
}
|
}
|
||||||
|
this.showSummary();
|
||||||
|
|
||||||
this.scene.unshiftPhase(new EggSummaryPhase(this.scene, this.eggHatchData));
|
|
||||||
this.end();
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}, 100, true);
|
}, 100, true);
|
||||||
@ -69,6 +66,11 @@ export class EggLapsePhase extends Phase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showSummary() {
|
||||||
|
this.scene.unshiftPhase(new EggSummaryPhase(this.scene, this.eggHatchData));
|
||||||
|
this.end();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hatches an egg and stores it in the local EggHatchData array without animations
|
* Hatches an egg and stores it in the local EggHatchData array without animations
|
||||||
* Also validates the achievements for the hatched pokemon and removes the egg
|
* Also validates the achievements for the hatched pokemon and removes the egg
|
||||||
@ -77,6 +79,7 @@ export class EggLapsePhase extends Phase {
|
|||||||
*/
|
*/
|
||||||
hatchEggSilently(egg: Egg) {
|
hatchEggSilently(egg: Egg) {
|
||||||
const eggIndex = this.scene.gameData.eggs.findIndex(e => e.id === egg.id);
|
const eggIndex = this.scene.gameData.eggs.findIndex(e => e.id === egg.id);
|
||||||
|
const eggsRemaining = this.scene.gameData.eggs.length;
|
||||||
if (eggIndex === -1) {
|
if (eggIndex === -1) {
|
||||||
return this.end();
|
return this.end();
|
||||||
}
|
}
|
||||||
@ -88,7 +91,16 @@ export class EggLapsePhase extends Phase {
|
|||||||
pokemon.clearFusionSpecies();
|
pokemon.clearFusionSpecies();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.time("loading assets " + pokemon.name + " " + eggsRemaining);
|
||||||
pokemon.loadAssets().then(() => {
|
pokemon.loadAssets().then(() => {
|
||||||
|
this.loadsWaiting--;
|
||||||
|
console.log(this.loadsWaiting);
|
||||||
|
console.timeEnd("loading assets " + pokemon.name + " " + eggsRemaining);
|
||||||
|
|
||||||
|
if (this.loadsWaiting === 0) {
|
||||||
|
console.timeEnd("hatch eggs");
|
||||||
|
this.showSummary();
|
||||||
|
}
|
||||||
|
|
||||||
if (pokemon.species.subLegendary) {
|
if (pokemon.species.subLegendary) {
|
||||||
this.scene.validateAchv(achvs.HATCH_SUB_LEGENDARY);
|
this.scene.validateAchv(achvs.HATCH_SUB_LEGENDARY);
|
||||||
@ -102,7 +114,6 @@ export class EggLapsePhase extends Phase {
|
|||||||
if (pokemon.isShiny()) {
|
if (pokemon.isShiny()) {
|
||||||
this.scene.validateAchv(achvs.HATCH_SHINY);
|
this.scene.validateAchv(achvs.HATCH_SHINY);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -296,7 +296,6 @@ export default class EggSummaryUiHandler extends MessageUiHandler {
|
|||||||
const lastCursor = this.cursor;
|
const lastCursor = this.cursor;
|
||||||
|
|
||||||
changed = super.setCursor(cursor);
|
changed = super.setCursor(cursor);
|
||||||
this.infoContainer.interruptDisplay();
|
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
this.cursorObj.setPosition(114 + 18 * (cursor % 11), 10 + 18 * Math.floor(cursor / 11));
|
this.cursorObj.setPosition(114 + 18 * (cursor % 11), 10 + 18 * Math.floor(cursor / 11));
|
||||||
|
@ -3,7 +3,6 @@ import PokemonInfoContainer from "./pokemon-info-container";
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { Gender } from "../data/gender";
|
import { Gender } from "../data/gender";
|
||||||
import { Type } from "../data/type";
|
import { Type } from "../data/type";
|
||||||
import i18next from "i18next";
|
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TextStyle, addTextObject } from "./text";
|
import { TextStyle, addTextObject } from "./text";
|
||||||
import { speciesEggMoves } from "#app/data/egg-moves.js";
|
import { speciesEggMoves } from "#app/data/egg-moves.js";
|
||||||
@ -33,7 +32,6 @@ export default class PokemonHatchInfoContainer extends PokemonInfoContainer {
|
|||||||
private pokemonCandyIcon: Phaser.GameObjects.Sprite;
|
private pokemonCandyIcon: Phaser.GameObjects.Sprite;
|
||||||
private pokemonCandyOverlayIcon: Phaser.GameObjects.Sprite;
|
private pokemonCandyOverlayIcon: Phaser.GameObjects.Sprite;
|
||||||
private pokemonCandyCountText: Phaser.GameObjects.Text;
|
private pokemonCandyCountText: Phaser.GameObjects.Text;
|
||||||
private assetLoadCancelled: Utils.BooleanHolder | null;
|
|
||||||
|
|
||||||
constructor(scene: BattleScene, listContainer : Phaser.GameObjects.Container, x: number = 115, y: number = 9,) {
|
constructor(scene: BattleScene, listContainer : Phaser.GameObjects.Container, x: number = 115, y: number = 9,) {
|
||||||
super(scene, x, y);
|
super(scene, x, y);
|
||||||
@ -74,7 +72,7 @@ export default class PokemonHatchInfoContainer extends PokemonInfoContainer {
|
|||||||
this.pokemonCandyOverlayIcon.setOrigin(0, 0);
|
this.pokemonCandyOverlayIcon.setOrigin(0, 0);
|
||||||
this.pokemonListContainer.add(this.pokemonCandyOverlayIcon);
|
this.pokemonListContainer.add(this.pokemonCandyOverlayIcon);
|
||||||
|
|
||||||
this.pokemonCandyCountText = addTextObject(this.scene, 14, 40, "x0", TextStyle.WINDOW_ALT, { fontSize: "56px" });
|
this.pokemonCandyCountText = addTextObject(this.scene, 14, 40, "x0", TextStyle.SUMMARY, { fontSize: "56px" });
|
||||||
this.pokemonCandyCountText.setOrigin(0, 0);
|
this.pokemonCandyCountText.setOrigin(0, 0);
|
||||||
this.pokemonListContainer.add(this.pokemonCandyCountText);
|
this.pokemonListContainer.add(this.pokemonCandyCountText);
|
||||||
|
|
||||||
@ -86,11 +84,6 @@ export default class PokemonHatchInfoContainer extends PokemonInfoContainer {
|
|||||||
this.pokemonEggMovesContainer.setVisible(false);
|
this.pokemonEggMovesContainer.setVisible(false);
|
||||||
this.pokemonEggMovesContainer.setScale(0.5);
|
this.pokemonEggMovesContainer.setScale(0.5);
|
||||||
|
|
||||||
const eggMovesLabel = addTextObject(this.scene, 70, 0, i18next.t("starterSelectUiHandler:eggMoves"), TextStyle.WINDOW_ALT);
|
|
||||||
eggMovesLabel.setOrigin(0.5, 0);
|
|
||||||
|
|
||||||
this.pokemonEggMovesContainer.add(eggMovesLabel);
|
|
||||||
|
|
||||||
for (let m = 0; m < 4; m++) {
|
for (let m = 0; m < 4; m++) {
|
||||||
const eggMoveContainer = this.scene.add.container(0, 0 + 6 * m);
|
const eggMoveContainer = this.scene.add.container(0, 0 + 6 * m);
|
||||||
|
|
||||||
@ -123,15 +116,9 @@ export default class PokemonHatchInfoContainer extends PokemonInfoContainer {
|
|||||||
this.currentPokemonSprite.setVisible(false);
|
this.currentPokemonSprite.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
interruptDisplay() {
|
|
||||||
if (this.assetLoadCancelled) {
|
|
||||||
this.assetLoadCancelled.value = true;
|
|
||||||
this.assetLoadCancelled = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a given pokemon sprite with animations
|
* Display a given pokemon sprite with animations
|
||||||
|
* @precondition the specific pokemon sprite has already been loaded
|
||||||
*/
|
*/
|
||||||
displayPokemon(pokemon: PlayerPokemon) {
|
displayPokemon(pokemon: PlayerPokemon) {
|
||||||
console.time("display pokemon" + pokemon.name);
|
console.time("display pokemon" + pokemon.name);
|
||||||
@ -141,27 +128,14 @@ export default class PokemonHatchInfoContainer extends PokemonInfoContainer {
|
|||||||
const formIndex = pokemon.formIndex;
|
const formIndex = pokemon.formIndex;
|
||||||
const shiny = pokemon.shiny;
|
const shiny = pokemon.shiny;
|
||||||
const variant = pokemon.variant;
|
const variant = pokemon.variant;
|
||||||
const assetLoadCancelled = new Utils.BooleanHolder(false);
|
|
||||||
this.assetLoadCancelled = assetLoadCancelled;
|
|
||||||
|
|
||||||
// species.loadAssets(this.scene, female, formIndex, shiny, variant, true).then(() => {
|
|
||||||
if (assetLoadCancelled.value) {
|
|
||||||
console.log("interrupted");
|
|
||||||
console.timeEnd("display pokemon" + pokemon.name);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.assetLoadCancelled = null;
|
|
||||||
// this.speciesLoaded.set(species.speciesId, true);
|
|
||||||
// redundant setVisible(true) but makes sure sprite is only visible after being rendered (no substitute visible)
|
|
||||||
this.currentPokemonSprite.setVisible(true);
|
|
||||||
getPokemonSpeciesForm(species.speciesId, pokemon.formIndex).cry(this.scene);
|
getPokemonSpeciesForm(species.speciesId, pokemon.formIndex).cry(this.scene);
|
||||||
this.currentPokemonSprite.play(species.getSpriteKey(female, formIndex, shiny, variant));
|
this.currentPokemonSprite.play(species.getSpriteKey(female, formIndex, shiny, variant));
|
||||||
this.currentPokemonSprite.setPipelineData("shiny", shiny);
|
this.currentPokemonSprite.setPipelineData("shiny", shiny);
|
||||||
this.currentPokemonSprite.setPipelineData("variant", variant);
|
this.currentPokemonSprite.setPipelineData("variant", variant);
|
||||||
this.currentPokemonSprite.setPipelineData("spriteKey", species.getSpriteKey(female, formIndex, shiny, variant));
|
this.currentPokemonSprite.setPipelineData("spriteKey", species.getSpriteKey(female, formIndex, shiny, variant));
|
||||||
|
this.currentPokemonSprite.setVisible(true);
|
||||||
console.timeEnd("display pokemon" + pokemon.name);
|
console.timeEnd("display pokemon" + pokemon.name);
|
||||||
// this.pokemonSprite.setVisible(!this.statsMode);
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user