示例#1
0
        public void Initialize(DataEquipParam _data, MasterEquipParam _master)
        {
            Clear();
            m_txtEquipName.text = _master != null ? _master.equip_name : "なし";
            if (_master == null)
            {
                return;
            }

            FieldInfo[] infoArr = new StatusParam().GetType().GetFields();
            foreach (FieldInfo info in infoArr)
            {
                FieldInfo master_info = _master.GetType().GetField(info.Name);
                if (master_info != null)
                {
                    int iParam = (int)master_info.GetValue(_master);
                    if (0 != iParam)
                    {
                        string strMessage = "";
                        if (0 < iParam)
                        {
                            strMessage = $"{info.Name}<color=blue>+{iParam}</color>";
                        }
                        else if (iParam < 0)
                        {
                            strMessage = $"{info.Name}<color=red>-{iParam}</color>";
                        }
                        GameObject go = Instantiate(m_prefParamHolder, m_goHolderRoot.transform) as GameObject;
                        go.GetComponent <TextMeshProUGUI>().text = strMessage;
                        go.SetActive(true);
                        m_goParamHolderList.Add(go);
                    }
                }
            }
        }
示例#2
0
        public void Initialize(DataUnitParam _dataUnit, List <MasterEquipParam> _masterList, List <DataEquipParam> _dataList)
        {
            MasterUnitParam masterUnit = DataManager.Instance.m_masterUnit.list.Find(p => p.unit_id == _dataUnit.unit_id);

            m_imgUnitFront.enabled = true;
            m_imgUnitFront.sprite  = masterUnit.so_unit_data.unit_front;

            DataEquipParam dataEquip1 = _dataList.Find(p => p.equip_serial == _dataUnit.equip1);
            DataEquipParam dataEquip2 = _dataList.Find(p => p.equip_serial == _dataUnit.equip2);
            DataEquipParam dataEquip3 = _dataList.Find(p => p.equip_serial == _dataUnit.equip3);
            DataEquipParam dataEquip4 = _dataList.Find(p => p.equip_serial == _dataUnit.equip4);
            DataEquipParam dataEquip5 = _dataList.Find(p => p.equip_serial == _dataUnit.equip5);
            DataEquipParam dataEquip6 = _dataList.Find(p => p.equip_serial == _dataUnit.equip6);

            MasterEquipParam masterEquip1 = dataEquip1 == null ? null : _masterList.Find(p => p.equip_id == dataEquip1.equip_id);
            MasterEquipParam masterEquip2 = dataEquip2 == null ? null : _masterList.Find(p => p.equip_id == dataEquip2.equip_id);
            MasterEquipParam masterEquip3 = dataEquip3 == null ? null : _masterList.Find(p => p.equip_id == dataEquip3.equip_id);
            MasterEquipParam masterEquip4 = dataEquip4 == null ? null : _masterList.Find(p => p.equip_id == dataEquip4.equip_id);
            MasterEquipParam masterEquip5 = dataEquip5 == null ? null : _masterList.Find(p => p.equip_id == dataEquip5.equip_id);
            MasterEquipParam masterEquip6 = dataEquip6 == null ? null : _masterList.Find(p => p.equip_id == dataEquip6.equip_id);

            equip1.Initialize(masterEquip1, dataEquip1, 1);
            equip2.Initialize(masterEquip2, dataEquip2, 2);
            equip3.Initialize(masterEquip3, dataEquip3, 3);
            equip4.Initialize(masterEquip4, dataEquip4, 4);
            equip5.Initialize(masterEquip5, dataEquip5, 5);
            equip6.Initialize(masterEquip6, dataEquip6, 6);
        }
示例#3
0
        public void RefreshAssist(List <MasterEquipParam> _master_list, List <DataEquipParam> _data_list)
        {
            int[] equip_arr = new int[]
            {
                equip1,
                equip2,
                equip3,
                equip4,
                equip5,
                equip6,
            };
            assist_param = new StatusParam();

            foreach (int equip_serial in equip_arr)
            {
                DataEquipParam   data  = _data_list.Find(p => p.equip_serial == equip_serial);
                MasterEquipParam equip = data == null ? null : _master_list.Find(p => p.equip_id == data.equip_id);
                if (equip != null)
                {
                    FieldInfo[] infoArr = assist_param.GetType().GetFields();
                    foreach (FieldInfo info in infoArr)
                    {
                        FieldInfo master_info  = equip.GetType().GetField(info.Name);
                        FieldInfo assist_info  = assist_param.GetType().GetField(info.Name);
                        int       iMasterParam = (int)master_info.GetValue(equip);
                        int       iAssistParam = (int)assist_info.GetValue(assist_param);
                        assist_info.SetValue(assist_param, iMasterParam + iAssistParam);
                    }
                }
            }
        }
