少年修仙传客户端代码仓库
client_Hale
2018-09-20 1a3098212d90ec1fc3e5bb324c445272b34c012b
System/Strengthening/GodBeastAttributes.cs
@@ -35,6 +35,10 @@
        [SerializeField] UIAlphaTween m_UIAlphaTween;
        [SerializeField] Slider m_Slider;
        [SerializeField] GameObject m_Text_two;//下级属性
        [SerializeField] Button m_StrengthenDoubleBtn;//双倍强化按钮
        [SerializeField] Text m_NeedFairy;//所需的仙玉
        DogzModel Dogz_model;
        DogzModel dogz_model { get { return Dogz_model ?? (Dogz_model = ModelCenter.Instance.GetModel<DogzModel>()); } }
        private Dictionary<int, int> QualityLimit = new Dictionary<int, int>();
@@ -57,6 +61,7 @@
        {
            m_DoubleToggle.onValueChanged.AddListener(OnClickToggle);
            m_StrengthenBtn.AddListener(OnClickStrengthBtn);
            m_StrengthenDoubleBtn.AddListener(OnClickStrengthBtn);
        }
        private void OnEnable()
        {
@@ -102,7 +107,7 @@
                ListCount.Add(DicAb[key]);
            }
            if (m_DoubleToggle.isOn)
            {
            {
                dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 1);
            }
            else
@@ -110,11 +115,12 @@
                dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 0);
            }
        }
        private void ChooseToModify(int locationMarker)
        {
            GetGodBeastLocationMarker(locationMarker);
        }
        private void AbsorbEvent()//选中取消的数据刷新
        private void AbsorbEvent()//选中与取消的数据刷新
        {
            GetDogZLevelAndExp();
            AttributeAssignment();
@@ -157,6 +163,11 @@
                m_ExpSlider.ResetStage();
                m_ExpSlider.value = 0;
                m_ExpNum.text = "0/0";
                m_TextAttributes1.gameObject.SetActive(false);
                m_TextAttributes2.gameObject.SetActive(false);
                m_TextAttributesAdd1.gameObject.SetActive(false);
                m_TextAttributesAdd2.gameObject.SetActive(false);
                m_Text_two.SetActive(false);
                m_FrameNull.SetActive(false);
                m_FullLevel.SetActive(false);
            }
@@ -176,36 +187,59 @@
                var DogzEquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, lv);
                if (DogZLv >= lv)
                {
                    m_Text_two.SetActive(false);
                    m_FrameNull.SetActive(false);
                    m_TextAttributes1.gameObject.SetActive(false);
                    m_TextAttributes2.gameObject.SetActive(false);
                    m_TextAttributesAdd1.gameObject.SetActive(false);
                    m_TextAttributesAdd2.gameObject.SetActive(false);
                    m_FullLevel.SetActive(true);
                    GodBeast_Number = GodBeastNumber;
                    GodBeast_Part = GodBeastPart;
                    m_ExpSlider.stage = lv;
                    m_ExpSlider.delay = 0f;
                    m_ExpSlider.ResetStage();
                    m_ExpSlider.value = 1;
                    m_Slider.gameObject.SetActive(false);
                    m_ExpNum.text = DogzEquipConfig.upExpTotal + "/" + DogzEquipConfig.upExpTotal;
                    int NeedExp = DogzEquipConfig.upExpTotal;
                    if (DogZLv > 0)
                    {
                        var Dogz_EquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, DogZLv - 1);
                        NeedExp -= Dogz_EquipConfig.upExpTotal;
                    }
                    m_ExpNum.text = DogZExp + "/" + NeedExp;
                }
                else
                {
                    m_Text_two.SetActive(true);
                    if (m_DoubleToggle.isOn)
                    {
                        m_StrengthenBtn.gameObject.SetActive(false);
                        m_StrengthenDoubleBtn.gameObject.SetActive(true);
                        m_NeedFairy.text = NeedFairyJade.ToString();
                        PropertySetting(DogZExp, DoubleProficiency);
                    }
                    else
                    {
                        m_StrengthenBtn.gameObject.SetActive(true);
                        m_StrengthenDoubleBtn.gameObject.SetActive(false);
                        PropertySetting(DogZExp, SingleProficiency);
                    }
                }
            }
            else
            {
                if (m_DoubleToggle.isOn)
                {
                    m_StrengthenBtn.gameObject.SetActive(false);
                    m_StrengthenDoubleBtn.gameObject.SetActive(true);
                    m_NeedFairy.text = NeedFairyJade.ToString();
                    PropertySetting(0, DoubleProficiency);
                }
                else
                {
                    m_StrengthenBtn.gameObject.SetActive(true);
                    m_StrengthenDoubleBtn.gameObject.SetActive(false);
                    PropertySetting(0, SingleProficiency);
                }
            }
