/// <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; }
/// <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() }