示例#4
0
        public int Add(MasterEquipParam _master)
        {
            DataEquipParam data = new DataEquipParam();

            data.equip_id     = _master.equip_id;
            data.equip_serial = getNewSerial();
            data.equip_unit   = 0;
            list.Add(data);
            return(data.equip_serial);
        }
示例#5
0
        public void ShowEquip()
        {
            RPGKitUtil.DeleteObjects <EquipBanner>(m_tfRootBanner.gameObject);
            RPGKitUtil.DeleteObjects <BannerItem>(m_tfRootBanner.gameObject);
            m_itemBannerList.Clear();

            List <DataEquipParam> type_list = DataManager.Instance.m_dataEquip.list;

            foreach (DataEquipParam data in type_list)
            {
                EquipBanner banner = Instantiate(m_prefBannerEquip, m_tfRootBanner).GetComponent <EquipBanner>();
                banner.gameObject.SetActive(true);

                MasterEquipParam master = DataManager.Instance.m_masterEquip.list.Find(p => p.equip_id == data.equip_id);
                banner.Initialize(master, data);
            }
        }
示例#6
0
        public void Show(List <DataEquipParam> _list, string _strEquipType)
        {
            List <DataEquipParam> type_list = _list.FindAll(p => p.equip_type == _strEquipType);

            foreach (DataEquipParam data in type_list)
            {
                EquipBanner banner = Instantiate(m_prefBanner, m_tfBannerRoot).GetComponent <EquipBanner>();
                banner.gameObject.SetActive(true);

                MasterEquipParam master = DataManager.Instance.m_masterEquip.list.Find(p => p.equip_id == data.equip_id);
                banner.Initialize(master, data);
                banner.OnclickDataEquip.AddListener((value) =>
                {
                    OnDataEquip.Invoke(value);

                    foreach (EquipBanner b in m_equipBannerList)
                    {
                        b.Select(b.dataEquipParam == value);
                    }
                });
                m_equipBannerList.Add(banner);
            }
        }
示例#7
0
        public void Initialize(MasterEquipParam _equip, DataEquipParam _dataEquip, int _iIndex)
        {
            m_masterEquipParam = _equip;
            m_dataEquipParam   = _dataEquip;

            if (m_goEquipUnitRoot != null)
            {
                if (0 < m_dataEquipParam.equip_unit)
                {
                    m_goEquipUnitRoot.SetActive(true);

                    MasterUnitParam master_unit = DataManager.Instance.m_masterUnit.list.Find(p => p.unit_id == m_dataEquipParam.equip_unit);
                    m_imgEquipUnit.sprite = master_unit.so_unit_data.face_icon;
                }
                else
                {
                    m_goEquipUnitRoot.SetActive(false);
                }
            }



            m_iEquipIndex = _iIndex;
            if (m_imgIcon != null)
            {
                m_imgIcon.sprite = _equip != null ? _equip.so_equip.icon : null;
            }
            if (m_txtName != null)
            {
                m_txtName.text = _equip != null ? _equip.equip_name : "なし";
            }
            if (m_txtDesc != null)
            {
                m_txtDesc.text = "";
            }
        }
示例#8
0
 public void Initialize(MasterEquipParam _masterEquip, DataEquipParam _dataEquip)
 {
     Initialize(_masterEquip, _dataEquip, 0);
 }
