// Update is called once per frame void Update() { if (!hasgonethrough) { hasgonethrough = true; for (int k = 0; k < enemySpawns.Length; k++) { for (int i = 0; i < enemySpawns[k]; i++) { ArrayList spawnableTiles = AiManager.instance._aiSystem.GetTilesByTier(k + 1); int randomTile = Random.Range(0, spawnableTiles.Count); TileObject targetPosition = (TileObject)spawnableTiles[randomTile]; for (int j = 0; j < usedTiles.Count; j++) { if (targetPosition.GetPosition() == (Vector2)usedTiles[j]) { randomTile = Random.Range(0, spawnableTiles.Count); targetPosition = (TileObject)spawnableTiles[randomTile]; j = 0; } } GameObject newEntity = Instantiate(enemyTiers[k], targetPosition.GetPosition(), Quaternion.identity); AiManager.AddAiEntity(newEntity.GetComponent <AiEntity>()); AiEntity ae = newEntity.GetComponent <AiEntity>(); ae.SetCurrentTile(targetPosition); ae.SetPath(AiManager.instance._aiSystem.CalculateRandomPathByTier(targetPosition.GetPosition(), k + 1)); usedTiles.Add(targetPosition.GetPosition()); } } } }
private void Start() { _path = new Queue <TileObject>(); AiManager.AddAiEntity(this); if (_entityInfo.IsDoctor) { StartCoroutine(doctorSearch()); } this.GetComponent <SpriteRenderer>().color = _entityInfo.color; }
public void spawnNewDoctor() { ArrayList spawnableTiles = AiManager.instance._aiSystem.GetTilesByTier(doctor.GetComponent <AiEntity>().getEntityInfo().Tier); int randomTile = Random.Range(0, spawnableTiles.Count); TileObject targetPosition = (TileObject)spawnableTiles[randomTile]; GameObject newEntity = Instantiate(doctor, targetPosition.GetPosition(), Quaternion.identity); AiManager.AddAiEntity(newEntity.GetComponent <AiEntity>()); AiEntity ae = newEntity.GetComponent <AiEntity>(); ae.SetCurrentTile(targetPosition); ae.SetPath(AiManager.instance._aiSystem.CalculateRandomPathByTier(targetPosition.GetPosition(), doctor.GetComponent <AiEntity>().getEntityInfo().Tier)); }