Esempio n. 1
0
    private IEnumerator OpenDoor()
    {
        MessageWindow messageWindow = MessageSystem.GetWindow();
        bool          hasItem       = InventorySystem.HasItem(keyItem);

        if (!hasItem)
        {
            yield return(StartCoroutine(messageWindow.ShowClick("ドアを開けるには鍵が必要なようだ")));

            messageWindow.Close();
        }
        else
        {
            yield return(StartCoroutine(messageWindow.ShowClick("ガチャ! ドアの鍵を開けた")));

            messageWindow.Close();

            //ドアを開ける
            door.SetActive(false);

            //イベントが起動しないようにする
            triggerColider.enabled = false;

            //鍵を消費する
            InventorySystem.Remove(keyItem);

            //フラグの保存
            VariablePersister.SetBool(key, true);
        }
        yield return(null);
    }
Esempio n. 2
0
    public IEnumerator OpenBox()
    {
        MessageWindow messageWindow = MessageSystem.GetWindow();

        PlayerInteract.InteractableStart();

        if (isOpen)
        {
            yield return(StartCoroutine(messageWindow.ShowClick("からっぽだ")));

            messageWindow.Close();
            PlayerInteract.InteractableEnd();
            yield break;
        }

        //お金が入っていた
        if (money > 0)
        {
            yield return(GetMony());
        }

        //アイテムが入っていた
        if (item != null)
        {
            yield return(GetItem());
        }

        //装備が入っていた
        if (equipment != null)
        {
            yield return(GetEqip());
        }

        //フラグの保存
        VariablePersister.SetBool(key, true);

        PlayerInteract.InteractableEnd();
        yield break;
    }