/// <summary> /// Añade un enemigo en una posición /// Lo añade a su lista de enemigos /// </summary> /// <param name="enemyAsset"></param> /// <param name="enemyPos"></param> public void AddEnemy(EnemyAsset enemyAsset, Vector2Int enemyPos) { //Comprobación de error if (enemyPos.x >= _board.GetWidth() || enemyPos.y >= _board.GetWidth()) { Debug.LogError("Se ha tratado de añadir un enemigo en Tile Inexistente: " + enemyPos); } else { //Buscamos el grupo al que corresponde este enemigo EnemyGroup enemyGroup = Enemies.FirstOrDefault(t => t.EnemyAsset == enemyAsset); //Si no existe el grupo if (enemyGroup == null) { //Instancia e inicializa un grupo de enemigos GameObject enemyGroupGO = new GameObject("EnemyGroup: " + enemyAsset.name); enemyGroup = enemyGroupGO.AddComponent <EnemyGroup>(); enemyGroup.Init(enemyAsset, _board); enemyGroup.transform.parent = transform; Enemies.Add(enemyGroup); } //Añadimos un enemigo al grupo enemyGroup.AddEnemy(enemyPos); } }
private double lastBeat; //Temporizador /// <summary> /// Obtiene referencias, inicializa valores y se suscribe a eventos /// </summary> /// <param name="enemyAsset"></param> /// <param name="board"></param> public void Init(EnemyAsset enemyAsset, Board board) { EnemyAsset = enemyAsset; _board = board; enemies = new List <Enemy>(); lastBeat = 0.0d; //Se suscribe para que le informen cuando la musica ha acabado LevelManager.Instance.MusicResetDelegate += OnMusicReset; }