using UnityEngine; using UnityEngine.UI; using System.Collections; using Games.Item; using GCGame.Table; public class EquipZhihuanRoot : UIControllerBase { void OnEnable() { SetInstance(this); } void OnDisable() { SetInstance(null); } public void UpdateEquip() { InitEquipSingle(_SelectedItem, _IsNoGem > 0); } public void UpdateZhihuan(GC_EQUIP_PROPBAR_BAPTIZE_PROP_UPDATE packet) { UpdateEquipAttr(packet.Updatepropbarid - 1); _MaterialSlot.UpdateNum(); _ZhihuanTimes.text = StrDictionary.GetClientDictionaryString("#{5305}", _SelectedItem.ZhihuanTimes); if ((_SelectedItem.GetQuality() == ItemQuality.QUALITY_PINK || _SelectedItem.GetQuality() == ItemQuality.QUALITY_GOLD) && _SelectedItem.ZhihuanTimes >= 100) { _BtnHuanyuan.SetActive(true); _Disable_BtnHuanyuan.SetActive(false); } else { _BtnHuanyuan.SetActive(false); _Disable_BtnHuanyuan.SetActive(true); } } public void CloseWindow() { UIManager.CloseUI(UIInfo.EquipZhihuan); UIManager.ShowUI(UIInfo.EquipEnhance); if (EquipEnhanceXilian.Instance() != null) { EquipEnhanceXilian.Instance().OnXilianPage(2); } } #region show public static void Show(GameItem selectedItem, bool isAuto) { Hashtable hash = new Hashtable(); hash.Add("SelectedItem", selectedItem); hash.Add("IsAuto", isAuto); UIManager.ShowUI(UIInfo.EquipZhihuan, EquipZhihuanRoot.ShowUIOver, hash); } static void ShowUIOver(bool bSuccess, object param) { if (bSuccess) { Hashtable hash = param as Hashtable; if (EquipZhihuanRoot.Instance() != null) { EquipZhihuanRoot.Instance().ShowInner((GameItem)hash["SelectedItem"], (bool)hash["IsAuto"]); } } } void ShowInner(GameItem selectedItem, bool isNoGem) { InitEquipSingle(selectedItem, isNoGem); } #endregion #region single public UIContainerBase _PropOrg; public Text _PropCombatValue; public CommonItemEquipItem _EquipItemSlot; public CommonItemMaterialSlot _MaterialSlot; public Toggle _OnlyUseBindMaterial; public Text _ZhihuanTimes; public GameObject _TargetAttrPanel; public Text[] _TargetAttrs; public EquipXilianAttrItem[] _XilianAttrs; public GameObject _BtnHuanyuan; public GameObject _Disable_BtnHuanyuan; private GameItem _SelectedItem; private int _IsNoGem; private Tab_EquipPropBarReplaceConsume _TabConsume; public void InitEquipSingle(GameItem equipItem, bool isNoGem) { _SelectedItem = equipItem; _IsNoGem = isNoGem?1:0; _EquipItemSlot.InitItem(_SelectedItem); _OnlyUseBindMaterial.isOn = true; //Hashtable equipHash = new Hashtable(); //equipHash.Add("EquipItem", equipItem); //_PropOrg.InitContentItem(equipItem.ExAttrs, null, equipHash); UpdateEquipAttr(); _ZhihuanTimes.text = StrDictionary.GetClientDictionaryString("#{5305}", equipItem.ZhihuanTimes); if ((_SelectedItem.GetQuality() == ItemQuality.QUALITY_PINK || _SelectedItem.GetQuality() == ItemQuality.QUALITY_GOLD) && equipItem.ZhihuanTimes >= 100) { _BtnHuanyuan.SetActive(true); _Disable_BtnHuanyuan.SetActive(false); } else { _BtnHuanyuan.SetActive(false); _Disable_BtnHuanyuan.SetActive(true); } var consumeTabs = TableManager.GetEquipPropBarReplaceConsume().Values; int equipLevel = _SelectedItem.GetMinLevelRequire(); int equipQuality = (int)_SelectedItem.GetQuality(); foreach (var consumeTab in consumeTabs) { if (consumeTab.LevleID >= equipLevel && consumeTab.Quality == equipQuality && consumeTab.Type1 == _IsNoGem) { _TabConsume = consumeTab; _MaterialSlot.InitMaterial(consumeTab.ConsumeSubType1, consumeTab.ConsumeNum1, true); break; } } } private void UpdateEquipAttr() { for (int i = 0; i < _XilianAttrs.Length; ++i) { if (_SelectedItem.ExAttrs.Count > i) { _XilianAttrs[i].gameObject.SetActive(true); _XilianAttrs[i].ShowReplaceAttr(_SelectedItem.ExAttrs[i], _SelectedItem); } else { _XilianAttrs[i].gameObject.SetActive(false); } } _PropCombatValue.text = CombatValue.CalculateEquipSingle(_SelectedItem).ToString(); } private void UpdateEquipAttr(int idx) { for (int i = 0; i < _XilianAttrs.Length; ++i) { if (_SelectedItem.ExAttrs.Count > i) { if (idx == i) { _XilianAttrs[idx].ShowReplaceOrigin(_SelectedItem.ExAttrs[idx], _SelectedItem); } else { _XilianAttrs[i].gameObject.SetActive(true); _XilianAttrs[i].ShowReplaceAttr(_SelectedItem.ExAttrs[i], _SelectedItem); } } else { _XilianAttrs[i].gameObject.SetActive(false); } } //_PropCombatValue.text = CombatValue.CalculateXilian(_SelectedItem.ExAttrs, _SelectedItem.DataID).ToString(); _PropCombatValue.text = CombatValue.CalculateEquipSingle(_SelectedItem).ToString(); } public void IsOnlyUseBind(bool isUse) { if (_TabConsume != null) { _MaterialSlot.InitMaterial(_TabConsume.ConsumeSubType1, _TabConsume.ConsumeNum1, isUse); } } public void OnZhihuanClick() { if (_SelectedItem.ExAttrsNew.Count > 0) MessageBoxLogic.OpenOKCancelBox(5355, -1, OnZhihuanClickOk); else OnZhihuanClickOk(); } public void OnZhihuanClickOk() { if (!_MaterialSlot.IsMaterialEnough()) { GUIData.AddNotifyData("#{5325}"); return; } CG_EQUIP_PROPBAR_BAPTIZE_PROP_UPDATE packet = (CG_EQUIP_PROPBAR_BAPTIZE_PROP_UPDATE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_EQUIP_PROPBAR_BAPTIZE_PROP_UPDATE); if (_SelectedItem.IsPlayerEquiped()) { packet.Packtype = (int)GameItemContainer.Type.TYPE_EQUIPPACK; } else { packet.Packtype = (int)GameItemContainer.Type.TYPE_BACKPACK; } packet.Equipguid = _SelectedItem.Guid; packet.Isnodiamond = _IsNoGem; packet.SendPacket(); //TestPro(); } public void OnHuanYuanClick() { if (_SelectedItem.ExAttrsNew.Count > 0) MessageBoxLogic.OpenOKCancelBox(5355, -1, OnHuanYuanClickOk); else OnHuanYuanClickOk(); } public void OnHuanYuanClickOk() { CG_RESET_EQUIP_PROPBAR packet = (CG_RESET_EQUIP_PROPBAR)PacketDistributed.CreatePacket(MessageID.PACKET_CG_RESET_EQUIP_PROPBAR); if (_SelectedItem.IsPlayerEquiped()) { packet.Packtype = (int)GameItemContainer.Type.TYPE_EQUIPPACK; } else { packet.Packtype = (int)GameItemContainer.Type.TYPE_BACKPACK; } packet.Equipguid = _SelectedItem.Guid; packet.SendPacket(); } static int times = 0; private void TestPro() { _SelectedItem.ExAttrs[times].XilianValue = 12; UpdateEquipAttr(times); ++times; } public void OnShowTargetAttr() { _TargetAttrPanel.SetActive(true); var xilianTargetTab = TableManager.GetEquipBaptizeReplaceTargetByID(_SelectedItem.GetEquipSlotIndex()); foreach(var item in xilianTargetTab) { if (item.Quality == (int)_SelectedItem.GetQuality()) { for (int i = 0; i < _TargetAttrs.Length; ++i) { _TargetAttrs[i].gameObject.SetActive(false); if (item.getTargetCount() < i) { continue; } int propID = item.GetTargetbyIndex(i); if (propID < 0) continue; _TargetAttrs[i].gameObject.SetActive(true); _TargetAttrs[i].text = PropID.GetAttrName((PropID.PropertyID)propID, -1, -1); } } } } public void OnHideTargetAttr() { _TargetAttrPanel.SetActive(false); } public void OnBtnHelp() { MessageHelpLogic.ShowHelpMessage(19); } #endregion }