예제 #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);
    }
예제 #2
0
 public static void Save()
 {
     Instance.SaveGameData();
     InventorySystem.Save();
     Party.Save();
     FlagManager.Save();
     VariablePersister.Save();
     SaveSystem.Save();
 }
예제 #3
0
 public static void Load(int fileNumber)
 {
     SaveSystem.LoadFile(fileNumber);
     Instance.LoadGameData();
     Party.Load();
     FlagManager.Load();
     VariablePersister.Load();
     InventorySystem.Load();
 }
예제 #4
0
    private void Start()
    {
        gameObject.layer = LayerMask.NameToLayer("Interactable");
        if (!VariablePersister.Exist(key))
        {
            return;
        }
        isOpen = VariablePersister.GetBool(key);

        if (isOpen)
        {
            SpriteRenderer spriteRenderer = GetComponent <SpriteRenderer>();
            spriteRenderer.sprite = enptyImage;
        }
    }
예제 #5
0
    // Start is called before the first frame update
    void Start()
    {
        gameObject.layer = LayerMask.NameToLayer("Interactable");
        triggerColider   = GetComponent <Collider2D>();

        if (!VariablePersister.Exist(key))
        {
            return;
        }
        isOpen = VariablePersister.GetBool(key);

        if (isOpen)
        {
            door.SetActive(false);
            triggerColider.enabled = false;
        }
    }
예제 #6
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;
    }