private void DoPutBombWithTimer(Player player, BombWithTimer bombPrefab, GameCell gameCell) { Vector3 bombPosition = levelManager.GetPositionConverter().ConvertBoardPositionToScene(gameCell.GetCoordinates(), true); bombPosition.y = bombPrefab.transform.localScale.y / 0.85f; BombWithTimer bomb = Instantiate(bombPrefab, bombPosition, Quaternion.identity) as BombWithTimer; bomb.player = player.gameObject; bomb.detonateDelay = GameManager.instance.GetBombDetonateDelay(); bomb.explosionRange = GameManager.instance.GetPlayer().bombRange; gameCell.bomb = bomb; AddToBombMap(player, bomb, gameCell); StartCoroutine(HandleBombPlaced(player, bomb, gameCell)); }
private IEnumerator HandleBombPlaced(Player player, BombWithTimer bomb, GameCell gameCell) { // decrement counter value int timeLeft = bomb.detonateDelay; while (timeLeft > 0) { bomb.SetCountValue(timeLeft); yield return(new WaitForSeconds(1)); timeLeft--; } // handle explosion if (!bomb.HasBeenDetonated()) { DetonateBomb(bomb, player); } }