@@ -256,6 +290,12 @@
                m_LvNextText.text = "+" + toLv.ToString();
            }
            var DogzEquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, DogZLv);
            int NeedExp = DogzEquipConfig.upExpTotal;
            if (DogZLv > 0)
            {
                var Dogz_EquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, DogZLv - 1);
                NeedExp -= Dogz_EquipConfig.upExpTotal;
            }
            int[] AttType = ConfigParse.GetMultipleStr<int>(DogzEquipConfig.attType);
            int[] AttValue = ConfigParse.GetMultipleStr<int>(DogzEquipConfig.attValue);
            if (ToExpTotal == 0)
@@ -263,8 +303,9 @@
                m_Slider.gameObject.SetActive(false);
                m_TextAttributesAdd1.gameObject.SetActive(false);
                m_TextAttributesAdd2.gameObject.SetActive(false);
                m_ExpNum.text = DogZExp + "/" + DogzEquipConfig.upExpTotal;
                float value = (float)DogZExp / DogzEquipConfig.upExpTotal;
                m_ExpNum.text = DogZExp + "/" + NeedExp;
                float value = (float)DogZExp / NeedExp;
                SetExperienceBar(DogZLv, value);
                if (AttType.Length > 1)
                {
@@ -285,54 +326,30 @@
            else
            {
                m_Slider.gameObject.SetActive(true);
                if (DogZExp + ToExpTotal >= DogzEquipConfig.upExpTotal)
                if (DogZExp + ToExpTotal >= NeedExp)
                {
                    m_Slider.value = 1f;
                }
                else
                {
                    m_Slider.value = (float)(DogZExp + ToExpTotal) / (float)(DogzEquipConfig.upExpTotal);
                    m_Slider.value = (float)(DogZExp + ToExpTotal) / (float)(NeedExp);
                }
                m_UIAlphaTween.Play();
                var DogzEquipToConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, toLv);
                int[] AttTypeTo = ConfigParse.GetMultipleStr<int>(DogzEquipToConfig.attType);
                int[] AttValueTo = ConfigParse.GetMultipleStr<int>(DogzEquipToConfig.attValue);
                string strColor = string.Format(Language.Get("DogzGreenText"), ToExpTotal);
                m_ExpNum.text = DogZExp + strColor + "/" + DogzEquipConfig.upExpTotal;
                float value= (float)DogZExp / DogzEquipConfig.upExpTotal;
                m_ExpNum.text = DogZExp + strColor + "/" + NeedExp;
                float value = (float)DogZExp / NeedExp;
                SetExperienceBar(DogZLv, value);
                if (AttType.Length > 1)
                {
                    m_TextAttributes1.gameObject.SetActive(true);
                    m_TextAttributes2.gameObject.SetActive(true);
                    m_TextAttributesAdd1.gameObject.SetActive(true);
                    m_TextAttributesAdd2.gameObject.SetActive(true);
                    string StrName1 = Config.Instance.Get<PlayerPropertyConfig>(AttType[0]).Name;
                    string StrName2 = Config.Instance.Get<PlayerPropertyConfig>(AttType[1]).Name;
                    m_TextAttributes1.text = StrName1 + ":" + AttValue[0];
                    m_TextAttributes2.text = StrName2 + ":" + AttValue[1];
                    m_TextAttributesAdd1.text = "+" + (AttValueTo[0] - AttValue[0]);
                    m_TextAttributesAdd2.text = "+" + (AttValueTo[1] - AttValue[1]);
                }
                else
                {
                    m_TextAttributes1.gameObject.SetActive(true);
                    m_TextAttributesAdd1.gameObject.SetActive(true);
                    m_TextAttributes2.gameObject.SetActive(false);
                    m_TextAttributesAdd2.gameObject.SetActive(false);
                    string StrName1 = Config.Instance.Get<PlayerPropertyConfig>(AttType[0]).Name;
                    m_TextAttributes1.text = StrName1 + ":" + AttValue[0];
                    m_TextAttributesAdd1.text = "+" + (AttValueTo[0] - AttValue[0]);
                }
            }
            SetAddAttributes(DogzEquipConfig, GodBeastPart, toLv);//设置预览的属性
            if (ToExpTotal == 0)
            {
                m_StrengthenBtn.interactable = false;
                m_StrengthenDoubleBtn.interactable = false;
            }
            else
            {
                m_StrengthenBtn.interactable = true;
                m_StrengthenDoubleBtn.interactable = true;
            }
        }
