Пример #1
0
        private IEnumerator buy()
        {
            m_goList.SetActive(true);
            m_goDetail.SetActive(false);
            m_goPrompt.SetActive(false);
            for (int i = 0; i < m_shopItemButtonArr.Length; i++)
            {
                if (i < m_itemLineup.Length)
                {
                    m_shopItemButtonArr[i].gameObject.SetActive(true);

                    int item_id = m_itemLineup[i].item_id;

                    m_shopItemButtonArr[i].m_txtName.text  = m_itemLineup[i].name;
                    m_shopItemButtonArr[i].m_txtPrice.text = m_itemLineup[i].price.ToString();
                    m_shopItemButtonArr[i].m_btn.onClick.AddListener(() =>
                    {
                        MasterItemParam master = DataManager.Instance.master_item.list.Find(p => p.item_id == item_id);
                        show_detail(master);
                        show_buy_prompt(master);
                    });
                }
                else
                {
                    m_shopItemButtonArr[i].gameObject.SetActive(false);
                }
            }
            yield return(null);
        }
Пример #2
0
        private IEnumerator sell(List <DataItemParam> _list)
        {
            m_goList.SetActive(true);
            m_goDetail.SetActive(false);
            m_goPrompt.SetActive(false);

            for (int i = 0; i < m_shopItemButtonArr.Length; i++)
            {
                if (i < _list.Count)
                {
                    m_shopItemButtonArr[i].gameObject.SetActive(true);

                    int           item_id = _list[i].item_id;
                    DataItemParam data    = _list[i];

                    MasterItemParam master = DataManager.Instance.master_item.list.Find(p => p.item_id == item_id);

                    m_shopItemButtonArr[i].m_txtName.text  = master.name;
                    m_shopItemButtonArr[i].m_txtPrice.text = master.price.ToString();
                    m_shopItemButtonArr[i].m_btn.onClick.AddListener(() =>
                    {
                        show_detail(master);
                        show_sell_prompt(master, data);
                    });
                }
                else
                {
                    m_shopItemButtonArr[i].gameObject.SetActive(false);
                }
            }
            yield return(null);
        }
Пример #3
0
        private void show_buy_prompt(MasterItemParam _master)
        {
            m_goPrompt.SetActive(true);
            m_btnPromptYes.onClick.RemoveAllListeners();
            m_btnPromptYes.onClick.AddListener(() =>
            {
                m_goPrompt.SetActive(false);

                //DataManager.Instance.gold -= _master.price;
                if (_master.category == "equip")
                {
                    DataItemParam new_item = new DataItemParam();
                    new_item.item_id       = _master.item_id;
                    DataManager.Instance.data_item_equip.AddItem(new_item);
                }
                else
                {
                    DataItemParam new_item = new DataItemParam();
                    new_item.item_id       = _master.item_id;
                    DataManager.Instance.data_item_consume.AddItem(new_item);
                }
                DataManager.Instance.gold -= _master.price;
                m_txtGold.text             = string.Format("{0}g", DataManager.Instance.gold);
            });

            if (_master.price <= DataManager.Instance.gold)
            {
                m_txtPrompt.text            = string.Format("{0}で購入しますか", _master.price);
                m_btnPromptYes.interactable = true;
                m_btnPromptNo.interactable  = true;
            }
            else
            {
                m_txtPrompt.text            = string.Format("<color=red>ゴールドが不足しています</color>");
                m_btnPromptYes.interactable = false;
                m_btnPromptNo.interactable  = true;
            }

            //DataManager.Instance.gold -= _master.price;

            bool bHasLimit;

            if (_master.category == "equip")
            {
                bHasLimit = DataManager.Instance.data_item_equip.list.Count < item_limit;
                if (bHasLimit == false)
                {
                    m_txtPrompt.text = string.Format("<color=red>装備が持ちきれません</color>");
                }
            }
            else
            {
                bHasLimit = DataManager.Instance.data_item_consume.list.Count < item_limit;
                if (bHasLimit == false)
                {
                    m_txtPrompt.text = string.Format("<color=red>アイテムが持ちきれません</color>");
                }
            }
            m_btnPromptYes.interactable = bHasLimit;
        }
