298 lines
8.7 KiB
C#
298 lines
8.7 KiB
C#
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using System.Collections;
|
|||
|
using Games.Item;
|
|||
|
using GCGame.Table;
|
|||
|
|
|||
|
public class EquipZhihuanRoot : UIControllerBase<EquipZhihuanRoot>
|
|||
|
{
|
|||
|
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
|
|||
|
|
|||
|
}
|