@@ -344,6 +361,11 @@
                return DogzLv;
            }
            int lv = QualityLimit[m_DogZItemModel.chinItemModel.ItemColor];
            var IudetDogzEquipPlus = m_DogZItemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);
            if (IudetDogzEquipPlus != null)
            {
                ToExpTotal+= IudetDogzEquipPlus[1];
            }
            for (int i = lv; i >= 0; i--)
            {
                var DogzEquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, i);
@@ -386,14 +408,23 @@
            if (IudetDogzEquipPlus != null)
            {
                DogZLv = IudetDogzEquipPlus[0];
                DogZExp = IudetDogzEquipPlus[1];
                if (DogZLv > 0)
                {
                    var Dogz_EquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, DogZLv - 1);
                    DogZExp = IudetDogzEquipPlus[1] - Dogz_EquipConfig.upExpTotal;
                }
                else
                {
                    DogZExp = IudetDogzEquipPlus[1];
                }
            }
        }
        int GodBeast_Number = 0;
        int GodBeast_Part = 0;
        private void SetExperienceBar(int lv,float value)//设置经验条
        private void SetExperienceBar(int lv, float value)//设置经验条
        {
            if (GodBeast_Number != GodBeastNumber || GodBeast_Part != GodBeastPart)
            {
@@ -411,6 +442,39 @@
                m_ExpSlider.value = value;
            }
        }
        private void SetAddAttributes(DogzEquipPlusConfig DogzEquipConfig, int GodBeastPart, int toLv)//设置预览的属性
        {
            int[] AttType = ConfigParse.GetMultipleStr<int>(DogzEquipConfig.attType);
            int[] AttValue = ConfigParse.GetMultipleStr<int>(DogzEquipConfig.attValue);
            var DogzEquipToConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(GodBeastPart, toLv);
            int[] AttTypeTo = ConfigParse.GetMultipleStr<int>(DogzEquipToConfig.attType);
            int[] AttValueTo = ConfigParse.GetMultipleStr<int>(DogzEquipToConfig.attValue);
            if (AttType.Length > 1)
            {
                m_TextAttributes1.gameObject.SetActive(true);
                m_TextAttributes2.gameObject.SetActive(true);
                m_TextAttributesAdd1.gameObject.SetActive(true);
                m_TextAttributesAdd2.gameObject.SetActive(true);
                string StrName1 = Config.Instance.Get<PlayerPropertyConfig>(AttType[0]).Name;
                string StrName2 = Config.Instance.Get<PlayerPropertyConfig>(AttType[1]).Name;
                m_TextAttributes1.text = StrName1 + ":" + AttValue[0];
                m_TextAttributes2.text = StrName2 + ":" + AttValue[1];
                m_TextAttributesAdd1.text = "+" + (AttValueTo[0] - AttValue[0]);
                m_TextAttributesAdd2.text = "+" + (AttValueTo[1] - AttValue[1]);
            }
            else
            {
                m_TextAttributes1.gameObject.SetActive(true);
                m_TextAttributesAdd1.gameObject.SetActive(true);
                m_TextAttributes2.gameObject.SetActive(false);
                m_TextAttributesAdd2.gameObject.SetActive(false);
                string StrName1 = Config.Instance.Get<PlayerPropertyConfig>(AttType[0]).Name;
                m_TextAttributes1.text = StrName1 + ":" + AttValue[0];
                m_TextAttributesAdd1.text = "+" + (AttValueTo[0] - AttValue[0]);
            }
        }
    }
}