示例#9
0
        private void Awake()
        {
            m_btnRemove.onClick.AddListener(() =>
            {
                FieldInfo fieldEquipSerial = m_dataUnitSelected.GetType().GetField($"equip{m_iSelectingEquipIndex}");

                int equip_serial = (int)fieldEquipSerial.GetValue(m_dataUnitSelected);
                if (0 < equip_serial)
                {
                    DataEquipParam data_equip = DataManager.Instance.m_dataEquip.list.Find(p => p.equip_serial == equip_serial);
                    data_equip.equip_unit     = 0;

                    foreach (EquipBanner banner in m_equipList.m_equipBannerList)
                    {
                        if (banner.dataEquipParam.equip_serial == equip_serial)
                        {
                            // 少し楽してます
                            banner.m_goEquipUnitRoot.SetActive(false);
                        }
                    }
                }

                fieldEquipSerial.SetValue(m_dataUnitSelected, 0);

                m_equipInfoCurrent.Clear();
                ResetStatusView();
            });

            // 装備するボタン
            m_btnSet.onClick.AddListener(() =>
            {
                m_btnSet.interactable = false;

                FieldInfo fieldEquipSerial = m_dataUnitSelected.GetType().GetField($"equip{m_iSelectingEquipIndex}");

                int tempEquipSerial = (int)fieldEquipSerial.GetValue(m_dataUnitSelected);
                if (0 < tempEquipSerial && m_dataEquipCurrent != null)
                {
                    foreach (EquipBanner banner in m_equipList.m_equipBannerList)
                    {
                        if (banner.dataEquipParam.equip_serial == m_dataEquipCurrent.equip_serial)
                        {
                            banner.HideIcon();
                        }
                    }
                    m_dataEquipCurrent.equip_unit = 0;
                }
                fieldEquipSerial.SetValue(m_dataUnitSelected, m_dataEquipChange.equip_serial);
                m_dataEquipCurrent = m_dataEquipChange;
                m_dataEquipChange  = null;

                m_dataEquipCurrent.equip_unit = m_dataUnitSelected.unit_id;
                foreach (EquipBanner banner in m_equipList.m_equipBannerList)
                {
                    if (banner.dataEquipParam.equip_serial == m_dataEquipCurrent.equip_serial)
                    {
                        // 少し楽してます
                        banner.ShowIcon(m_dataUnitSelected);
                    }
                }

                MasterEquipParam master_equip = DataManager.Instance.m_masterEquip.list.Find(p => p.equip_id == m_dataEquipCurrent.equip_id);
                m_equipInfoCurrent.Initialize(m_dataEquipChange, master_equip);
                m_equipInfoChange.Clear();
                ResetStatusView();
            });
            m_btnReturn.onClick.AddListener(() => UIAssistant.Instance.ShowParentPage());

            #region Event Unit Icon
            foreach (EquipUnitIcon icon in m_equipUnitIconList)
            {
                icon.GetComponent <Button>().onClick.AddListener(() =>
                {
                    m_btnRemove.interactable = false;
                    m_btnSet.interactable    = false;
                    m_dataUnitSelected       = DataManager.Instance.m_dataUnit.list
                                               .Find(p => p.unit_id == icon.m_masterUnitParam.unit_id);

                    m_masterUnitSelected = DataManager.Instance.m_masterUnit.list.Find(p => p.unit_id == m_dataUnitSelected.unit_id);

                    ResetStatusView();
                    m_equipList.Clear();

                    foreach (EquipUnitIcon in_icon in m_equipUnitIconList)
                    {
                        in_icon.Select(icon.m_masterUnitParam);
                    }
                    m_equipUnitView.Select(0);
                });
            }
            #endregion

            #region 装備中のアイコンとか
            m_equipUnitView.OnClickEquipIndex.AddListener((value) =>
            {
                m_iSelectingEquipIndex = value;
                m_btnSet.interactable  = false;
                m_equipUnitView.Select(value);
                if (0 < value)
                {
                    FieldInfo fieldEquipType = m_masterUnitSelected.GetType().GetField($"equip_type{value}");
                    string equip_type        = fieldEquipType.GetValue(m_masterUnitSelected).ToString();

                    FieldInfo fieldEquipSerial        = m_dataUnitSelected.GetType().GetField($"equip{value}");
                    int equip_serial                  = (int)fieldEquipSerial.GetValue(m_dataUnitSelected);
                    m_dataEquipCurrent                = DataManager.Instance.m_dataEquip.list.Find(p => p.equip_serial == equip_serial);
                    MasterEquipParam masterEquipParam = null;
                    if (m_dataEquipCurrent != null)
                    {
                        masterEquipParam = DataManager.Instance.m_masterEquip.list.Find(p => p.equip_id == m_dataEquipCurrent.equip_id);
                    }
                    m_equipInfoCurrent.Initialize(m_dataEquipCurrent, masterEquipParam);
                    m_equipInfoChange.Clear();

                    ResetStatusView();

                    m_btnRemove.interactable = m_dataEquipCurrent != null;

                    m_equipList.Clear();
                    m_equipList.Show(DataManager.Instance.m_dataEquip.list, equip_type);
                }
            });
            #endregion

            // 装備するためのリスト
            m_equipList.OnDataEquip.AddListener((data) =>
            {
                m_equipInfoChange.Clear();
                m_dataEquipChange       = data;
                MasterEquipParam master = null;
                if (m_dataEquipChange != null)
                {
                    master = DataManager.Instance.m_masterEquip.list.Find(p => p.equip_id == m_dataEquipChange.equip_id);
                }

                // ダミーの装備を変更
                FieldInfo equipPosition = m_dummyUnit.GetType().GetField($"equip{m_iSelectingEquipIndex}");
                equipPosition.SetValue(m_dummyUnit, data.equip_serial);
                m_dummyUnit.RefreshAssist(DataManager.Instance.m_masterEquip.list, DataManager.Instance.m_dataEquip.list);
                m_equipStatusView.Initialize(m_dataUnitSelected, m_dummyUnit);

                if (data.equip_unit != 0 && data.equip_unit != m_dataUnitSelected.unit_id)
                {
                    m_btnSet.interactable = false;
                }
                else
                {
                    m_btnSet.interactable = true;
                }

                m_equipInfoChange.Initialize(m_dataEquipChange, master);
            });
        }