Ejemplo n.º 1
0
    /// <summary>
    /// 鍋内の食材の調理が完了しているかを確認し、完了していたらプレイヤーインベントリに戻す
    /// </summary>
    private void CookingCompleteListener()
    {
        if (_boilSlider.value >= 100 && !_isCompleteCooking)
        {
            _isCompleteCooking = true;
        }

        int puttedSlotIndex          = InventoryManager.Instance.PuttedSlotIndex;
        InventorySlotBase puttedSlot = _playerContainer.Container[puttedSlotIndex];

        // 調理完了した食材をインベントリに戻す
        if (!_isCompleteCooking || puttedSlot.Item != null)
        {
            return;
        }

        // 調理が完了していないか、投入元のスロットにアイテムがある場合は動作しない
        Destroy(_foodParent.transform.GetChild(0).gameObject);

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

        _isCompleteCooking         = false;
        FireControl_boil.clickBool = true;
        FoodSlotBeingBoiled        = null;
    }
Ejemplo 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>
    public void OnClickForRefrigerator()
    {
        _nearRefContainer = RefrigeratorManager.Instance.NearRefrigeratorContainer;
        var selfIndex   = _refInvRenderer.LastSelectedIndex;
        var selfButton  = GetComponent <Button>();
        var nearRefSlot = _nearRefContainer.Container[selfIndex];
        var selfItem    = nearRefSlot.Item;
        var selfStates  = nearRefSlot.States;

        // スロットにアイテムがなければ弾く
        if (selfItem == null)
        {
            return;
        }

        // プレイヤーの空きスロットにアイテム配置
        if (!_playerContainer.IsFull)
        {
            _playerContainer.AddItem(selfItem, selfStates);

            return;
        }

        // 冷蔵庫スロットは空にする
        // 無限獲得可能への仕様変更につきCO
        // _nearRefContainer.RemoveItem(selfIndex);

        // プレイヤーとアイテム交換
        // 交換アイテムをキャッシュ
        _invManager.ItemToSwapFromRef = selfItem;
        _invManager.ItemStatesToSwap  = selfStates;
        // 交換モード発動
        _invManager.IsSwapMode = true;
        // 冷蔵庫スロット無効化(交換対象はハイライト)
        _refCanvasGroup.interactable = false;
        selfButton.interactable      = true;
        selfButton.enabled           = false;
        _refInvRenderer.HighlightSlotAt(selfIndex);
        // プレイヤースロット有効化
        _playerCanvasGroup.interactable = true;
        _playerInvRenderer.SelectSlot();

        // ここから先はOnClickForPlayer()
    }