feat: web flow
parent
a2a735f97f
commit
a45a461a85
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,23 @@
|
||||||
import { _decorator } from 'cc';
|
import { _decorator } from 'cc';
|
||||||
import * as CryptoES from 'crypto-es';
|
import * as CryptoES from 'crypto-es';
|
||||||
import { GameManager } from '../Manager/GameManager';
|
import { GameManager } from '../Manager/GameManager';
|
||||||
|
import Utilities from '../Utilities';
|
||||||
export let CryptoESDefault = CryptoES.default;
|
export let CryptoESDefault = CryptoES.default;
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
window.addEventListener('message', (data) => {
|
||||||
|
const { data: res } = data;
|
||||||
|
const objectRes = Utilities.getJson(res);
|
||||||
|
if (objectRes) {
|
||||||
|
const { type, value } = objectRes;
|
||||||
|
if (type === 'newTicket') {
|
||||||
|
BEConnector.instance.numberTicket += value;
|
||||||
|
GameManager.instance.gameRelive();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
@ccclass('BEConnector')
|
@ccclass('BEConnector')
|
||||||
export default class BEConnector {
|
export default class BEConnector {
|
||||||
public static _instance: BEConnector = null;
|
public static _instance: BEConnector = null;
|
||||||
|
@ -18,6 +31,7 @@ export default class BEConnector {
|
||||||
// Ticket infors
|
// Ticket infors
|
||||||
public numberTicket: number;
|
public numberTicket: number;
|
||||||
public maxScore: number;
|
public maxScore: number;
|
||||||
|
public currentScore: number;
|
||||||
private mileStone: string;
|
private mileStone: string;
|
||||||
|
|
||||||
private gameURL: string = '';
|
private gameURL: string = '';
|
||||||
|
@ -43,6 +57,7 @@ export default class BEConnector {
|
||||||
|
|
||||||
this.numberTicket = parseInt(url.get('numberTicket'));
|
this.numberTicket = parseInt(url.get('numberTicket'));
|
||||||
this.maxScore = parseInt(url.get('maxScore'));
|
this.maxScore = parseInt(url.get('maxScore'));
|
||||||
|
this.currentScore = parseInt(url.get('currentScore')) || 0;
|
||||||
this.mileStone = url.get('mileStone');
|
this.mileStone = url.get('mileStone');
|
||||||
this.gameURL = ENV_CONFIG[url.get('env')];
|
this.gameURL = ENV_CONFIG[url.get('env')];
|
||||||
}
|
}
|
||||||
|
@ -115,19 +130,15 @@ export default class BEConnector {
|
||||||
|
|
||||||
public postMessage() {
|
public postMessage() {
|
||||||
let totalScore: number = GameManager.instance.score;
|
let totalScore: number = GameManager.instance.score;
|
||||||
// window.parent.postMessage(
|
window.parent.postMessage(
|
||||||
// JSON.stringify({
|
JSON.stringify({
|
||||||
// error: false,
|
error: false,
|
||||||
// message: "Hello World",
|
message: 'Hello World',
|
||||||
// score: totalScore,
|
score: totalScore,
|
||||||
// type: "paypal_modal",
|
type: 'paypal_modal',
|
||||||
// }),
|
}),
|
||||||
// "*"
|
'*',
|
||||||
// );
|
);
|
||||||
setTimeout(() => {
|
|
||||||
BEConnector.instance.numberTicket += 5;
|
|
||||||
GameManager.instance.onRevive();
|
|
||||||
}, 2000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public postScoreToServer(score: number) {
|
public postScoreToServer(score: number) {
|
||||||
|
@ -155,7 +166,7 @@ export default class BEConnector {
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
error: false,
|
error: false,
|
||||||
message: 'Hello World',
|
message: 'Hello World',
|
||||||
score: score,
|
score: score + this.currentScore,
|
||||||
type: 'game_tournament',
|
type: 'game_tournament',
|
||||||
}),
|
}),
|
||||||
'*',
|
'*',
|
||||||
|
|
|
@ -2,6 +2,8 @@ enum GameState {
|
||||||
Init,
|
Init,
|
||||||
Playing,
|
Playing,
|
||||||
GameOver,
|
GameOver,
|
||||||
|
End,
|
||||||
|
Relive,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default GameState;
|
export default GameState;
|
||||||
|
|
|
@ -22,8 +22,21 @@ import ScoreType from '../Enum/ScoreType';
|
||||||
import { FloatingText } from '../Environments/FloatingText';
|
import { FloatingText } from '../Environments/FloatingText';
|
||||||
import { SoundManager } from './SoundManager';
|
import { SoundManager } from './SoundManager';
|
||||||
import TimeConfig from '../Enum/TimeConfig';
|
import TimeConfig from '../Enum/TimeConfig';
|
||||||
|
import BEConnector from '../API/BEConnector';
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
window.addEventListener('message', (data) => {
|
||||||
|
const { data: res } = data;
|
||||||
|
const objectRes = Utilities.getJson(res);
|
||||||
|
if (objectRes) {
|
||||||
|
const { type, value } = objectRes;
|
||||||
|
if (type === 'newTicket') {
|
||||||
|
BEConnector.instance.numberTicket += value;
|
||||||
|
GameManager.instance.gameRelive();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
@ccclass('GameManager')
|
@ccclass('GameManager')
|
||||||
export class GameManager extends Component {
|
export class GameManager extends Component {
|
||||||
//singleton
|
//singleton
|
||||||
|
@ -55,6 +68,7 @@ export class GameManager extends Component {
|
||||||
private _timer: number;
|
private _timer: number;
|
||||||
|
|
||||||
private _score = 0;
|
private _score = 0;
|
||||||
|
private isReplayed = false;
|
||||||
private _isMultiBall = false;
|
private _isMultiBall = false;
|
||||||
private _currentBallInGame = 0;
|
private _currentBallInGame = 0;
|
||||||
|
|
||||||
|
@ -84,9 +98,29 @@ export class GameManager extends Component {
|
||||||
EventManger.instance.emit(GameEvent.TimeUpdate, this._timer);
|
EventManger.instance.emit(GameEvent.TimeUpdate, this._timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
private changeGameState(state: GameState) {
|
private async changeGameState(state: GameState) {
|
||||||
this._gameState = state;
|
this._gameState = state;
|
||||||
EventManger.instance.emit(GameEvent.GameStateChange, this._gameState);
|
EventManger.instance.emit(GameEvent.GameStateChange, this._gameState);
|
||||||
|
|
||||||
|
switch (state) {
|
||||||
|
case GameState.Init:
|
||||||
|
BEConnector.instance.authenticate();
|
||||||
|
break;
|
||||||
|
case GameState.Playing:
|
||||||
|
BEConnector.instance.ticketMinus('auth');
|
||||||
|
break;
|
||||||
|
case GameState.GameOver:
|
||||||
|
break;
|
||||||
|
case GameState.End:
|
||||||
|
await Utilities.delay(3);
|
||||||
|
BEConnector.instance.postScoreToServer(this._score);
|
||||||
|
break;
|
||||||
|
case GameState.Relive:
|
||||||
|
BEConnector.instance.ticketMinus('revive');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new Error(`Argument Out Of Range Exception: ${GameState[state]}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private addScore(score: number, type: ScoreType, position: Vec3) {
|
private addScore(score: number, type: ScoreType, position: Vec3) {
|
||||||
|
@ -164,7 +198,13 @@ export class GameManager extends Component {
|
||||||
this._timer += time;
|
this._timer += time;
|
||||||
}
|
}
|
||||||
|
|
||||||
private gameOver() {
|
public gameOver() {
|
||||||
|
if (this.isReplayed) {
|
||||||
|
this.changeGameState(GameState.End);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.isReplayed = true;
|
||||||
this._ballPool.releaseAll();
|
this._ballPool.releaseAll();
|
||||||
this.changeGameState(GameState.GameOver);
|
this.changeGameState(GameState.GameOver);
|
||||||
}
|
}
|
||||||
|
@ -180,7 +220,14 @@ export class GameManager extends Component {
|
||||||
this.spawnBall(true);
|
this.spawnBall(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public onRevive() {
|
public async gameRelive() {
|
||||||
throw new Error('Method not implemented.');
|
this.changeGameState(GameState.Relive);
|
||||||
|
this._timer = 60 + TimeConfig.DelayPLay;
|
||||||
|
this._currentBallInGame = 0;
|
||||||
|
this._isMultiBall = false;
|
||||||
|
SoundManager.instance.playBGM(this._backgroundMusic, 0.5);
|
||||||
|
this.changeGameState(GameState.Playing);
|
||||||
|
await Utilities.delay(TimeConfig.DelayPLay);
|
||||||
|
this.spawnBall(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,9 +101,6 @@ export class SpawnObjectManager extends Component {
|
||||||
private onGameStateChange(state: GameState) {
|
private onGameStateChange(state: GameState) {
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case GameState.Init:
|
case GameState.Init:
|
||||||
break;
|
|
||||||
case GameState.Playing:
|
|
||||||
this._playing = true;
|
|
||||||
this._weights = this._objects.map((obj) => {
|
this._weights = this._objects.map((obj) => {
|
||||||
obj.currentWeight = obj.weight;
|
obj.currentWeight = obj.weight;
|
||||||
return obj.currentWeight;
|
return obj.currentWeight;
|
||||||
|
@ -112,10 +109,11 @@ export class SpawnObjectManager extends Component {
|
||||||
this.spawn();
|
this.spawn();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case GameState.Playing:
|
||||||
|
this._playing = true;
|
||||||
|
break;
|
||||||
case GameState.GameOver:
|
case GameState.GameOver:
|
||||||
this._playing = false;
|
this._playing = false;
|
||||||
this._objects.forEach((object) => (object.currentWeight = object.weight));
|
|
||||||
this._pools.forEach((pool) => pool.releaseAll());
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
import { _decorator, Component, Label, Node } from 'cc';
|
||||||
|
import BEConnector from '../API/BEConnector';
|
||||||
|
import { GameManager } from '../Manager/GameManager';
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass('ConfirmPanel')
|
||||||
|
export class ConfirmPanel extends Component {
|
||||||
|
@property(Label) ticketWaringText: Label = null;
|
||||||
|
|
||||||
|
protected onEnable(): void {
|
||||||
|
this.ticketWaringText.string = `To continue playing, you will be deducted ${BEConnector.instance.getTicketCanBeMinus()} ticket`;
|
||||||
|
}
|
||||||
|
|
||||||
|
onClickYesButton() {
|
||||||
|
if (BEConnector.instance.canRelive()) {
|
||||||
|
BEConnector.instance
|
||||||
|
.checkGameScoreTicket()
|
||||||
|
.then(() => {
|
||||||
|
GameManager.instance.gameRelive();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
GameManager.instance.gameOver();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
BEConnector.instance.postMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onClickNoButton() {
|
||||||
|
this.node.active = false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
"ver": "4.0.23",
|
"ver": "4.0.23",
|
||||||
"importer": "typescript",
|
"importer": "typescript",
|
||||||
"imported": true,
|
"imported": true,
|
||||||
"uuid": "99bfd134-ace2-424f-b5da-79474dd94bd9",
|
"uuid": "a0ece421-9b71-46f8-a587-35d6a5991259",
|
||||||
"files": [],
|
"files": [],
|
||||||
"subMetas": {},
|
"subMetas": {},
|
||||||
"userData": {}
|
"userData": {}
|
|
@ -1,137 +0,0 @@
|
||||||
import { _decorator, Button, CCInteger, Component, EventTarget, Label, Node, EventTouch } from 'cc';
|
|
||||||
import BEConnector from '../API/BEConnector';
|
|
||||||
import { GameManager } from '../Manager/GameManager';
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
export enum PanelState {
|
|
||||||
NotShowing,
|
|
||||||
CompareScore,
|
|
||||||
Continue,
|
|
||||||
ShowResult,
|
|
||||||
}
|
|
||||||
@ccclass('EndGameUIController')
|
|
||||||
export class EndGameUIController extends Component {
|
|
||||||
@property(CCInteger)
|
|
||||||
private countdownTime: number = 15;
|
|
||||||
private currentCD: number = 15;
|
|
||||||
|
|
||||||
private isContinuable: boolean = true;
|
|
||||||
private isEndGameByTime: boolean = false;
|
|
||||||
private currentState: PanelState = PanelState.NotShowing;
|
|
||||||
|
|
||||||
// Texts
|
|
||||||
@property(Label)
|
|
||||||
private yourScoreTxt: Label = null;
|
|
||||||
@property(Label)
|
|
||||||
private topScoreTxt: Label = null;
|
|
||||||
@property(Label)
|
|
||||||
private continueTxt: Label = null;
|
|
||||||
@property(Label)
|
|
||||||
private countdownToReplayTxt: Label = null;
|
|
||||||
|
|
||||||
// Buttons
|
|
||||||
@property(Button)
|
|
||||||
private yesBtn: Label = null;
|
|
||||||
@property(Button)
|
|
||||||
private noBtn: Label = null;
|
|
||||||
|
|
||||||
// Panel
|
|
||||||
@property(Node)
|
|
||||||
private compareScorePnl: Node = null;
|
|
||||||
@property(Node)
|
|
||||||
private continuePnl: Node = null;
|
|
||||||
@property(Node)
|
|
||||||
private finalResultPnl: Node = null;
|
|
||||||
|
|
||||||
private eventRevive = new EventTarget();
|
|
||||||
|
|
||||||
//#region Cocos methods
|
|
||||||
protected onEnable(): void {
|
|
||||||
this.Setup();
|
|
||||||
this.currentCD = this.countdownTime;
|
|
||||||
}
|
|
||||||
protected update(dt: number): void {
|
|
||||||
if (this.isEndGameByTime == true) return;
|
|
||||||
|
|
||||||
this.currentCD -= dt;
|
|
||||||
this.countdownToReplayTxt.string = Math.round(this.currentCD).toString();
|
|
||||||
|
|
||||||
if (this.currentCD <= 0 && !this.isEndGameByTime) {
|
|
||||||
this.currentCD = 0;
|
|
||||||
this.ChangeState(PanelState.ShowResult);
|
|
||||||
this.isEndGameByTime = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//#endregion
|
|
||||||
|
|
||||||
private Setup(): void {
|
|
||||||
if (this.isContinuable) this.ChangeState(PanelState.CompareScore);
|
|
||||||
else this.ChangeState(PanelState.ShowResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ChangeState(newState: PanelState): void {
|
|
||||||
if (this.currentState == newState) return;
|
|
||||||
|
|
||||||
this.currentState = newState;
|
|
||||||
switch (this.currentState) {
|
|
||||||
case PanelState.CompareScore:
|
|
||||||
this.TurnOffAllPanels(this.compareScorePnl);
|
|
||||||
var totalScore = GameManager.instance.score;
|
|
||||||
this.yourScoreTxt.string = 'Your score: ' + totalScore;
|
|
||||||
|
|
||||||
/// Todo: set top score here
|
|
||||||
break;
|
|
||||||
case PanelState.Continue:
|
|
||||||
this.TurnOffAllPanels(this.continuePnl);
|
|
||||||
var ticket = BEConnector.instance.numberTicket;
|
|
||||||
|
|
||||||
if (ticket >= BEConnector.instance.getTicketCanBeMinus()) {
|
|
||||||
this.continueTxt.string =
|
|
||||||
'To continue playing, you will be deducted ' + ticket + ' Extras. Do you want to proceed?';
|
|
||||||
} else {
|
|
||||||
this.continueTxt.string =
|
|
||||||
"You don't have enough Extras to continue playing. Would you like to buy more tickets?";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PanelState.ShowResult:
|
|
||||||
this.yesBtn.node.active = false;
|
|
||||||
this.noBtn.node.active = false;
|
|
||||||
this.countdownToReplayTxt.node.active = false;
|
|
||||||
|
|
||||||
this.TurnOffAllPanels(this.finalResultPnl);
|
|
||||||
BEConnector.instance.postScoreToServer(GameManager.instance.score);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private TurnOffAllPanels(activePnl: Node): void {
|
|
||||||
this.compareScorePnl.active = false;
|
|
||||||
this.continuePnl.active = false;
|
|
||||||
this.finalResultPnl.active = false;
|
|
||||||
if (activePnl != null) activePnl.active = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public YesNoClick(e: EventTouch, yesNoString: string): void {
|
|
||||||
var isYesClick = true;
|
|
||||||
if (yesNoString == 'true') isYesClick = true;
|
|
||||||
else isYesClick = false;
|
|
||||||
|
|
||||||
switch (this.currentState) {
|
|
||||||
case PanelState.CompareScore:
|
|
||||||
if (isYesClick) this.ChangeState(PanelState.Continue);
|
|
||||||
else this.ChangeState(PanelState.ShowResult);
|
|
||||||
break;
|
|
||||||
case PanelState.Continue:
|
|
||||||
if (isYesClick) {
|
|
||||||
var ticket = BEConnector.instance.getTicketCanBeMinus();
|
|
||||||
if (BEConnector.instance.numberTicket >= ticket) {
|
|
||||||
GameManager.instance.onRevive();
|
|
||||||
BEConnector.instance.ticketMinus('revive');
|
|
||||||
this.isContinuable = false;
|
|
||||||
} else BEConnector.instance.postMessage();
|
|
||||||
} else {
|
|
||||||
this.ChangeState(PanelState.CompareScore);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
import { _decorator, Component, Label, Node } from 'cc';
|
||||||
|
import BEConnector from '../API/BEConnector';
|
||||||
|
import { GameManager } from '../Manager/GameManager';
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass('GameOverPanel')
|
||||||
|
export class GameOverPanel extends Component {
|
||||||
|
@property(Label) private topScore: Label = null;
|
||||||
|
@property(Label) private yourScore: Label = null;
|
||||||
|
@property(Node) private confirmPanel: Node = null;
|
||||||
|
|
||||||
|
protected onEnable(): void {
|
||||||
|
let currentScore = BEConnector.instance.currentScore + GameManager.instance.score;
|
||||||
|
this.topScore.string = BEConnector.instance.maxScore.toString();
|
||||||
|
this.yourScore.string = currentScore.toString();
|
||||||
|
this.scheduleOnce(this.endGame, 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
onClickYesButton() {
|
||||||
|
this.confirmPanel.active = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
onClickNoButton() {
|
||||||
|
GameManager.instance.gameOver();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected onDisable(): void {
|
||||||
|
this.unschedule(this.endGame);
|
||||||
|
}
|
||||||
|
|
||||||
|
private endGame() {
|
||||||
|
GameManager.instance.gameOver();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"ver": "4.0.23",
|
||||||
|
"importer": "typescript",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "c5e2d9b4-a975-4eb8-a3f5-8eeeeec8cb49",
|
||||||
|
"files": [],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {}
|
||||||
|
}
|
|
@ -3,6 +3,8 @@ import { EventManger } from '../Manager/EventManger';
|
||||||
import GameEvent from '../Events/GameEvent';
|
import GameEvent from '../Events/GameEvent';
|
||||||
import ScoreType from '../Enum/ScoreType';
|
import ScoreType from '../Enum/ScoreType';
|
||||||
import GameState from '../Enum/GameState';
|
import GameState from '../Enum/GameState';
|
||||||
|
import { GameManager } from '../Manager/GameManager';
|
||||||
|
import BEConnector from '../API/BEConnector';
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
@ccclass('UIController')
|
@ccclass('UIController')
|
||||||
|
@ -13,6 +15,8 @@ export class UIController extends Component {
|
||||||
private _eventLabel: Label;
|
private _eventLabel: Label;
|
||||||
@property({ type: Label, visible: true })
|
@property({ type: Label, visible: true })
|
||||||
private _resultLabel: Label;
|
private _resultLabel: Label;
|
||||||
|
@property({ type: Label, visible: true })
|
||||||
|
private _resultTotalLabel: Label;
|
||||||
@property({ type: ParticleSystem, visible: true })
|
@property({ type: ParticleSystem, visible: true })
|
||||||
private _buffFx: ParticleSystem;
|
private _buffFx: ParticleSystem;
|
||||||
@property({ type: Node, visible: true })
|
@property({ type: Node, visible: true })
|
||||||
|
@ -21,10 +25,8 @@ export class UIController extends Component {
|
||||||
private _overPanel: Node;
|
private _overPanel: Node;
|
||||||
@property({ type: Label, visible: true })
|
@property({ type: Label, visible: true })
|
||||||
private _timeLabe: Label;
|
private _timeLabe: Label;
|
||||||
@property({ type: Label, visible: true })
|
@property({ type: Node, visible: true })
|
||||||
private _timeResult: Label;
|
private _resultPanel: Node = null;
|
||||||
private _timer = 0;
|
|
||||||
private _playing = false;
|
|
||||||
|
|
||||||
protected async onLoad() {
|
protected async onLoad() {
|
||||||
EventManger.instance.on(GameEvent.Score, this.onScore, this);
|
EventManger.instance.on(GameEvent.Score, this.onScore, this);
|
||||||
|
@ -35,10 +37,6 @@ export class UIController extends Component {
|
||||||
this._eventLabel.string = '';
|
this._eventLabel.string = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
protected update(dt: number): void {
|
|
||||||
if (this._playing) this._timer += dt;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async onScore(score: number, type: ScoreType) {
|
private async onScore(score: number, type: ScoreType) {
|
||||||
this._scoreLabel.string = `Score: ${score}`;
|
this._scoreLabel.string = `Score: ${score}`;
|
||||||
if (type == ScoreType.Goal) {
|
if (type == ScoreType.Goal) {
|
||||||
|
@ -76,18 +74,25 @@ export class UIController extends Component {
|
||||||
this._startPanel.active = true;
|
this._startPanel.active = true;
|
||||||
break;
|
break;
|
||||||
case GameState.Playing:
|
case GameState.Playing:
|
||||||
this._timer = 0;
|
|
||||||
this._playing = true;
|
|
||||||
this._scoreLabel.string = 'Score: 0';
|
this._scoreLabel.string = 'Score: 0';
|
||||||
this._startPanel.active = false;
|
this._startPanel.active = false;
|
||||||
this._overPanel.active = false;
|
this._overPanel.active = false;
|
||||||
break;
|
break;
|
||||||
case GameState.GameOver:
|
case GameState.GameOver:
|
||||||
this._buffFx.stop();
|
this._buffFx.stop();
|
||||||
this._playing = false;
|
|
||||||
this._overPanel.active = true;
|
this._overPanel.active = true;
|
||||||
this._resultLabel.string = this._scoreLabel.string;
|
this._resultLabel.string = this._scoreLabel.string;
|
||||||
this._timeResult.string = this.secondsToTime(this._timer);
|
break;
|
||||||
|
case GameState.End:
|
||||||
|
this._overPanel.active = false;
|
||||||
|
this._resultPanel.active = true;
|
||||||
|
this._resultLabel.string = GameManager.instance.score.toString();
|
||||||
|
this._resultTotalLabel.string = (
|
||||||
|
GameManager.instance.score + BEConnector.instance.currentScore
|
||||||
|
).toString();
|
||||||
|
break;
|
||||||
|
case GameState.Relive:
|
||||||
|
this._overPanel.active = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue