public static NetworkResponse Parse(MemoryStream dataStream) { ResponseZoneList response = new ResponseZoneList(); response.status = DataReader.ReadShort(dataStream); Dictionary <int, Player> players = new Dictionary <int, Player>(); List <Zone> zones = new List <Zone>(); if (response.status == 0) { short size = DataReader.ReadShort(dataStream); for (int i = 0; i < size; i++) { int player_id = DataReader.ReadInt(dataStream); Player player = new Player(player_id); player.name = DataReader.ReadString(dataStream); string[] rgb = DataReader.ReadString(dataStream).Split(','); player.color = new Color32(byte.Parse(rgb[0]), byte.Parse(rgb[1]), byte.Parse(rgb[2]), 255); players.Add(player_id, player); } response.players = players; response.height = DataReader.ReadShort(dataStream); response.width = DataReader.ReadShort(dataStream); string zone_str = DataReader.ReadString(dataStream); foreach (string item in zone_str.Split(';')) { if (item == "") { continue; } string[] temp = item.Split(','); Zone zone = new Zone(int.Parse(temp[0])); zone.row = short.Parse(temp[1]); zone.column = short.Parse(temp[2]); zone.terrain_type = short.Parse(temp[3]); zone.v_capacity = int.Parse(temp[4]); zone.player_id = int.Parse(temp[5]); zones.Add(zone); } response.zones = zones; } return(response); }
public static NetworkResponse Parse(MemoryStream dataStream) { ResponseZoneList response = new ResponseZoneList(); response.status = DataReader.ReadShort(dataStream); Dictionary<int, Player> players = new Dictionary<int, Player>(); List<Zone> zones = new List<Zone>(); if (response.status == 0) { short size = DataReader.ReadShort(dataStream); for (int i = 0; i < size; i++) { int player_id = DataReader.ReadInt(dataStream); Player player = new Player(player_id); player.name = DataReader.ReadString(dataStream); string[] rgb = DataReader.ReadString(dataStream).Split(','); player.color = new Color32(byte.Parse(rgb[0]), byte.Parse(rgb[1]), byte.Parse(rgb[2]), 255); players.Add(player_id, player); } response.players = players; response.height = DataReader.ReadShort(dataStream); response.width = DataReader.ReadShort(dataStream); string zone_str = DataReader.ReadString(dataStream); foreach (string item in zone_str.Split(';')) { if (item == "") { continue; } string[] temp = item.Split(','); Zone zone = new Zone(int.Parse(temp[0])); zone.row = short.Parse(temp[1]); zone.column = short.Parse(temp[2]); zone.terrain_type = short.Parse(temp[3]); zone.v_capacity = int.Parse(temp[4]); zone.player_id = int.Parse(temp[5]); zones.Add(zone); } response.zones = zones; } return response; }
public void ProcessZoneList(NetworkResponse response) { ResponseZoneList args = response as ResponseZoneList; if (args.status == 0) { playerList = args.players; height = args.height; width = args.width; Generate(args.height, args.width, args.zones); Game.StartEnterTransition(); Camera.main.GetComponent <MapCamera>().Setup(); Camera.main.GetComponent <MapCamera>().Center(GameState.player.GetID()); } }