load trainer assets on demand for run history UI

This commit is contained in:
ImperialSympathizer 2024-09-23 17:08:06 -04:00
parent e556db81cb
commit c5d8c6e746

View File

@ -288,25 +288,29 @@ export default class RunInfoUiHandler extends UiHandler {
private parseTrainerDefeat(enemyContainer: Phaser.GameObjects.Container) {
// Creating the trainer sprite and adding it to enemyContainer
const tObj = this.runInfo.trainer.toTrainer(this.scene);
const tObjSpriteKey = tObj.config.getSpriteKey(this.runInfo.trainer.variant === TrainerVariant.FEMALE, false);
const tObjSprite = this.scene.add.sprite(0, 5, tObjSpriteKey);
if (this.runInfo.trainer.variant === TrainerVariant.DOUBLE) {
const doubleContainer = this.scene.add.container(5, 8);
tObjSprite.setPosition(-3, -3);
const tObjPartnerSpriteKey = tObj.config.getSpriteKey(true, true);
const tObjPartnerSprite = this.scene.add.sprite(5, -3, tObjPartnerSpriteKey);
// Double Trainers have smaller sprites than Single Trainers
tObjPartnerSprite.setScale(0.20);
tObjSprite.setScale(0.20);
doubleContainer.add(tObjSprite);
doubleContainer.add(tObjPartnerSprite);
doubleContainer.setPosition(12, 38);
enemyContainer.add(doubleContainer);
} else {
tObjSprite.setScale(0.35, 0.35);
tObjSprite.setPosition(12, 28);
enemyContainer.add(tObjSprite);
}
// Loads trainer assets on demand, as they are not loaded by default in the scene
tObj.config.loadAssets(this.scene, this.runInfo.trainer.variant).then(() => {
const tObjSpriteKey = tObj.config.getSpriteKey(this.runInfo.trainer.variant === TrainerVariant.FEMALE, false);
const tObjSprite = this.scene.add.sprite(0, 5, tObjSpriteKey);
if (this.runInfo.trainer.variant === TrainerVariant.DOUBLE) {
const doubleContainer = this.scene.add.container(5, 8);
tObjSprite.setPosition(-3, -3);
const tObjPartnerSpriteKey = tObj.config.getSpriteKey(true, true);
const tObjPartnerSprite = this.scene.add.sprite(5, -3, tObjPartnerSpriteKey);
// Double Trainers have smaller sprites than Single Trainers
tObjPartnerSprite.setScale(0.20);
tObjSprite.setScale(0.20);
doubleContainer.add(tObjSprite);
doubleContainer.add(tObjPartnerSprite);
doubleContainer.setPosition(12, 38);
enemyContainer.add(doubleContainer);
} else {
tObjSprite.setScale(0.35, 0.35);
tObjSprite.setPosition(12, 28);
enemyContainer.add(tObjSprite);
}
});
// Determining which Terastallize Modifier belongs to which Pokemon
// Creates a dictionary {PokemonId: TeraShardType}