[common] game state refactored
This commit is contained in:
@@ -51,7 +51,7 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
render.draw(game.engine);
|
||||
timer = new Timer(10);
|
||||
timer.run = updateEngine;
|
||||
state.text = stateString(s);
|
||||
state.text = stateString(game);
|
||||
}
|
||||
|
||||
private function stop():Void {
|
||||
@@ -68,20 +68,18 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
render.reset();
|
||||
}
|
||||
|
||||
private function stateString(state:GameState):String {
|
||||
private function stateString(game:Game):String {
|
||||
var result:Array<String> = [];
|
||||
result.push('Level: ${state.level}');
|
||||
for (teamId in state.teams.keys()) {
|
||||
var ts:TeamState = state.teams[teamId];
|
||||
if (ts.lose) {
|
||||
result.push('${teamId}: LOSE');
|
||||
} else if (ts.life > -1) {
|
||||
result.push('${teamId}: ${ts.life}');
|
||||
result.push('Level: ${game.state.level}');
|
||||
for (team in game.teams) {
|
||||
if (game.state.loser == team.id) {
|
||||
result.push('${team.id}: LOSE');
|
||||
} else if (team.life > -1) {
|
||||
result.push('${team.id}: ${team.life}');
|
||||
} else {
|
||||
for (index in ts.players.keys()) {
|
||||
var ps:PlayerState = ts.players[index];
|
||||
if (ps.life > -1) {
|
||||
result.push('${teamId}${index}: ${ps.life}');
|
||||
for (player in team.players) {
|
||||
if (player.life > -1) {
|
||||
result.push('${player.id.team}${player.id.index}: ${player.life}');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -90,14 +88,14 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
}
|
||||
|
||||
private function onGameStateChange(s:GameState):GameState {
|
||||
state.text = stateString(s);
|
||||
state.text = stateString(game);
|
||||
return s;
|
||||
}
|
||||
|
||||
private function onGameComplete(result:Option<GameState>):Void {
|
||||
switch (result) {
|
||||
case Option.Some(s):
|
||||
state.text = stateString(s);
|
||||
state.text = stateString(game);
|
||||
case Option.None:
|
||||
}
|
||||
switch (game.next()) {
|
||||
|
||||
@@ -47,14 +47,8 @@ class StartFrame extends VGroupView implements ViewBuilder implements StartFrame
|
||||
}
|
||||
}
|
||||
|
||||
private function startGame(type:GameType, mode:GameMode):Void {
|
||||
switch (type) {
|
||||
case ClassicGame.TYPE:
|
||||
Provider.set(GameState, ClassicGame.buildState(0, mode));
|
||||
Provider.get(IFrameSwitcher).change(LevelFrame.ID);
|
||||
case DotaGame.TYPE:
|
||||
Provider.set(GameState, DotaGame.buildState(0, mode));
|
||||
Provider.get(IFrameSwitcher).change(LevelFrame.ID);
|
||||
}
|
||||
private function startGame(type:GameType, presetId:PresetId):Void {
|
||||
Provider.set(GameState, new GameState(type, presetId));
|
||||
Provider.get(IFrameSwitcher).change(LevelFrame.ID);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user