public void AddTileToCity(Hextile tile) { if (!possibleCity.Contains(tile)) { possibleCity.Add(tile); } }
public void AddTileToBlockedArea(Hextile tile) { if (!possibleBlockedArea.Contains(tile)) { possibleBlockedArea.Add(tile); } }
public void AddTileToTargets(Hextile tile) { if (!targets.Contains(tile)) { targets.Add(tile); } }
public void CheckCity(int citySize) { int randomNumber = Random.Range(0, planet.hextileList.Count); Hextile randomHex = planet.hextileList[randomNumber]; GameObject newCPObj = AICityPlaceObjects[citySize]; newCPObj.SetActive(true); newCPObj.transform.position = randomHex.transform.position; }
void Start() { for (int i = 0; i <= numPlayers; i++) { string holderName = "Player " + i.ToString() + " Map"; if (transform.Find(holderName)) { DestroyImmediate(transform.Find(holderName).gameObject); } Transform mapHolder = new GameObject(holderName).transform; mapHolder.parent = transform; Planet planet = mapHolder.gameObject.AddComponent <Planet>(); List <Hextile> hextileList = new List <Hextile>(); int numRows = 15; for (int k = 1; k <= numRows; k++) { int rowLength = DetermineRowLength(k, numRows); float rowCenter = (rowLength / 2); string rowName = "Row Holder " + k.ToString(); Transform rowHolder = new GameObject(rowName).transform; rowHolder.parent = mapHolder; for (int j = 0; j < rowLength; j++) { GameObject newTile = Instantiate(hextile, new Vector3(k, 0, j - rowCenter), Quaternion.identity); newTile.transform.parent = rowHolder; var euler = newTile.transform.eulerAngles; //Rotate the tile randomly so the cities look a little random. euler.y = Random.Range(0, 360); newTile.transform.eulerAngles = euler; Hextile currentTileScript = newTile.GetComponent <Hextile>(); currentTileScript.tileLocation = new Vector2(k, j); hextileList.Add(currentTileScript); } if (k % 2 == 0) // Here we're checking if this row is an odd number, and if it is, shifting its z position by -0.5 { } else { rowHolder.position += new Vector3(0, 0, -0.5f); } } //Offset the entire player's grid based on the number of players int offset = 15; mapHolder.transform.position += new Vector3(0, 0, offset * i); planet.hextileList = hextileList; } }
private void OnTriggerExit(Collider other) { if (other.gameObject.name == "Main") { GameObject hextileObject = other.gameObject.transform.parent.gameObject; Hextile tileScript = hextileObject.GetComponent <Hextile>(); targetting.ResetColors(); targetting.ClearTargets(); } }
private void OnTriggerEnter(Collider other) { if (other.gameObject.name == "Main") { GameObject hextileObject = other.gameObject.transform.parent.gameObject; Hextile tileScript = hextileObject.GetComponent <Hextile>(); Renderer hextileRenderer = hextileObject.transform.Find("Main").GetComponent <Renderer>(); hextileRenderer.material.color = Color.yellow; targetting.singleTarget = tileScript; } }
public override void ExecuteAction() { base.ExecuteAction(); //Card Resolution for (int i = 0; i < targets.Count; i++) { Hextile hextileObject = targets[i]; if (hextileObject.isCity) { hextileObject.TakeDamage(2); } } }
private void OnTriggerExit(Collider other) { if (other.gameObject.name == "Main") { GameObject hextileObject = other.gameObject.transform.parent.gameObject; Hextile tileScript = hextileObject.GetComponent <Hextile>(); if (!tileScript.isCity && !tileScript.blocked) { cityPlacementScript.ResetColors(); cityPlacementScript.ClearCity(); } } }
public bool PlaceCity() { bool success = false; if (possibleCity.Count < intendedSize) { possibleBlockedArea.Clear(); possibleCity.Clear(); return(success); } else { City newCity = new City(); List <Hextile> newCityTiles = new List <Hextile>(possibleCity); newCity.cityTiles = newCityTiles; for (int i = 0; i < possibleCity.Count; i++) { Hextile tileScript = possibleCity[i]; tileScript.isCity = !tileScript.isCity; tileScript.transform.Find("Main").GetComponent <Renderer>().material.color = Color.gray; tileScript.containingCity = newCity; tileScript.health = 2; FloorGfx fgfx = tileScript.transform.Find("Main").GetComponent <FloorGfx>(); fgfx.myColor = Color.gray; } newCity.cityEnergy = newCity.DetermineCityEnergy(); newCity.owner = 1; aiCities.Add(newCity); success = true; possibleCity.Clear(); for (int i = 0; i < possibleBlockedArea.Count; i++) { Hextile tileScript = possibleBlockedArea[i]; tileScript.blocked = !tileScript.blocked; FloorGfx fgfx = tileScript.transform.Find("Main").GetComponent <FloorGfx>(); tileScript.transform.Find("Main").GetComponent <Renderer>().material.color = fgfx.myColor; } possibleBlockedArea.Clear(); } return(success); }
public void CreateCity() { if (possibleCity.Count < intendedSize) { Debug.Log("City too small!"); return; } City newCity = new City(); List <Hextile> newCityTiles = new List <Hextile>(possibleCity); newCity.cityTiles = newCityTiles; newCity.cityEnergy = newCity.DetermineCityEnergy(); newCity.owner = 0; cH.myCities.Add(newCity); for (int i = 0; i < possibleCity.Count; i++) { Hextile tileScript = possibleCity[i]; tileScript.isCity = !tileScript.isCity; tileScript.transform.Find("Main").GetComponent <Renderer>().material.color = Color.gray; tileScript.containingCity = newCity; tileScript.health = 2; FloorGfx fgfx = tileScript.transform.Find("Main").GetComponent <FloorGfx>(); fgfx.myColor = Color.gray; } possibleCity.Clear(); for (int i = 0; i < possibleBlockedArea.Count; i++) { Hextile tileScript = possibleBlockedArea[i]; tileScript.blocked = !tileScript.blocked; FloorGfx fgfx = tileScript.transform.Find("Main").GetComponent <FloorGfx>(); tileScript.transform.Find("Main").GetComponent <Renderer>().material.color = fgfx.myColor; } possibleBlockedArea.Clear(); tS.DecrementRemainingCities(intendedSize); }
private void OnTriggerStay(Collider other) { if (other.gameObject.name == "Main") { GameObject hextileObject = other.gameObject.transform.parent.gameObject; Hextile tileScript = hextileObject.GetComponent <Hextile>(); if (!tileScript.isCity && !tileScript.blocked) { Renderer hextileRenderer = hextileObject.transform.Find("Main").GetComponent <Renderer>(); if (AICity) { if (!blocker) { AICityPlacementScript.AddTileToCity(tileScript); } else { AICityPlacementScript.AddTileToBlockedArea(tileScript); } } else { if (!blocker) { hextileRenderer.material.color = Color.blue; cityPlacementScript.AddTileToCity(tileScript); } else { hextileRenderer.material.color = Color.yellow; cityPlacementScript.AddTileToBlockedArea(tileScript); } } } } }
void Start() { cC = CameraControll.instance; for (int i = 0; i <= numPlayers - 1; i++) { string holderName = "Player " + i.ToString() + " Map"; if (transform.Find(holderName)) { DestroyImmediate(transform.Find(holderName).gameObject); } Transform mapHolder = new GameObject(holderName).transform; mapHolder.parent = transform; List <Hextile> hextileList = new List <Hextile>(); // revert back when done int numRows = 15; GameObject planetObject = Instantiate(planetSphere, mapHolder.transform.position, Quaternion.identity); planetObject.transform.position += new Vector3((numRows - 1) / 2, -(planetSize / 2) + 1.5f, -1.5f); planetObject.transform.localScale *= planetSize; Color planetColor = Random.ColorHSV();//Color.white;// planetObject.GetComponent <Renderer>().material.color = planetColor; planetObject.transform.parent = mapHolder; Planet planet = planetObject.gameObject.AddComponent <Planet>(); planet.hextileList = hextileList; for (int k = 1; k <= numRows; k++) { int rowLength = DetermineRowLength(k, numRows); float rowCenter = (rowLength / 2); string rowName = "Row Holder " + k.ToString(); Transform rowHolder = new GameObject(rowName).transform; rowHolder.parent = mapHolder; for (int j = 0; j < rowLength; j++) { GameObject newTile = Instantiate(hextile, new Vector3(k, 0, j - rowCenter), Quaternion.identity); tiles.Add(newTile); newTile.transform.parent = rowHolder; GameObject floor = newTile.transform.Find("Main").gameObject; floor.GetComponent <Renderer>().material.color = planetColor; floor.GetComponent <FloorGfx>().myColor = planetColor; Transform cityObject = newTile.transform.Find("City"); var euler = newTile.transform.eulerAngles; //Rotate the tile randomly so the cities look a little random. euler.y = Random.Range(0, 360); cityObject.eulerAngles = euler; cityObject.localScale += new Vector3(0, Random.Range(0f, 2f), 0); cityObject.gameObject.SetActive(false); Hextile currentTileScript = newTile.GetComponent <Hextile>(); currentTileScript.tileLocation = new Vector2(k, j); currentTileScript.owningPlayerID = i; hextileList.Add(currentTileScript); } if (k % 2 == 0) // Here we're checking if this row is an odd number, and if it is, shifting its z position by -0.5 { } else { rowHolder.position += new Vector3(0, 0, -0.5f); } } //Offset the entire player's grid based on the number of players int offset = 50; mapHolder.transform.position = mapHolder.parent.position; mapHolder.transform.position += new Vector3(offset * i, 0, offset * i); Transform camAnchor = new GameObject().transform; camAnchor.transform.position = mapHolder.position += new Vector3(0, 0, numRows / 2); //cC.camSpots.Add(camAnchor); } //FogGen(); }
public void GetTileNeighbours(Hextile mainTile) { }
public void ClearTargets() { targets.Clear(); singleTarget = null; }