Пример #4
0
        private void show_sell_prompt(MasterItemParam _master, DataItemParam _data)
        {
            m_goPrompt.SetActive(true);
            m_btnPromptYes.onClick.RemoveAllListeners();
            m_btnPromptYes.onClick.AddListener(() =>
            {
                m_goPrompt.SetActive(false);

                //DataManager.Instance.gold -= _master.price;
                if (_master.category == "equip")
                {
                    DataManager.Instance.data_item_equip.list.Remove(_data);
                }
                else
                {
                    DataManager.Instance.data_item_consume.list.Remove(_data);
                }
                DataManager.Instance.gold += _master.sell_price;
                m_txtGold.text             = string.Format("{0}g", DataManager.Instance.gold);
            });

            m_txtPrompt.text            = string.Format("{0}で売却しますか", _master.sell_price);
            m_btnPromptYes.interactable = true;
            m_btnPromptNo.interactable  = true;
        }
Пример #5
0
        private void OnEnable()
        {
            if (m_iSelectingItemSerial.Value == 0)
            {
                return;
            }
            m_dataItemParam   = DataManager.Instance.m_dataItem.list.Find(p => p.item_serial == m_iSelectingItemSerial.Value);
            m_masterItemParam = DataManager.Instance.m_masterItem.list.Find(p => p.item_id == m_dataItemParam.item_id);

            m_headerBanner.Initialize(m_dataItemParam);

            m_btnUse.gameObject.SetActive(m_masterItemParam.field);

            m_txtDescription.text = m_masterItemParam.description;

            // 味方全体の場合はいきなり使うボタンが押せる
            if (m_masterItemParam.item_target == "friendall")
            {
                m_btnUse.interactable = true;
            }
            else if (m_masterItemParam.item_target == "friendone")
            {
                m_btnUse.interactable = false;
                m_fieldMenu.OnDataUnitParam.AddListener(SelectCardUnit);
            }
            else
            {
                Debug.LogError($"okashi_item_target:{m_masterItemParam.item_target}");
            }
        }
Пример #6
0
        public void Initialize(DataItemParam _param)
        {
            m_dataItemParam = _param;
            MasterItemParam master = DataManager.Instance.m_masterItem.list
                                     .Find((p => p.item_id == _param.item_id));

            Initialize(master);
        }
Пример #7
0
        public void AddItem(MasterItemParam _master)
        {
            DataItemParam item = new DataItemParam();

            item.item_id     = _master.item_id;
            item.item_serial = GetNewSerial();
            list.Add(item);
        }
Пример #8
0
 public void Initialize(MasterItemParam _master)
 {
     m_masterItemParam  = _master;
     m_txtItemName.text = _master.item_name;
     if (_master.so_item != null)
     {
         m_imgIcon.sprite = _master.so_item.icon;
     }
 }
Пример #9
0
        public MasterItemParam GetItem()
        {
            MasterItemParam master = DataManager.Instance.m_masterItem.list
                                     .Find(p => p.item_id == item_id);

            if (master != null)
            {
                DataManager.Instance.m_dataItem.AddItem(master);
            }
            return(master);
        }
