[common] game next function
This commit is contained in:
@@ -63,10 +63,10 @@ class Client implements IConnectionHandler {
|
||||
#end
|
||||
|
||||
//Provider.get(IConnection).handler.addListener(this);
|
||||
|
||||
view = new MainView();
|
||||
Provider.set(IFrameSwitcher, view.switcher);
|
||||
Root.bind(view);
|
||||
view.content.stage.stageFocusRect = false;
|
||||
//view.logout.onPress = this;
|
||||
view.switcher.change(StartFrame.ID);
|
||||
|
||||
|
||||
@@ -33,11 +33,13 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
private var game:Game;
|
||||
private var timer:Timer;
|
||||
|
||||
public function init():Void {
|
||||
}
|
||||
public function init():Void {}
|
||||
|
||||
public function onShow():Void {
|
||||
var s:GameState = Provider.get(GameState);
|
||||
start(Provider.get(GameState));
|
||||
}
|
||||
|
||||
private function start(s:GameState):Void {
|
||||
game = Provider.build(Game, s.type);
|
||||
if (game == null) {
|
||||
throw 'Unsupported game type "${s.type}"';
|
||||
@@ -52,8 +54,23 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
state.text = stateString(s);
|
||||
}
|
||||
|
||||
private function stop():Void {
|
||||
//Provider.get(IConnection).packetHandler.removeListener(this);
|
||||
if (timer != null) {
|
||||
timer.stop();
|
||||
timer = null;
|
||||
}
|
||||
content.removeEventListener(Event.ENTER_FRAME, redraw);
|
||||
if (game != null) {
|
||||
game.dispose();
|
||||
game = null;
|
||||
}
|
||||
render.reset();
|
||||
}
|
||||
|
||||
private function stateString(state:GameState):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) {
|
||||
@@ -69,7 +86,7 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
}
|
||||
}
|
||||
}
|
||||
return result.join(' ');
|
||||
return '[ ${result.join(' | ')} ]';
|
||||
}
|
||||
|
||||
private function onGameStateChange(s:GameState):GameState {
|
||||
@@ -83,18 +100,17 @@ class GameFrame extends VGroupView implements ViewBuilder implements IPacketHand
|
||||
state.text = stateString(s);
|
||||
case Option.None:
|
||||
}
|
||||
Provider.get(IFrameSwitcher).change(StartFrame.ID);
|
||||
switch (game.next()) {
|
||||
case Option.Some(s):
|
||||
stop();
|
||||
start(s);
|
||||
case Option.None:
|
||||
Provider.get(IFrameSwitcher).change(StartFrame.ID);
|
||||
}
|
||||
}
|
||||
|
||||
public function onHide():Void {
|
||||
//Provider.get(IConnection).packetHandler.removeListener(this);
|
||||
if (timer != null) {
|
||||
timer.stop();
|
||||
timer = null;
|
||||
}
|
||||
content.removeEventListener(Event.ENTER_FRAME, redraw);
|
||||
game.dispose();
|
||||
render.reset();
|
||||
stop();
|
||||
}
|
||||
|
||||
private function updateEngine():Void {
|
||||
|
||||
Reference in New Issue
Block a user