//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, March 14, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class EquipEvolutionWin : Window { [SerializeField] Button m_EvolutionBtn; [SerializeField] Button m_CloseButton; [SerializeField] RichText m_TextLvNow; [SerializeField] RichText m_TextAttributes; [SerializeField] RichText m_TextLvNext; [SerializeField] RichText m_TextAttribute2; [SerializeField] RichText m_TextAttributesA; [SerializeField] RichText m_TextAttributesB; [SerializeField] ItemCell m_ItemCell; [SerializeField] GameObject m_AdvancedObj; [SerializeField] GameObject m_FullLevelObj; [SerializeField] RichText m_TextAttributesFull; [SerializeField] RichText m_TextLvFull; #region Built-in EquipStrengthModel strengthModel { get { return ModelCenter.Instance.GetModel(); } } PackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } int equipType; protected override void BindController() { } protected override void AddListeners() { m_CloseButton.AddListener(() => { CloseImmediately(); }); m_EvolutionBtn.AddListener(OnClickEvolutionBtn); } protected override void OnPreOpen() { SetEquipEvolution(); } protected override void OnAfterOpen() { strengthModel.EquipStrngthEvolutionLv += EquipStrngthEvolutionLv; } protected override void OnPreClose() { strengthModel.EquipStrngthEvolutionLv -= EquipStrngthEvolutionLv; } protected override void OnAfterClose() { } #endregion private void OnClickEvolutionBtn() { var isBool = IsCarryOut(); if (isBool) { int equipIndex = EquipPlaceMapConfig.GetServerPlace(strengthModel.SelectLevel, strengthModel.SelectEquipPlace); strengthModel.SendEquipPlusEvolve(equipIndex); } } private void EquipStrngthEvolutionLv() { SetEquipEvolution(); } private void Reinforceable(int advancedLv) { m_AdvancedObj.SetActive(true); var evolve = strengthModel.GetEquipPlusEvolve(strengthModel.SelectEquipPlace, advancedLv); var evolveNext = strengthModel.GetEquipPlusEvolve(strengthModel.SelectEquipPlace, (advancedLv + 1)); m_TextLvNow.text = Language.Get("Z1024", advancedLv); m_TextAttributes.text = evolve.AttrName + "+" + evolve.AttrValue; m_TextLvNext.text = Language.Get("Z1024", advancedLv + 1); m_TextAttribute2.text = evolveNext.AttrName + "+" + evolveNext.AttrValue; ItemCellModel cellModel = new ItemCellModel(evolve.CostItemID, true, (ulong)1); m_ItemCell.Init(cellModel); m_ItemCell.button.SetListener(()=> { ItemTipUtility.Show(evolve.CostItemID); }); string strItemCount = string.Empty; string strEquipLevel = string.Empty; string strNeedItemCount = string.Empty; int itemCount = 0; int equipLv = 0; int equipIndex = EquipPlaceMapConfig.GetServerPlace(strengthModel.SelectLevel, strengthModel.SelectEquipPlace); if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//获取当前强化等级 { equipLv = strengthModel.EquipStrengthDic[equipIndex].StrengthLevel; } itemCount = playerPack.GetItemCountByID(PackType.Item, evolveNext.CostItemID); strNeedItemCount = itemCount + "/" + evolveNext.CostItemCount; if (itemCount >= evolveNext.CostItemCount) { strItemCount = Language.Get("ZBQH_09", evolveNext.CostItemCount); strNeedItemCount = Language.Get("ZBQH_09", strNeedItemCount); } else { strItemCount = Language.Get("ZBQH_10", evolveNext.CostItemCount); strNeedItemCount = Language.Get("ZBQH_10", strNeedItemCount); } if (equipLv >= evolveNext.NeedPlusLV) { strEquipLevel = Language.Get("ZBQH_09", evolveNext.NeedPlusLV); } else { strEquipLevel = Language.Get("ZBQH_10", evolveNext.NeedPlusLV); } m_TextAttributesA.text = Language.Get("ZBQH_05", strEquipLevel); m_TextAttributesB.text = Language.Get("ZBQH_06", strItemCount); m_ItemCell.countText.gameObject.SetActive(true); m_ItemCell.countText.text = strNeedItemCount; } private void FullLevel(int advancedLv) { m_FullLevelObj.SetActive(true); var evolve = strengthModel.GetEquipPlusEvolve(strengthModel.SelectEquipPlace, advancedLv); m_TextLvFull.text = Language.Get("Z1024", advancedLv); m_TextAttributesFull.text = evolve.AttrName + "+" + evolve.AttrValue; } private void SetEquipEvolution() { m_AdvancedObj.SetActive(false); m_FullLevelObj.SetActive(false); int equipLevel = strengthModel.SelectLevel; int equipPlace = strengthModel.SelectEquipPlace; int equipIndex = EquipPlaceMapConfig.GetServerPlace(equipLevel, equipPlace); equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace); int equipLv = 0; int advancedLv = 0; if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//获取当前强化等级 { equipLv = strengthModel.EquipStrengthDic[equipIndex].StrengthLevel; advancedLv = strengthModel.EquipStrengthDic[equipIndex].EvolveLV; } int advancedMaxLv = 0; if (strengthModel.EvolutionTypeMaxDic.ContainsKey(equipType)) { advancedMaxLv = strengthModel.EvolutionTypeMaxDic[equipType]; } if (advancedLv < advancedMaxLv) { Reinforceable(advancedLv); } else { FullLevel(advancedLv); } } private bool IsCarryOut() { int equipLv = 0; int advancedLv = 0; int itemCount = 0; int equipIndex = EquipPlaceMapConfig.GetServerPlace(strengthModel.SelectLevel, strengthModel.SelectEquipPlace); if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//获取当前强化等级 { equipLv = strengthModel.EquipStrengthDic[equipIndex].StrengthLevel; advancedLv = strengthModel.EquipStrengthDic[equipIndex].EvolveLV; } var equipPlusEvolve = strengthModel.GetEquipPlusEvolve(strengthModel.SelectEquipPlace, advancedLv + 1); if (equipPlusEvolve == null) { DebugEx.LogError("没有找到表数据"); return false; } itemCount = playerPack.GetItemCountByID(PackType.Item, equipPlusEvolve.CostItemID); if (equipPlusEvolve.NeedPlusLV > equipLv) { ServerTipDetails.DisplayNormalTip(Language.Get("ZBQH_07")); return false; } if (equipPlusEvolve.CostItemCount > itemCount) { ServerTipDetails.DisplayNormalTip(Language.Get("ZBQH_08")); return false; } return true; } } }