void HandleChestOpening(ChestController chest) { if (_chestsClosing != null || !GameIsRunning) //If currently other chests are on delay to close or game ended { chest.Close(); //Immediately return; } if (_firstChest == null) { _firstChest = chest; } else/*if(_firstChest != null)*/ { if (_firstChest.ItemIndex == chest.ItemIndex) { _firstChest = null; PlayerMovedSuccessfully?.Invoke(true); } else { _chestsClosing = StartCoroutine(CloseChestsAfterDelay(chest)); PlayerMovedSuccessfully?.Invoke(false); } } }
IEnumerator CloseChestsAfterDelay(ChestController secondChest) { yield return(_closeDelay); _firstChest.Close(); secondChest.Close(); _firstChest = null; _chestsClosing = null; }