Esempio n. 1
0
        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;
        }
Esempio n. 3
0
        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());
            }
        }