// Update is called once per frame void Update() { RaycastHit hit = new RaycastHit(); if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit)) { if (hit.transform.gameObject.tag == "Zone") { currentTile = hit.transform.gameObject.GetComponent<Zone>(); if (currentTile.player_id != prevPlayerID) { if (prevPlayerID > 0) { GameObject.Find("Map").GetComponent<Map>().SelectTerritory(prevPlayerID, false); } GameObject.Find("Map").GetComponent<Map>().SelectTerritory(currentTile.player_id, true); prevPlayerID = currentTile.player_id; } string owner_name = ""; if (currentTile.player_id > 0) { owner_name = GameObject.Find("Map").GetComponent<Map>().playerList[currentTile.player_id].name; Color playerColor = GameObject.Find("Map").GetComponent<Map>().playerList[currentTile.player_id].color;; tileInfoGUI.bgColor = new Color(playerColor.r, playerColor.g, playerColor.b, 0.8f); } else { tileInfoGUI.DefaultColor(); } tileInfoGUI.SetInformation(currentTile.terrain_type, currentTile.v_capacity, owner_name); tileInfoGUI.position = Camera.main.WorldToScreenPoint(currentTile.transform.position); tileInfoGUI.SetActive(true); roamingCursor.SetActive(true); roamingCursor.transform.position = currentTile.transform.position + new Vector3(0, 0.1f, 0); // roamingCursor.renderer.material.color = new Color32(0, 181, 248, 255); } } else { tileInfoGUI.SetActive(false); roamingCursor.SetActive(false); currentTile = null; } switch (InputExtended.GetMouseNumClick(0)) { case 1: // Single Click // mouseDownPos = Input.mousePosition; // oldCameraPos = transform.position; // if (currentTile != null && currentTile.player_id > 0) { // mapCamera.Center(currentTile.player_id); // mapCamera.isLeaving = mapCamera.isZooming = true; // } break; case 2: // Double Click if (currentTile.player_id == GameState.player.GetID()) { mapCamera.Move(currentTile.transform.position); } break; } }
public static NetworkResponse Parse(MemoryStream dataStream) { ResponseEcosystem response = new ResponseEcosystem(); response.status = DataReader.ReadShort(dataStream); List<Zone> zones = new List<Zone>(); if (response.status == 0) { int eco_id = DataReader.ReadInt(dataStream); Ecosystem ecosystem = new Ecosystem(eco_id); ecosystem.type = DataReader.ReadShort(dataStream); ecosystem.score = DataReader.ReadInt(dataStream); 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); ecosystem.player = player; 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]); zones.Add(zone); } ecosystem.zones = zones; response.ecosystem = ecosystem; } 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; }
// Update is called once per frame void Update() { RaycastHit hit = new RaycastHit(); if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit)) { if (hit.transform.gameObject.tag == "Zone") { currentTile = hit.transform.gameObject.GetComponent <Zone>(); if (currentTile.player_id != prevPlayerID) { if (prevPlayerID > 0) { GameObject.Find("Map").GetComponent <Map>().SelectTerritory(prevPlayerID, false); } GameObject.Find("Map").GetComponent <Map>().SelectTerritory(currentTile.player_id, true); prevPlayerID = currentTile.player_id; } string owner_name = ""; if (currentTile.player_id > 0) { owner_name = GameObject.Find("Map").GetComponent <Map>().playerList[currentTile.player_id].name; Color playerColor = GameObject.Find("Map").GetComponent <Map>().playerList[currentTile.player_id].color;; tileInfoGUI.bgColor = new Color(playerColor.r, playerColor.g, playerColor.b, 0.8f); } else { tileInfoGUI.DefaultColor(); } tileInfoGUI.SetInformation(currentTile.terrain_type, currentTile.v_capacity, owner_name); tileInfoGUI.position = Camera.main.WorldToScreenPoint(currentTile.transform.position); tileInfoGUI.SetActive(true); roamingCursor.SetActive(true); roamingCursor.transform.position = currentTile.transform.position + new Vector3(0, 0.1f, 0); // roamingCursor.renderer.material.color = new Color32(0, 181, 248, 255); } } else { tileInfoGUI.SetActive(false); roamingCursor.SetActive(false); currentTile = null; } switch (InputExtended.GetMouseNumClick(0)) { case 1: // Single Click // mouseDownPos = Input.mousePosition; // oldCameraPos = transform.position; // if (currentTile != null && currentTile.player_id > 0) { // mapCamera.Center(currentTile.player_id); // mapCamera.isLeaving = mapCamera.isZooming = true; // } break; case 2: // Double Click if (currentTile.player_id == GameState.player.GetID()) { mapCamera.Move(currentTile.transform.position); } break; } }