Example #1
0
    private IEnemy InstantiateEnemy(EnemyCategory category)
    {
        IEnemy enemy = _enemyFactory.Create(category);

        enemy.Dispose();
        return(enemy);
    }
Example #2
0
    public IEnemy TakeEnemy(EnemyCategory category)
    {
        if (_enemies[category].Count <= 0)
        {
            _enemies[category].Push(InstantiateEnemy(category));
        }

        IEnemy enemy = _enemies[category].Pop();

        enemy.SetOnDisposeAction(DisposeEnemy);

        return(enemy);
    }
Example #3
0
        /// <summary>
        ///  查询指定范围内活着的敌人
        /// </summary>
        /// <param name="_category">种类</param>
        /// <returns></returns>
        public List <MonsterActor> QueryEnemyActor(EnemyCategory _category)
        {
            List <MonsterActor> retList         = new List <MonsterActor>();
            List <int>          enemyInstIdList = hActorModule.EnemyInstIdList;
            MonsterActor        enemy           = null;

            for (int i = 0; i < enemyInstIdList.Count; i++)
            {
                enemy = hActorModule.EnemyDict[enemyInstIdList[i]];
                if (enemy.Category == _category)
                {
                    retList.Add(enemy);
                }
            }

            return(retList);
        }
    void spawnEnemy(EnemyCategory enemy)
    {
        switch (enemy)
        {
        case EnemyCategory.Hamster:
            Instantiate(HamsterPrefab);
            break;

        case EnemyCategory.Butterfly:
            Instantiate(ButterflyPrefab);
            break;

        case EnemyCategory.Goose:
            spawnGoose();
            break;

        default:
            throw new ArgumentException($"unexpected enemy type {enemy}");
        }
    }
Example #5
0
 public Boolean HasCategory(EnemyCategory category)
 {
     return(btl_util.CheckEnemyCategory(Data, (Byte)category));
 }