using UnityEngine; using UnityEngine.UI; using System.Collections; using Games.Item; using System.Collections.Generic; using GCGame.Table; public class EquipEnhanceXilian : UIControllerBase { // Use this for initialization void OnEnable () { _TagPanel.ShowPage(0); OnXilianPage(0); SetInstance(this); GUIData.delMoneyChanged += UpdateOwnMoney; } void OnDisable() { SetInstance(null); GUIData.delMoneyChanged -= UpdateOwnMoney; } public void UpdateEquip() { //OnXilianPage(_TagPanel.GetShowingPage()); //RefreshUpdateInfos(); if (_CitiaoEquipItem.gameObject.activeInHierarchy) { OnSelectEquipXilian1(_SelectedEquip); } else if (_BaseXilianAttrs.gameObject.activeInHierarchy) { UpdateXilian2(); } else { OnSelectEquipXilian3(_SelectedEquip); } } public void RefreshUpdateInfos() { if (!_EquipEnhanceRoot.RefreshItems()) { _EquipEnhanceRoot.InitAllEquipList(); List equipQuality; // 对于词条置换,不加入白色,绿色,蓝色装备 if (_TagPanel.GetShowingPage() == 2) { equipQuality = _EquipEnhanceRoot._AllEquipList.FindAll((equipItem) => { if (equipItem.GetQuality() == ItemQuality.QUALITY_WHITE) return false; if (equipItem.GetQuality() == ItemQuality.QUALITY_GREEN) return false; if (equipItem.GetQuality() == ItemQuality.QUALITY_BLUE) return false; return true; }); } // 对于词条洗练、基础洗练,不加入白色,绿色,蓝色装备 else { equipQuality = _EquipEnhanceRoot._AllEquipList.FindAll((equipItem) => { if (equipItem.GetQuality() == ItemQuality.QUALITY_WHITE) return false; if (equipItem.GetQuality() == ItemQuality.QUALITY_GREEN) return false; return true; }); } List selectedItem = new List(); selectedItem.Add(_SelectedEquip); _EquipEnhanceRoot._EquipContainer.InitSelectContent(equipQuality, selectedItem, OnSelectEquipXilian); } } public EquipEnhanceRoot _EquipEnhanceRoot; #region page public UITagPanel _TagPanel; public void OnXilianPage(int page) { // 每次开始显示,激活装备容器 _EquipEnhanceRoot._EquipContainer.gameObject.SetActive(true); // 初始化装备列表 _EquipEnhanceRoot.InitAllEquipList(); _EquipEnhanceRoot._EquipContainer._IsMultiSelect = false; if (_EquipEnhanceRoot._AllEquipList.Count == 0) { _EquipEnhanceRoot._EquipContainer.InitSelectContent(_EquipEnhanceRoot._AllEquipList, null); OnSelectEquipXilian1(null); OnSelectEquipXilian2(null); OnSelectEquipXilian3(null); return; } List equipQuality; // 对于词条置换,不加入白色,绿色,蓝色装备 if (page == 2) { equipQuality = _EquipEnhanceRoot._AllEquipList.FindAll((equipItem) => { if (equipItem.GetQuality() == ItemQuality.QUALITY_WHITE) return false; if (equipItem.GetQuality() == ItemQuality.QUALITY_GREEN) return false; if (equipItem.GetQuality() == ItemQuality.QUALITY_BLUE) return false; return true; }); } // 对于词条洗练、基础洗练,不加入白色,绿色,蓝色装备 else { equipQuality = _EquipEnhanceRoot._AllEquipList.FindAll((equipItem) => { if (equipItem.GetQuality() == ItemQuality.QUALITY_WHITE) return false; if (equipItem.GetQuality() == ItemQuality.QUALITY_GREEN) return false; return true; }); } if (equipQuality.Count == 0) { _EquipEnhanceRoot._EquipContainer.InitSelectContent(equipQuality, null); OnSelectEquipXilian1(null); OnSelectEquipXilian2(null); OnSelectEquipXilian3(null); return; } var lastSelects = _EquipEnhanceRoot._EquipContainer.GetSelecteds(); List selectedItem = new List(); if (EquipEnhanceRoot._DefaultSelectedItem != null && equipQuality.Contains(EquipEnhanceRoot._DefaultSelectedItem) && EquipEnhanceRoot._DefaultSelectedPage == 0) { selectedItem.Add(EquipEnhanceRoot._DefaultSelectedItem); EquipEnhanceRoot._DefaultSelectedPage = -1; EquipEnhanceRoot._DefaultSelectedItem = null; } else if(lastSelects != null) { for(int i = 0; i < lastSelects.Count; i++) { if(equipQuality.Contains(lastSelects[i])) { selectedItem.Add(lastSelects[i]); break; } } } if(selectedItem.Count == 0) { selectedItem.Add(equipQuality[0]); } _BaseXilianMoneyReplace.isOn = false; Hashtable hash = new Hashtable(); hash.Add("XiLianTips", true); _EquipEnhanceRoot._EquipContainer.InitSelectContent(equipQuality, selectedItem, OnSelectEquipXilian, null, hash); } public void OnSelectEquipXilian(object equipObj) { switch (_TagPanel.GetShowingPage()) { case 0: OnSelectEquipXilian1(equipObj); break; case 1: OnSelectEquipXilian2(equipObj); break; case 2: OnSelectEquipXilian3(equipObj); break; } } #region 词条洗练 public CommonItemEquipItem _CitiaoEquipItem; public CommonItemMaterialSlot _CitiaoMaterialSlot; private GameItem _SelectedEquip; public void OnSelectEquipXilian1(object equipObj) { GameItem equipItem = equipObj as GameItem; if (equipItem == null) { _SelectedEquip = null; _CitiaoEquipItem.InitItem(null); _CitiaoMaterialSlot.InitMaterial(-1, -1); return; } _SelectedEquip = equipItem; _CitiaoEquipItem.InitItem(_SelectedEquip); var consumeTabs = TableManager.GetEquipPropBarBaptizeConsume().Values; int equipLevel = equipItem.GetMinLevelRequire(); int equipQuality = (int)equipItem.GetQuality(); foreach (var consumeTab in consumeTabs) { if (consumeTab.MaxLevel >= equipLevel && consumeTab.Quality == equipQuality) { if (consumeTab.ConsumeSubType > 0 && consumeTab.ConsumeNum > 0) { _CitiaoMaterialSlot.InitMaterial(consumeTab.ConsumeSubType, consumeTab.ConsumeNum); } else { _CitiaoMaterialSlot.InitMaterial(-1, -1); } break; } } } public void OnBtnXilian() { if (_SelectedEquip == null) { GUIData.AddNotifyData("#{5383}"); return; } if (_CitiaoMaterialSlot._ItemDataID < 0 || _CitiaoMaterialSlot.NeedNum <= 0) { GUIData.AddNotifyData("#{5437}"); return; } EquipXilianRoot.Show(_SelectedEquip, false); } public void OnBtnAutoXilian() { if (_SelectedEquip == null) { GUIData.AddNotifyData("#{5383}"); return; } if (_CitiaoMaterialSlot._ItemDataID < 0 || _CitiaoMaterialSlot.NeedNum <= 0) { GUIData.AddNotifyData("#{5437}"); return; } EquipXilianRoot.Show(_SelectedEquip, true); } #endregion #region 基础洗练 //基础洗练 public UIContainerBase _BaseXilianAttrs; public GameObject _MaterialPanel; public GameObject _YuanbaoPanel; public CommonItemMaterialSlot _BaseXilianMaterialSlot; public UICurrencyItem _MoneyCost; public UICurrencyItem _MoneyOwn; public Toggle _BaseXilianMoneyReplace; private bool _UpdateEffect = false; private Tab_EquipBasicBaptizeConsume _TabBasicConsume; public void OnSelectEquipXilian2(object equipObj) { _BaseXilianMoneyReplace.isOn = false; GameItem equipItem = equipObj as GameItem; if (equipItem == null) { _SelectedEquip = null; _BaseXilianAttrs.InitContentItem(null); _BaseXilianMaterialSlot.InitMaterial(-1, -1); _MoneyCost.ShowCurrency(MONEYTYPE.MONEYTYPE_COIN, 0); _MoneyOwn.ShowOwnCurrency(MONEYTYPE.MONEYTYPE_COIN); return; } _SelectedEquip = equipItem; _BaseXilianAttrs.InitContentItem(_SelectedEquip.BaseAttrs); //_BaseXilianMaterialSlot.InitMaterial(56503, 5); _MoneyCost.ShowCurrency(MONEYTYPE.MONEYTYPE_COIN, 0); _MoneyOwn.ShowOwnCurrency(MONEYTYPE.MONEYTYPE_COIN); var consumeTabs = TableManager.GetEquipBasicBaptizeConsume().Values; int equipLevel = equipItem.GetMinLevelRequire(); int equipQuality = (int)equipItem.GetQuality(); foreach (var consumeTab in consumeTabs) { if (consumeTab.MaxLevel >= equipLevel && consumeTab.Quality == equipQuality) { _TabBasicConsume = consumeTab; _BaseXilianMaterialSlot.InitMaterial(consumeTab.ConsumeSubType, consumeTab.ConsumeNum); break; } } UpdateCost(); } public void UpdateOwnMoney() { if(_MoneyOwn.isActiveAndEnabled) _MoneyOwn.ShowOwnCurrency(MONEYTYPE.MONEYTYPE_YUANBAO); } public void UpdateXilian2() { Hashtable hash = new Hashtable(); if (_UpdateEffect) { hash.Add("PlayEffect", true); _UpdateEffect = false; } _BaseXilianAttrs.InitContentItem(_SelectedEquip.BaseAttrs, null, hash); UpdateCost(); } public void UpdateCost() { if (_TabBasicConsume != null) { _BaseXilianMaterialSlot.InitMaterial(_TabBasicConsume.ConsumeSubType, _TabBasicConsume.ConsumeNum); if (!_BaseXilianMaterialSlot.IsMaterialEnough() && _BaseXilianMoneyReplace.isOn) { bool materialInShop = false; var shopItems = TableManager.GetYuanBaoShop().Values; foreach (var shopItem in shopItems) { if (shopItem.ItemID == _TabBasicConsume.ConsumeSubType && shopItem.MoneyType == 1) { materialInShop = true; _MoneyCost.ShowCurrency(MONEYTYPE.MONEYTYPE_YUANBAO, shopItem.PriceForever * _TabBasicConsume.ConsumeNum); _MoneyOwn.ShowCurrency(MONEYTYPE.MONEYTYPE_YUANBAO, GameManager.gameManager.PlayerDataPool.GetLongPropty((int)CONSUM_TYPE.MONEY, (int)MONEYTYPE.MONEYTYPE_YUANBAO)); //_CostToggleTip.text = StrDictionary.GetClientDictionaryString("#{5386}") + PlayerData.MONEY.GetMoneyStr(MONEYTYPE.MONEYTYPE_YUANBAO); break; } } _MaterialPanel.SetActive(false); _YuanbaoPanel.SetActive(true); } else { _MaterialPanel.SetActive(true); _YuanbaoPanel.SetActive(false); } } } public void ShowCostMoney(bool isShowMoney) { UpdateCost(); } public void OnBaseXilianClick() { if (_SelectedEquip == null) { GUIData.AddNotifyData("#{5383}"); return; } if (!_BaseXilianMoneyReplace.isOn) { if (!_BaseXilianMaterialSlot.IsMaterialEnough()) { GUIData.AddNotifyData("#{5324}"); return; } } else { if (!JudgeMoneyLogic.IsMoneyEnough(MONEYTYPE.MONEYTYPE_YUANBAO, _MoneyCost.CurrencyIntValue)) { return; } } bool isAttrFull = true; _BaseXilianAttrs.ForeachActiveItem((baseItem) => { if (baseItem._SingleAttr.value < 1) isAttrFull = false; }); if (isAttrFull) { GUIData.AddNotifyData("#{5341}"); return; } CG_EQUIP_BASIC_PROP_BAPTIZE packet = (CG_EQUIP_BASIC_PROP_BAPTIZE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_EQUIP_BASIC_PROP_BAPTIZE); if (_SelectedEquip.IsPlayerEquiped()) { packet.Packtype = (int)GameItemContainer.Type.TYPE_EQUIPPACK; } else { packet.Packtype = (int)GameItemContainer.Type.TYPE_BACKPACK; } packet.Equipguid = _SelectedEquip.Guid; if (!_BaseXilianMoneyReplace.isOn) { packet.Isautopament = 0; } else { packet.Isautopament = 1; } packet.SendPacket(); _UpdateEffect = true; } #endregion #region 词条置换 public CommonItemEquipItem _ZhihuanEquipItem; public CommonItemMaterialSlot _ZhihuanMaterialSlot; public Toggle _NormalZhihuan; public Toggle _NogemZhihuan; public GameObject _BtnTips; public Text _ZhihuanTips; private bool _IsNoGemZhihuan; public void OnSelectEquipXilian3(object equipObj) { GameItem equipItem = equipObj as GameItem; _ZhihuanTips.text = StrDictionary.GetClientDictionaryString("#{5387}"); if (equipItem == null) { _SelectedEquip = null; _ZhihuanEquipItem.InitItem(null); _NormalZhihuan.isOn = true; _NogemZhihuan.isOn = false; //OnZhihuanNormal(true); _ZhihuanMaterialSlot.InitMaterial(-1, -1); _BtnTips.gameObject.SetActive(true); return; } _SelectedEquip = equipItem; _ZhihuanEquipItem.InitItem(_SelectedEquip); _NormalZhihuan.isOn = true; _NogemZhihuan.isOn = false; OnZhihuanNormal(true); _BtnTips.gameObject.SetActive(true); foreach (var exAttr in _SelectedEquip.ExAttrs) { if (exAttr.XilianTab.PropID == (int)PropID.PropertyID.EQUIP_XILIAN_NOGEM) { _BtnTips.gameObject.SetActive(false); break; } } } public void OnZhihuanNormal(bool normalZhihuan) { if (_SelectedEquip == null) { GUIData.AddNotifyData("#{5383}"); return; } if (normalZhihuan) { var consumeTabs = TableManager.GetEquipPropBarReplaceConsume().Values; int equipLevel = _SelectedEquip.GetMinLevelRequire(); int equipQuality = (int)_SelectedEquip.GetQuality(); foreach (var consumeTab in consumeTabs) { if (consumeTab.LevleID >= equipLevel && consumeTab.Quality == equipQuality && consumeTab.Type1 == 0) { _ZhihuanMaterialSlot.InitMaterial(consumeTab.ConsumeSubType1, consumeTab.ConsumeNum1); break; } } _IsNoGemZhihuan = false; } } public void OnZhihuanNoGem(bool nogemzhihuan) { if (_SelectedEquip == null) { GUIData.AddNotifyData("#{5383}"); return; } if (nogemzhihuan) { var consumeTabs = TableManager.GetEquipPropBarReplaceConsume().Values; int equipLevel = _SelectedEquip.GetMinLevelRequire(); int equipQuality = (int)_SelectedEquip.GetQuality(); foreach (var consumeTab in consumeTabs) { if (consumeTab.LevleID >= equipLevel && consumeTab.Quality == equipQuality && consumeTab.Type1 == 1) { _ZhihuanMaterialSlot.InitMaterial(consumeTab.ConsumeSubType1, consumeTab.ConsumeNum1); break; } } _IsNoGemZhihuan = true; } else { OnZhihuanNormal(true); } } public void OnStartZhihuan() { if (_SelectedEquip == null) { GUIData.AddNotifyData("#{5383}"); return; } EquipZhihuanRoot.Show(_SelectedEquip, _IsNoGemZhihuan); } public void NoGemTips() { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5343}")); } #endregion #endregion }