Пример #10
0
        public void Begin(int[] _lineup, Action _onFinished)
        {
            open();

            int lineup_num = 0;

            foreach (int item_id in _lineup)
            {
                if (item_id != 0)
                {
                    lineup_num += 1;
                }
            }

            m_itemLineup = new MasterItemParam[lineup_num];
            for (int i = 0; i < lineup_num; i++)
            {
                MasterItemParam master = DataManager.Instance.master_item.list.Find(p => p.item_id == _lineup[i]);
                //Debug.Log(master);
                //Debug.Log(master.name);
                m_itemLineup[i] = master;
            }

            m_btnBuy.onClick.RemoveAllListeners();
            m_btnSellItem.onClick.RemoveAllListeners();
            m_btnSellEquip.onClick.RemoveAllListeners();

            m_btnBuy.onClick.AddListener(() =>
            {
                StartCoroutine(buy());
            });
            m_btnSellItem.onClick.AddListener(() =>
            {
                StartCoroutine(sell(DataManager.Instance.data_item_consume.list));
            });
            m_btnSellEquip.onClick.AddListener(() =>
            {
                StartCoroutine(sell(DataManager.Instance.data_item_equip.list));
            });

            m_btnExit.onClick.RemoveAllListeners();
            m_btnExit.onClick.AddListener(() =>
            {
                close();
                _onFinished.Invoke();
            });
        }
Пример #11
0
        private void clear_items()
        {
            if (item_list != null)
            {
                foreach (MenuItemsButton btn in item_list)
                {
                    Destroy(btn.gameObject);
                }
                item_list.Clear();
            }
            item_list = new List <MenuItemsButton>();
            for (int i = 0; i < 10; i++)
            {
                GameObject inst = Instantiate(
                    m_prefItemButton,
                    m_rootItemList.transform);
                inst.SetActive(true);
                MenuItemsButton script = inst.GetComponent <MenuItemsButton>();

                if (i < DataManager.Instance.data_item_consume.list.Count)
                {
                    DataItemParam   data   = DataManager.Instance.data_item_consume.list[i];
                    MasterItemParam master = DataManager.Instance.master_item.list.Find(p => p.item_id == DataManager.Instance.data_item_consume.list[i].item_id);
                    script.m_txtName.text = master.name;
                    script.m_btn.onClick.AddListener(() =>
                    {
                        m_iSelectedItemSerial = data.item_serial;
                        OnUpdate = select_chara;

                        es.SetSelectedGameObject(null);
                        m_btnDiscard.interactable = true;

                        foreach (CharaSlot cs in chara_slot_list)
                        {
                            cs.m_btn.interactable = true;
                        }
                    });
                }
                else
                {
                    script.m_txtName.text = "";
                }
                item_list.Add(script);
            }
        }
Пример #12
0
        public void top(bool _bInit)
        {
            if (_bInit)
            {
                m_btnUse.interactable     = false;
                m_btnDiscard.interactable = false;

                m_btnUse.onClick.AddListener(() =>
                {
                    DataItemParam data_item     = DataManager.Instance.data_item_consume.list.Find(p => p.item_serial == m_iSelectedItemSerial);
                    MasterItemParam master_item = DataManager.Instance.master_item.list.Find(p => p.item_id == data_item.item_id);

                    Debug.Log(string.Format("{0}を使った", master_item.name));

                    DataManager.Instance.data_item_consume.list.Remove(data_item);

                    clear_items();
                    clear_charaslot();
                });
                m_btnDiscard.onClick.AddListener(() =>
                {
                    Debug.Log(m_iSelectedItemSerial);
                    DataItemParam data_item     = DataManager.Instance.data_item_consume.list.Find(p => p.item_serial == m_iSelectedItemSerial);
                    MasterItemParam master_item = DataManager.Instance.master_item.list.Find(p => p.item_id == data_item.item_id);

                    Debug.Log(string.Format("{0}を捨てた", master_item.name));

                    DataManager.Instance.data_item_consume.list.Remove(data_item);
                    clear_items();
                    clear_charaslot();
                });



                m_prefItemButton.SetActive(false);
                clear_items();


                // CharaSlot
                m_prefCharaSlot.SetActive(false);
                clear_charaslot();
            }
        }
Пример #13
0
 private void show_detail(MasterItemParam _master)
 {
     m_goDetail.SetActive(true);
     m_shopItemDetail.m_txtName.text        = _master.name;
     m_shopItemDetail.m_txtDescription.text = _master.description;
 }