Improve tera selection UI

This commit is contained in:
Xavion3 2025-02-08 00:53:42 +11:00
parent 7623e72db1
commit ffaab7b643

View File

@ -9,6 +9,7 @@ import { CommandPhase } from "#app/phases/command-phase";
import { globalScene } from "#app/global-scene"; import { globalScene } from "#app/global-scene";
import { TerastallizeAccessModifier } from "#app/modifier/modifier"; import { TerastallizeAccessModifier } from "#app/modifier/modifier";
import { Type } from "#app/enums/type"; import { Type } from "#app/enums/type";
import { getTypeRgb } from "#app/data/type";
export enum Command { export enum Command {
FIGHT = 0, FIGHT = 0,
@ -45,10 +46,11 @@ export default class CommandUiHandler extends UiHandler {
this.commandsContainer.setVisible(false); this.commandsContainer.setVisible(false);
ui.add(this.commandsContainer); ui.add(this.commandsContainer);
this.teraButton = globalScene.add.sprite(-35, 15, "button_tera"); this.teraButton = globalScene.add.sprite(-32, 15, "button_tera");
this.teraButton.setName("terrastallize-button"); this.teraButton.setName("terrastallize-button");
this.teraButton.setScale(1.5); this.teraButton.setScale(1.3);
this.teraButton.setFrame("fire"); this.teraButton.setFrame("fire");
this.teraButton.setPipeline(globalScene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true, teraColor: getTypeRgb(Type.FIRE), isTerastallized: false });
this.commandsContainer.add(this.teraButton); this.commandsContainer.add(this.teraButton);
for (let c = 0; c < commands.length; c++) { for (let c = 0; c < commands.length; c++) {
@ -87,7 +89,7 @@ export default class CommandUiHandler extends UiHandler {
messageHandler.bg.setVisible(true); messageHandler.bg.setVisible(true);
messageHandler.commandWindow.setVisible(true); messageHandler.commandWindow.setVisible(true);
messageHandler.movesWindowContainer.setVisible(false); messageHandler.movesWindowContainer.setVisible(false);
messageHandler.message.setWordWrapWidth(1110); messageHandler.message.setWordWrapWidth(this.canTera() ? 910 : 1110);
messageHandler.showText(i18next.t("commandUiHandler:actionMessage", { pokemonName: getPokemonNameWithAffix(commandPhase.getPokemon()) }), 0); messageHandler.showText(i18next.t("commandUiHandler:actionMessage", { pokemonName: getPokemonNameWithAffix(commandPhase.getPokemon()) }), 0);
if (this.getCursor() === Command.POKEMON) { if (this.getCursor() === Command.POKEMON) {
this.setCursor(Command.FIGHT); this.setCursor(Command.FIGHT);
@ -154,6 +156,7 @@ export default class CommandUiHandler extends UiHandler {
success = this.setCursor(cursor - 1); success = this.setCursor(cursor - 1);
} else if ((cursor === Command.FIGHT || cursor === Command.POKEMON) && this.canTera()) { } else if ((cursor === Command.FIGHT || cursor === Command.POKEMON) && this.canTera()) {
success = this.setCursor(Command.TERA); success = this.setCursor(Command.TERA);
this.toggleTeraButton();
} }
break; break;
case Button.RIGHT: case Button.RIGHT:
@ -161,6 +164,7 @@ export default class CommandUiHandler extends UiHandler {
success = this.setCursor(cursor + 1); success = this.setCursor(cursor + 1);
} else if (cursor === Command.TERA) { } else if (cursor === Command.TERA) {
success = this.setCursor(Command.FIGHT); success = this.setCursor(Command.FIGHT);
this.toggleTeraButton();
} }
break; break;
} }
@ -180,6 +184,10 @@ export default class CommandUiHandler extends UiHandler {
return hasTeraMod && (currentTeras + plannedTera) < 1; return hasTeraMod && (currentTeras + plannedTera) < 1;
} }
toggleTeraButton() {
this.teraButton.setPipeline(globalScene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true, teraColor: getTypeRgb(globalScene.getField()[this.fieldIndex].getTeraType()), isTerastallized: this.getCursor() === Command.TERA });
}
getCursor(): number { getCursor(): number {
return !this.fieldIndex ? this.cursor : this.cursor2; return !this.fieldIndex ? this.cursor : this.cursor2;
} }