示例#1
0
 // 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());
             }
         }
     }
 }
示例#2
0
    private void Start()
    {
        _path = new Queue <TileObject>();

        AiManager.AddAiEntity(this);

        if (_entityInfo.IsDoctor)
        {
            StartCoroutine(doctorSearch());
        }

        this.GetComponent <SpriteRenderer>().color = _entityInfo.color;
    }
示例#3
0
    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));
    }