Files
JJBB/Assets/Project/Script/GUI/Equip/EquipZhihuanRoot.cs

298 lines
8.7 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
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
}