/// <summary>
    /// ボタン入力を処理する
    /// </summary>
    /// <returns></returns>
    private IEnumerator InputHandler()
    {
        var selectedFoodName = _playerContainer.GetItem(_playerInvRenderer.LastSelectedIndex).ItemName;

        _windowCor       = _choicePopup.ShowWindow($"{selectedFoodName}を捨てますか?", SE.ThrowOutFood);
        _isShowingWindow = true;

        // ボタン入力を待機
        yield return(_windowCor);

        // はい選択だったら食材を捨てる
        if (_windowCor.Current != null &&
            (bool)_windowCor.Current)
        {
            // プレイヤーインベントリから選択食材を削除
            _playerContainer.RemoveItem(_playerInvRenderer.LastSelectedIndex);

            // 捨てた回数をカウント
            GameManager.Instance.StatisticsManager.throwInCount++;
        }

        _choicePopup.HideWindow();
        _isShowingWindow = false;
        _windowCor       = null;
    }
Exemplo n.º 2
0
    /// <summary>
    /// フライパン内の食材の調理が完了しているかを確認し、完了していたらプレイヤーインベントリに戻す
    /// </summary>
    private void CookingCompleteListener()
    {
        int puttedSlotIndex          = InventoryManager.Instance.PuttedSlotIndex;
        InventorySlotBase puttedSlot = _playerContainer.Container[puttedSlotIndex];

        if (_bakeSlider.value >= 100 && !_isCompleteCooking)
        {
            _isCompleteCooking = true;
        }

        if (GameManager.Instance.BakePoint == 100)
        {
            BakeController.doOnceBakeSound = true;
            Destroy(_foodParent.transform.GetChild(0).gameObject);
            _bakeSlider.value = 0;
            GameManager.Instance.BakePoint = 0;
            SoundManager.Instance.FadeOutBgm(0.1f);
            FireControl.clickBool = true;
            _playerContainer.RemoveItem(puttedSlotIndex);
            blackSmoke.Stop();
        }
        if (GameManager.Instance.BakePoint >= 70 && doOnce)
        {
            doOnce = false;
            blackSmoke.Play();
        }
        else if (GameManager.Instance.BakePoint < 70 && !doOnce)
        {
            doOnce = true;
            blackSmoke.Stop();
        }

        // 調理が完了していないか、投入元のスロットにアイテムがある場合は動作しない
        if (!_isCompleteCooking || puttedSlot.Item != null)
        {
            return;
        }

        // 出ていた食材を削除
        Destroy(_foodParent.transform.GetChild(0).gameObject);

        // 食材の状態を更新し、プレイヤーインベントリに戻す
        FoodSlotBeingBaked.RemoveState(FoodState.Raw);
        FoodSlotBeingBaked.AddState(FoodState.Cooked);
        _playerContainer.AddItem(FoodSlotBeingBaked.Item, FoodSlotBeingBaked.States);

        _isCompleteCooking    = false;
        FireControl.clickBool = true;
        FoodSlotBeingBaked    = null;
    }
    /// <summary>
    /// ボタン入力を処理する
    /// </summary>
    /// <returns></returns>
    private IEnumerator InputHandler()
    {
        var selectedFood      = _playerInvContainer.GetItem(_playerInvRenderer.LastSelectedIndex);
        var selectedFoodState = _playerInvContainer.GetStates(_playerInvRenderer.LastSelectedIndex);

        // 調味料か調理済みの食材のみ受け付ける
        if (selectedFood == null ||                                  // 食材を持っていない
            selectedFood.KindOfItem1 != Item.KindOfItem.Seasoning && // 食材が調味料ではなく、
            (selectedFoodState.Contains(FoodState.None) ||           // 状態がNoneまたはRawである
             selectedFoodState.Contains(FoodState.Raw)))
        {
            yield break;
        }

        _windowCor       = _choicePopup.ShowWindow($"{selectedFood.ItemName}を入れますか?", SE.PutFood);
        _isShowingWindow = true;

        // ボタン入力を待機
        yield return(_windowCor);

        // ボタン入力結果がはいだったら大皿に食材を入れる
        if (_windowCor.Current != null &&
            (bool)_windowCor.Current)
        {
            var targetFoodIndex = _playerInvRenderer.LastSelectedIndex;

            // 大皿に現在選択しているアイテムをぶち込む
            selfContainer.AddSlot(_playerInvContainer.GetItem(targetFoodIndex),
                                  selectedFoodState);

            // 表示中の寝言の達成をチェック
            NegotoManager.Instance.CheckNegotoAchieved(_playerInvContainer.GetItem(targetFoodIndex));

            // プレイヤーのアイテムを削除
            _playerInvContainer.RemoveItem(targetFoodIndex);
        }

        _choicePopup.HideWindow();
        _isShowingWindow = false;
    }