internal void Update(MapPheromone mapPheromone) { if (mapPheromone == null) { if (markerEnergy != null) { markerEnergy.transform.position = Cell.transform.position; } if (markerToHome != null) { markerToHome.transform.position = Cell.transform.position; } if (markerToMineral != null) { markerToMineral.transform.position = Cell.transform.position; } if (markerToEnemy != null) { markerToEnemy.transform.position = Cell.transform.position; } } else { if (markerEnergy == null) { if (markerPrefab == null) { markerPrefab = Resources.Load <GameObject>("Prefabs/Terrain/Marker"); } markerEnergy = HexGrid.Instantiate(markerPrefab, Cell.transform, false); markerEnergy.name = Cell.name + "-Energy"; markerToHome = HexGrid.Instantiate(markerPrefab, Cell.transform, false); markerToHome.name = Cell.name + "-Home"; MeshRenderer meshRenderer = markerToHome.GetComponent <MeshRenderer>(); meshRenderer.material.color = new Color(0, 0, 0.6f); markerToMineral = HexGrid.Instantiate(markerPrefab, Cell.transform, false); markerToMineral.name = Cell.name + "-Mineral"; meshRenderer = markerToMineral.GetComponent <MeshRenderer>(); meshRenderer.material.color = new Color(0, 0.4f, 0); markerToEnemy = HexGrid.Instantiate(markerPrefab, Cell.transform, false); markerToEnemy.name = Cell.name + "-Mineral"; meshRenderer = markerToEnemy.GetComponent <MeshRenderer>(); meshRenderer.material.color = new Color(0.4f, 0, 0); } if (mapPheromone.IntensityToHome > 0) { Vector3 position = Cell.transform.position; position.y += 0.054f + (0.2f * mapPheromone.IntensityToHome); position.x += 0.1f; markerToHome.transform.position = position; } else { Vector3 position = Cell.transform.position; position.y -= 1; position.x += 0.1f; markerToHome.transform.position = position; } if (mapPheromone.IntensityToMineral > 0) { Vector3 position = Cell.transform.position; position.y += 0.054f + (0.2f * mapPheromone.IntensityToMineral); position.x += 0.2f; markerToMineral.transform.position = position; } else { Vector3 position = Cell.transform.position; position.y -= 1; position.x += 0.2f; markerToMineral.transform.position = position; } if (mapPheromone.IntensityToEnemy > 0) { Vector3 position = Cell.transform.position; position.y += 0.054f + (0.2f * mapPheromone.IntensityToEnemy); position.x += 0.3f; markerToEnemy.transform.position = position; } else { Vector3 position = Cell.transform.position; position.y -= 1; position.x += 0.3f; markerToEnemy.transform.position = position; } float highestEnergy = -1; int highestPlayerId = 0; foreach (MapPheromoneItem mapPheromoneItem in mapPheromone.PheromoneItems) { if (mapPheromoneItem.PheromoneType == Engine.Ants.PheromoneType.Energy) { if (mapPheromoneItem.Intensity >= highestEnergy) { highestEnergy = mapPheromoneItem.Intensity; highestPlayerId = mapPheromoneItem.PlayerId; } } } //highestEnergy = 0; if (highestEnergy > 0) { Vector3 position = Cell.transform.position; position.y += 0.054f + (0.2f * highestEnergy); markerEnergy.transform.position = position; UnitFrame.SetPlayerColor(highestPlayerId, markerEnergy); } else { Vector3 position = Cell.transform.position; position.y -= 1; markerEnergy.transform.position = position; } } }