Initial commit
This commit is contained in:
commit
2f17903d30
8188 files changed
+7877857
No files matched your search
+102
@@ -0,0 +1,102 @@
|
||||
import { default as BattleScene } from '../battle-scene';
|
||||
import UiHandler from './uiHandler';
|
||||
import BattleMessageUiHandler from './battle-message-ui-handler';
|
||||
import CommandUiHandler from './command-ui-handler';
|
||||
import PartyUiHandler from './party-ui-handler';
|
||||
import FightUiHandler from './fight-ui-handler';
|
||||
import MessageUiHandler from './message-ui-handler';
|
||||
import SwitchCheckUiHandler from './switch-check-ui-handler';
|
||||
import ModifierSelectUiHandler from './modifier-select-ui-handler';
|
||||
|
||||
export enum Mode {
|
||||
MESSAGE = 0,
|
||||
COMMAND,
|
||||
FIGHT,
|
||||
SWITCH_CHECK,
|
||||
MODIFIER_SELECT,
|
||||
PARTY
|
||||
};
|
||||
|
||||
export default class UI extends Phaser.GameObjects.Container {
|
||||
private mode: Mode;
|
||||
private handlers: UiHandler[];
|
||||
|
||||
constructor(scene: BattleScene) {
|
||||
super(scene, 0, scene.game.canvas.height / 6);
|
||||
|
||||
this.mode = Mode.MESSAGE;
|
||||
this.handlers = [
|
||||
new BattleMessageUiHandler(scene),
|
||||
new CommandUiHandler(scene),
|
||||
new FightUiHandler(scene),
|
||||
new SwitchCheckUiHandler(scene),
|
||||
new ModifierSelectUiHandler(scene),
|
||||
new PartyUiHandler(scene)
|
||||
];
|
||||
}
|
||||
|
||||
setup() {
|
||||
for (let handler of this.handlers) {
|
||||
handler.setup();
|
||||
}
|
||||
}
|
||||
|
||||
getHandler() {
|
||||
return this.handlers[this.mode];
|
||||
}
|
||||
|
||||
getMessageHandler() {
|
||||
return this.handlers[Mode.MESSAGE] as BattleMessageUiHandler;
|
||||
}
|
||||
|
||||
processInput(keyCode: integer) {
|
||||
this.getHandler().processInput(keyCode);
|
||||
}
|
||||
|
||||
showText(text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean) {
|
||||
const handler = this.getHandler();
|
||||
if (handler instanceof MessageUiHandler)
|
||||
(handler as MessageUiHandler).showText(text, delay, callback, callbackDelay, prompt);
|
||||
else
|
||||
this.getMessageHandler().showText(text, delay, callback, callbackDelay, prompt);
|
||||
}
|
||||
|
||||
clearText() {
|
||||
const handler = this.getHandler();
|
||||
if (handler instanceof MessageUiHandler)
|
||||
(handler as MessageUiHandler).clearText();
|
||||
else
|
||||
this.getMessageHandler().clearText();
|
||||
}
|
||||
|
||||
setCursor(cursor: integer): boolean {
|
||||
const changed = this.getHandler().setCursor(cursor);
|
||||
if (changed)
|
||||
this.playSelect();
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
playSelect() {
|
||||
this.scene.sound.play('select');
|
||||
}
|
||||
|
||||
playError() {
|
||||
this.scene.sound.play('error');
|
||||
}
|
||||
|
||||
setMode(mode: Mode, ...args: any[]) {
|
||||
if (this.mode === mode)
|
||||
return;
|
||||
this.getHandler().clear();
|
||||
this.mode = mode;
|
||||
this.getHandler().show(args);
|
||||
}
|
||||
|
||||
setModeWithoutClear(mode: Mode, ...args: any[]) {
|
||||
if (this.mode === mode)
|
||||
return;
|
||||
this.mode = mode;
|
||||
this.getHandler().show(args);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user