Exemplo n.º 1
0
    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);
            }
        }
    }
Exemplo n.º 2
0
    IEnumerator CloseChestsAfterDelay(ChestController secondChest)
    {
        yield return(_closeDelay);

        _firstChest.Close();
        secondChest.Close();

        _firstChest    = null;
        _chestsClosing = null;
    }