示例#1
0
 public static void Open(List <int> idList, Action callback = null)
 {
     if (_instance == null)
     {
         _instance = ResourceManager.Instance.Spawn("ItemConfirmUI", ResourceManager.Type.UI).GetComponent <ItemConfirmUI>();
     }
     ExploreController.Instance.StopEnemy();
     _instance._onFinishHandler = callback;
     _instance.Init(idList);
 }
    public void Interactive(Vector2Int position)
    {
        if (_mapInfo.TreasureDic.ContainsKey(position))
        {
            ItemManager.Instance.AddItem(_mapInfo.TreasureDic[position].ItemList, ItemManager.Type.Bag);
            TilePainter.Instance.Clear(1, position);
            ItemConfirmUI.Open(_mapInfo.TreasureDic[position].ItemList);
            _mapInfo.TreasureDic.Remove(position);
            _pathFindList.Add(position);

            if (ItemManager.Instance.BagIsFull())
            {
                ConfirmUI.Open("背包已滿!請選擇要丟棄的道具。", "確定", () =>
                {
                    BagUI.Open(ItemManager.Type.Bag);
                });
            }
            SetInteractive(Vector2Int.RoundToInt(_player.transform.position));
        }
        else if (_mapInfo.DoorList.Contains(position))
        {
            if (ItemManager.Instance.UseKey())
            {
                TilePainter.Instance.Clear(1, position);
                _mapInfo.DoorList.Remove(position);
                _pathFindList.Add(position);
                SetVisibleRange(false);
                ExploreUI.Instance.RefreshLittleMap(Vector2Int.RoundToInt(_player.transform.position), _mapInfo.ExploredList, _mapInfo.ExploredWallList);
            }
            else
            {
                ConfirmUI.Open("需要一把鑰匙將鎖打開。", "確定", null);
            }
            SetInteractive(Vector2Int.RoundToInt(_player.transform.position));
        }
        else if (_mapInfo.ExploreEventDic.ContainsKey(position))
        {
            _player.Stop();
            EventUI.Open(_mapInfo.ExploreEventDic[position], (isDonothing) =>
            {
                _player.UnlockStop();
                ContinueEnemy();
                if (!isDonothing)
                {
                    TilePainter.Instance.Clear(1, position);
                    _mapInfo.ExploreEventDic.Remove(position);
                    _pathFindList.Add(position);
                }
                SetInteractive(Vector2Int.RoundToInt(_player.transform.position));
            });
        }
    }
示例#3
0
 private void Close()
 {
     ExploreController.Instance.ContinueEnemy();
     Destroy(_instance.gameObject);
     _instance = null;
 }