add names to battle info ui objects and solve key already exists warning for starter select

This commit is contained in:
Matthew Olker 2024-05-24 17:23:49 -04:00
parent d01cd98d06
commit 751a3d1e49
2 changed files with 31 additions and 6 deletions

View File

@ -404,12 +404,14 @@ export abstract class PokemonSpeciesForm {
console.warn = () => {}; console.warn = () => {};
const frameNames = scene.anims.generateFrameNames(spriteKey, { zeroPad: 4, suffix: ".png", start: 1, end: 400 }); const frameNames = scene.anims.generateFrameNames(spriteKey, { zeroPad: 4, suffix: ".png", start: 1, end: 400 });
console.warn = originalWarn; console.warn = originalWarn;
scene.anims.create({ if (!(scene.anims.exists(spriteKey))) {
key: this.getSpriteKey(female, formIndex, shiny, variant), scene.anims.create({
frames: frameNames, key: this.getSpriteKey(female, formIndex, shiny, variant),
frameRate: 12, frames: frameNames,
repeat: -1 frameRate: 12,
}); repeat: -1
});
}
let spritePath = this.getSpriteAtlasPath(female, formIndex, shiny, variant).replace("variant/", "").replace(/_[1-3]$/, ""); let spritePath = this.getSpriteAtlasPath(female, formIndex, shiny, variant).replace("variant/", "").replace(/_[1-3]$/, "");
const useExpSprite = scene.experimentalSprites && scene.hasExpSprite(spriteKey); const useExpSprite = scene.experimentalSprites && scene.hasExpSprite(spriteKey);
if (useExpSprite) { if (useExpSprite) {

View File

@ -79,26 +79,31 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.setVisible(false); this.setVisible(false);
this.box = this.scene.add.sprite(0, 0, this.getTextureName()); this.box = this.scene.add.sprite(0, 0, this.getTextureName());
this.box.setName("box");
this.box.setOrigin(1, 0.5); this.box.setOrigin(1, 0.5);
this.add(this.box); this.add(this.box);
this.nameText = addTextObject(this.scene, player ? -115 : -124, player ? -15.2 : -11.2, "", TextStyle.BATTLE_INFO); this.nameText = addTextObject(this.scene, player ? -115 : -124, player ? -15.2 : -11.2, "", TextStyle.BATTLE_INFO);
this.nameText.setName("text_name");
this.nameText.setOrigin(0, 0); this.nameText.setOrigin(0, 0);
this.add(this.nameText); this.add(this.nameText);
this.genderText = addTextObject(this.scene, 0, 0, "", TextStyle.BATTLE_INFO); this.genderText = addTextObject(this.scene, 0, 0, "", TextStyle.BATTLE_INFO);
this.genderText.setName("text_gender");
this.genderText.setOrigin(0, 0); this.genderText.setOrigin(0, 0);
this.genderText.setPositionRelative(this.nameText, 0, 2); this.genderText.setPositionRelative(this.nameText, 0, 2);
this.add(this.genderText); this.add(this.genderText);
if (!this.player) { if (!this.player) {
this.ownedIcon = this.scene.add.sprite(0, 0, "icon_owned"); this.ownedIcon = this.scene.add.sprite(0, 0, "icon_owned");
this.ownedIcon.setName("icon_owned");
this.ownedIcon.setVisible(false); this.ownedIcon.setVisible(false);
this.ownedIcon.setOrigin(0, 0); this.ownedIcon.setOrigin(0, 0);
this.ownedIcon.setPositionRelative(this.nameText, 0, 11.75); this.ownedIcon.setPositionRelative(this.nameText, 0, 11.75);
this.add(this.ownedIcon); this.add(this.ownedIcon);
this.championRibbon = this.scene.add.sprite(0, 0, "champion_ribbon"); this.championRibbon = this.scene.add.sprite(0, 0, "champion_ribbon");
this.championRibbon.setName("icon_champion_ribbon");
this.championRibbon.setVisible(false); this.championRibbon.setVisible(false);
this.championRibbon.setOrigin(0, 0); this.championRibbon.setOrigin(0, 0);
this.championRibbon.setPositionRelative(this.nameText, 11.75, 11.75); this.championRibbon.setPositionRelative(this.nameText, 11.75, 11.75);
@ -106,6 +111,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
} }
this.teraIcon = this.scene.add.sprite(0, 0, "icon_tera"); this.teraIcon = this.scene.add.sprite(0, 0, "icon_tera");
this.teraIcon.setName("icon_tera");
this.teraIcon.setVisible(false); this.teraIcon.setVisible(false);
this.teraIcon.setOrigin(0, 0); this.teraIcon.setOrigin(0, 0);
this.teraIcon.setScale(0.5); this.teraIcon.setScale(0.5);
@ -114,6 +120,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.add(this.teraIcon); this.add(this.teraIcon);
this.shinyIcon = this.scene.add.sprite(0, 0, "shiny_star"); this.shinyIcon = this.scene.add.sprite(0, 0, "shiny_star");
this.shinyIcon.setName("icon_shiny");
this.shinyIcon.setVisible(false); this.shinyIcon.setVisible(false);
this.shinyIcon.setOrigin(0, 0); this.shinyIcon.setOrigin(0, 0);
this.shinyIcon.setScale(0.5); this.shinyIcon.setScale(0.5);
@ -122,6 +129,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.add(this.shinyIcon); this.add(this.shinyIcon);
this.fusionShinyIcon = this.scene.add.sprite(0, 0, "shiny_star_2"); this.fusionShinyIcon = this.scene.add.sprite(0, 0, "shiny_star_2");
this.fusionShinyIcon.setName("icon_fusion_shiny");
this.fusionShinyIcon.setVisible(false); this.fusionShinyIcon.setVisible(false);
this.fusionShinyIcon.setOrigin(0, 0); this.fusionShinyIcon.setOrigin(0, 0);
this.fusionShinyIcon.setScale(0.5); this.fusionShinyIcon.setScale(0.5);
@ -129,6 +137,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.add(this.fusionShinyIcon); this.add(this.fusionShinyIcon);
this.splicedIcon = this.scene.add.sprite(0, 0, "icon_spliced"); this.splicedIcon = this.scene.add.sprite(0, 0, "icon_spliced");
this.splicedIcon.setName("icon_spliced");
this.splicedIcon.setVisible(false); this.splicedIcon.setVisible(false);
this.splicedIcon.setOrigin(0, 0); this.splicedIcon.setOrigin(0, 0);
this.splicedIcon.setScale(0.5); this.splicedIcon.setScale(0.5);
@ -137,31 +146,37 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.add(this.splicedIcon); this.add(this.splicedIcon);
this.statusIndicator = this.scene.add.sprite(0, 0, "statuses"); this.statusIndicator = this.scene.add.sprite(0, 0, "statuses");
this.statusIndicator.setName("icon_status");
this.statusIndicator.setVisible(false); this.statusIndicator.setVisible(false);
this.statusIndicator.setOrigin(0, 0); this.statusIndicator.setOrigin(0, 0);
this.statusIndicator.setPositionRelative(this.nameText, 0, 11.5); this.statusIndicator.setPositionRelative(this.nameText, 0, 11.5);
this.add(this.statusIndicator); this.add(this.statusIndicator);
this.levelContainer = this.scene.add.container(player ? -41 : -50, player ? -10 : -5); this.levelContainer = this.scene.add.container(player ? -41 : -50, player ? -10 : -5);
this.levelContainer.setName("container_level");
this.add(this.levelContainer); this.add(this.levelContainer);
const levelOverlay = this.scene.add.image(0, 0, "overlay_lv"); const levelOverlay = this.scene.add.image(0, 0, "overlay_lv");
this.levelContainer.add(levelOverlay); this.levelContainer.add(levelOverlay);
this.hpBar = this.scene.add.image(player ? -61 : -71, player ? -1 : 4.5, "overlay_hp"); this.hpBar = this.scene.add.image(player ? -61 : -71, player ? -1 : 4.5, "overlay_hp");
this.hpBar.setName("hp_bar");
this.hpBar.setOrigin(0); this.hpBar.setOrigin(0);
this.add(this.hpBar); this.add(this.hpBar);
this.hpBarSegmentDividers = []; this.hpBarSegmentDividers = [];
this.levelNumbersContainer = this.scene.add.container(9.5, (this.scene as BattleScene).uiTheme ? 0 : -0.5); this.levelNumbersContainer = this.scene.add.container(9.5, (this.scene as BattleScene).uiTheme ? 0 : -0.5);
this.levelNumbersContainer.setName("container_level");
this.levelContainer.add(this.levelNumbersContainer); this.levelContainer.add(this.levelNumbersContainer);
if (this.player) { if (this.player) {
this.hpNumbersContainer = this.scene.add.container(-15, 10); this.hpNumbersContainer = this.scene.add.container(-15, 10);
this.hpNumbersContainer.setName("container_hp");
this.add(this.hpNumbersContainer); this.add(this.hpNumbersContainer);
const expBar = this.scene.add.image(-98, 18, "overlay_exp"); const expBar = this.scene.add.image(-98, 18, "overlay_exp");
expBar.setName("overlay_exp");
expBar.setOrigin(0); expBar.setOrigin(0);
this.add(expBar); this.add(expBar);
@ -180,10 +195,12 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
} }
this.statsContainer = this.scene.add.container(0, 0); this.statsContainer = this.scene.add.container(0, 0);
this.statsContainer.setName("container_stats");
this.statsContainer.setAlpha(0); this.statsContainer.setAlpha(0);
this.add(this.statsContainer); this.add(this.statsContainer);
this.statsBox = this.scene.add.sprite(0, 0, `${this.getTextureName()}_stats`); this.statsBox = this.scene.add.sprite(0, 0, `${this.getTextureName()}_stats`);
this.statsBox.setName("box_stats");
this.statsBox.setOrigin(1, 0.5); this.statsBox.setOrigin(1, 0.5);
this.statsContainer.add(this.statsBox); this.statsContainer.add(this.statsBox);
@ -197,25 +214,30 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
const statX = i > 1 ? this.statNumbers[i - 2].x + this.statNumbers[i - 2].width + 4 : -this.statsBox.width + 8; const statX = i > 1 ? this.statNumbers[i - 2].x + this.statNumbers[i - 2].width + 4 : -this.statsBox.width + 8;
const statY = -this.statsBox.height / 2 + 4 + (i < battleStatOrder.length - 1 ? (i % 2 ? 10 : 0) : 5); const statY = -this.statsBox.height / 2 + 4 + (i < battleStatOrder.length - 1 ? (i % 2 ? 10 : 0) : 5);
const statLabel = this.scene.add.sprite(statX, statY, "pbinfo_stat", BattleStat[s]); const statLabel = this.scene.add.sprite(statX, statY, "pbinfo_stat", BattleStat[s]);
statLabel.setName("icon_stat_label_" + i.toString());
statLabel.setOrigin(0, 0); statLabel.setOrigin(0, 0);
statLabels.push(statLabel); statLabels.push(statLabel);
this.statValuesContainer.add(statLabel); this.statValuesContainer.add(statLabel);
const statNumber = this.scene.add.sprite(statX + statLabel.width, statY, "pbinfo_stat_numbers", "3"); const statNumber = this.scene.add.sprite(statX + statLabel.width, statY, "pbinfo_stat_numbers", "3");
statNumber.setName("icon_stat_number_" + i.toString());
statNumber.setOrigin(0, 0); statNumber.setOrigin(0, 0);
this.statNumbers.push(statNumber); this.statNumbers.push(statNumber);
this.statValuesContainer.add(statNumber); this.statValuesContainer.add(statNumber);
}); });
this.type1Icon = this.scene.add.sprite(player ? -139 : -15, player ? -17 : -15.5, `pbinfo_${player ? "player" : "enemy"}_type1`); this.type1Icon = this.scene.add.sprite(player ? -139 : -15, player ? -17 : -15.5, `pbinfo_${player ? "player" : "enemy"}_type1`);
this.type1Icon.setName("icon_type_1");
this.type1Icon.setOrigin(0, 0); this.type1Icon.setOrigin(0, 0);
this.add(this.type1Icon); this.add(this.type1Icon);
this.type2Icon = this.scene.add.sprite(player ? -139 : -15, player ? -1 : -2.5, `pbinfo_${player ? "player" : "enemy"}_type2`); this.type2Icon = this.scene.add.sprite(player ? -139 : -15, player ? -1 : -2.5, `pbinfo_${player ? "player" : "enemy"}_type2`);
this.type2Icon.setName("icon_type_2");
this.type2Icon.setOrigin(0, 0); this.type2Icon.setOrigin(0, 0);
this.add(this.type2Icon); this.add(this.type2Icon);
this.type3Icon = this.scene.add.sprite(player ? -154 : 0, player ? -17 : -15.5, `pbinfo_${player ? "player" : "enemy"}_type`); this.type3Icon = this.scene.add.sprite(player ? -154 : 0, player ? -17 : -15.5, `pbinfo_${player ? "player" : "enemy"}_type`);
this.type3Icon.setName("icon_type_3");
this.type3Icon.setOrigin(0, 0); this.type3Icon.setOrigin(0, 0);
this.add(this.type3Icon); this.add(this.type3Icon);
} }
@ -414,6 +436,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
const dividerX = (Math.round((maxHp / this.bossSegments) * s) / maxHp) * this.hpBar.width; const dividerX = (Math.round((maxHp / this.bossSegments) * s) / maxHp) * this.hpBar.width;
const divider = this.scene.add.rectangle(0, 0, 1, this.hpBar.height - (uiTheme ? 0 : 1), pokemon.bossSegmentIndex >= s ? 0xFFFFFF : 0x404040); const divider = this.scene.add.rectangle(0, 0, 1, this.hpBar.height - (uiTheme ? 0 : 1), pokemon.bossSegmentIndex >= s ? 0xFFFFFF : 0x404040);
divider.setOrigin(0.5, 0); divider.setOrigin(0.5, 0);
divider.setName("hpBar_divider_" + s.toString());
this.add(divider); this.add(divider);
this.moveBelow(divider as Phaser.GameObjects.GameObject, this.statsContainer); this.moveBelow(divider as Phaser.GameObjects.GameObject, this.statsContainer);