This commit is contained in:
2015-08-13 17:18:21 +03:00
parent f2cbdbf341
commit 39ab8d30e6
10 changed files with 117 additions and 64 deletions

View File

@@ -1,5 +1,7 @@
package ru.m.tankz.view.frames;
import ru.m.tankz.proto.GamesUnSubscribeRequest;
import ru.m.tankz.proto.GamesSubscribeRequest;
import haxework.gui.ViewBuilder;
import ru.m.tankz.proto.JoinGameResponse;
import ru.m.tankz.proto.JoinGameRequest;
@@ -9,14 +11,12 @@ import haxework.gui.frame.IFrameSwitcher;
import haxework.gui.ButtonView;
import haxework.gui.LabelView;
import ru.m.tankz.proto.GamesResponse;
import ru.m.tankz.proto.GamesRequest;
import ru.m.tankz.proto.Game;
import haxework.gui.list.ListView;
import protohx.Message;
import ru.m.core.connect.IConnection;
import ru.m.tankz.data.GameData;
import haxework.provider.Provider;
import haxework.gui.list.VListView;
import haxework.gui.VGroupView;
@:template("layout/frames/game_list.json", "layout/styles.json")
@@ -35,10 +35,11 @@ class GameListFrame extends VGroupView implements ViewBuilder implements IPacket
public function onShow() {
findViewById("name", LabelView).text = Provider.get(GameData).person.name;
Provider.get(IConnection).packetHandler.addListener(this);
Provider.get(IConnection).send(new GamesRequest());
Provider.get(IConnection).send(new GamesSubscribeRequest());
}
public function onHide() {
Provider.get(IConnection).send(new GamesUnSubscribeRequest());
Provider.get(IConnection).packetHandler.removeListener(this);
}

View File

@@ -1,19 +1,15 @@
package ru.m.tankz.view.frames;
import ru.m.tankz.proto.LeaveGameRequest;
import ru.m.tankz.proto.LeaveGameResponse;
import ru.m.tankz.proto.JoinGameResponse;
import haxework.gui.ViewBuilder;
import ru.m.tankz.proto.ExitGameResponse;
import haxework.gui.frame.IFrameSwitcher;
import ru.m.tankz.proto.GamesResponse;
import ru.m.tankz.proto.ExitGameRequest;
import ru.m.tankz.proto.StartGameResponse;
import ru.m.tankz.proto.StartGameRequest;
import ru.m.tankz.data.GameData;
import protohx.Message;
import haxework.gui.ButtonView;
import haxework.gui.list.VListView;
import ru.m.tankz.proto.Person;
import haxework.provider.Provider;
import haxework.gui.VGroupView;
import ru.m.core.connect.IConnection;
@@ -53,11 +49,11 @@ class GameReadyFrame extends VGroupView implements ViewBuilder implements IPacke
public function onLeaveGameResponse(packet:LeaveGameResponse):Void {
Provider.get(GameData).game = packet.game;
list.data = Provider.get(GameData).game.persons;
}
public function onExitGameResponse(packet:ExitGameResponse):Void {
Provider.get(GameData).game = null;
Provider.get(IFrameSwitcher).change(GameListFrame.ID);
var person = Provider.get(GameData).person;
if (!Lambda.exists(packet.game.persons, function(person) return person.id == person.id)) {
Provider.get(GameData).game = null;
Provider.get(IFrameSwitcher).change(GameListFrame.ID);
}
}
public function onPacket(packet:Message):Void {}
@@ -67,7 +63,7 @@ class GameReadyFrame extends VGroupView implements ViewBuilder implements IPacke
case "start":
Provider.get(IConnection).send(new StartGameRequest());
case "exit":
Provider.get(IConnection).send(new ExitGameRequest());
Provider.get(IConnection).send(new LeaveGameRequest());
}
}
}