171 lines
6.5 KiB
C#
171 lines
6.5 KiB
C#
|
using Cal.DataTable;
|
|||
|
using ET;
|
|||
|
using FairyGUI;
|
|||
|
using static ET.C2M_MakeMunalEquip;
|
|||
|
|
|||
|
namespace ET
|
|||
|
{
|
|||
|
public class ManulEquipUIAwakeSyatem : AwakeSystem<ManulEquipUI>
|
|||
|
{
|
|||
|
public override void Awake(ManulEquipUI self)
|
|||
|
{
|
|||
|
self.Awake();
|
|||
|
}
|
|||
|
}
|
|||
|
public class ManulEquipUIDestroySyatem : DestroySystem<ManulEquipUI>
|
|||
|
{
|
|||
|
public override void Destroy(ManulEquipUI self)
|
|||
|
{
|
|||
|
self.Destroy();
|
|||
|
}
|
|||
|
}
|
|||
|
public class ManulEquipUI : Entity
|
|||
|
{
|
|||
|
public FUI_ManulEquipUI ui;
|
|||
|
private StoneType rare;
|
|||
|
private MunalStoneType munalStoneType;
|
|||
|
public void Awake()
|
|||
|
{
|
|||
|
ui = GetParent<FUI_ManulEquipUI>();
|
|||
|
AwakeAsync().Coroutine();
|
|||
|
rare = StoneType.Nomal;
|
|||
|
ui.m_comRare.self.selectedIndex = 0;
|
|||
|
}
|
|||
|
private async ETVoid AwakeAsync()
|
|||
|
{
|
|||
|
ui.m_comRare.self.onChanged.Set1(concent =>
|
|||
|
{
|
|||
|
if (!int.TryParse(ui.m_comRare.self.value, out int index)) return;
|
|||
|
rare = (StoneType)index;
|
|||
|
OnChangeEquiptype();
|
|||
|
});
|
|||
|
ui.m_comEquipType.self.onChanged.Set1(concent =>
|
|||
|
{
|
|||
|
if (!int.TryParse(ui.m_comEquipType.self.value, out int index)) return;
|
|||
|
munalStoneType = (MunalStoneType)index;
|
|||
|
OnChangeEquiptype();
|
|||
|
});
|
|||
|
ui.m_btnMake.self.onClick.Set(async () =>
|
|||
|
{
|
|||
|
var ret = await SessionComponent.Instance.Call<M2C_MakeMunalEquip>(new C2M_MakeMunalEquip { Type = (int)munalStoneType, IsRare = rare });
|
|||
|
if (!ret.Message.IsNullOrEmpty())
|
|||
|
{
|
|||
|
TipHelper.OpenUI(ret.Message);
|
|||
|
return;
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
await ETTask.CompletedTask;
|
|||
|
}
|
|||
|
|
|||
|
private void OnChangeEquiptype()
|
|||
|
{
|
|||
|
EquipType equipType = EquipType.项链;
|
|||
|
switch (munalStoneType)
|
|||
|
{
|
|||
|
case MunalStoneType.Red:
|
|||
|
equipType = EquipType.项链;
|
|||
|
break;
|
|||
|
case MunalStoneType.White:
|
|||
|
equipType = EquipType.护腕;
|
|||
|
break;
|
|||
|
case MunalStoneType.Green:
|
|||
|
equipType = EquipType.帽子;
|
|||
|
break;
|
|||
|
case MunalStoneType.Black:
|
|||
|
equipType = EquipType.戒指;
|
|||
|
break;
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
ManulEquip manulEquip = ManulEquipCategory.Instance.Get((long)equipType);
|
|||
|
string icon = null;
|
|||
|
var bagDic = ClientItemDataComponent.Instance.ItemDic;
|
|||
|
if (rare == StoneType.Rare)
|
|||
|
{
|
|||
|
//!判断材料
|
|||
|
for (int i = manulEquip.RareMaterialArr.Length - 1; i >= 0; i--)
|
|||
|
{
|
|||
|
int materialCount = 0;
|
|||
|
var needMaterial = manulEquip.RareMaterialArr[i];
|
|||
|
int count = needMaterial.Count;
|
|||
|
if (!bagDic.TryGetValueByKey2(needMaterial.MaterialId, out var itemList) || itemList.Count == 0)
|
|||
|
{ }
|
|||
|
else
|
|||
|
{
|
|||
|
foreach (var item in itemList)
|
|||
|
materialCount += item.Count;
|
|||
|
}
|
|||
|
string name = BagHelper.GetIconName(needMaterial.MaterialId).Item1;
|
|||
|
string color = count > materialCount ? "FF0000" : "FFFFFF";
|
|||
|
icon += $"[color=#{color}]{name} x{count}(持有{materialCount})[/color]\n";
|
|||
|
}
|
|||
|
}
|
|||
|
else if(rare == StoneType.Nomal)
|
|||
|
{
|
|||
|
for (int i = manulEquip.MaterialArr.Length - 1; i >= 0; i--)
|
|||
|
{
|
|||
|
int materialCount = 0;
|
|||
|
var needMaterial = manulEquip.MaterialArr[i];
|
|||
|
int count = needMaterial.Count;
|
|||
|
if (!bagDic.TryGetValueByKey2(needMaterial.MaterialId, out var itemList) || itemList.Count == 0)
|
|||
|
{ }
|
|||
|
else
|
|||
|
{
|
|||
|
foreach (var item in itemList)
|
|||
|
materialCount += item.Count;
|
|||
|
}
|
|||
|
string name = BagHelper.GetIconName(needMaterial.MaterialId).Item1;
|
|||
|
string color = count > materialCount ? "FF0000" : "FFFFFF";
|
|||
|
icon += $"[color=#{color}]{name} x{count}(持有{materialCount})[/color]\n";
|
|||
|
}
|
|||
|
}
|
|||
|
else if (rare == StoneType.UpgradeRare)
|
|||
|
{
|
|||
|
//!判断材料
|
|||
|
for (int i = manulEquip.UpgradeRareMaterialArr.Length - 1; i >= 0; i--)
|
|||
|
{
|
|||
|
int materialCount = 0;
|
|||
|
var needMaterial = manulEquip.UpgradeRareMaterialArr[i];
|
|||
|
int count = needMaterial.Count;
|
|||
|
if (!bagDic.TryGetValueByKey2(needMaterial.MaterialId, out var itemList) || itemList.Count == 0)
|
|||
|
{ }
|
|||
|
else
|
|||
|
{
|
|||
|
foreach (var item in itemList)
|
|||
|
materialCount += item.Count;
|
|||
|
}
|
|||
|
string name = BagHelper.GetIconName(needMaterial.MaterialId).Item1;
|
|||
|
string color = count > materialCount ? "FF0000" : "FFFFFF";
|
|||
|
icon += $"[color=#{color}]{name} x{count}(持有{materialCount})[/color]\n";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
for (int i = manulEquip.EpicMaterialArr.Length - 1; i >= 0; i--)
|
|||
|
{
|
|||
|
int materialCount = 0;
|
|||
|
var needMaterial = manulEquip.EpicMaterialArr[i];
|
|||
|
int count = needMaterial.Count;
|
|||
|
if (!bagDic.TryGetValueByKey2(needMaterial.MaterialId, out var itemList) || itemList.Count == 0)
|
|||
|
{ }
|
|||
|
else
|
|||
|
{
|
|||
|
foreach (var item in itemList)
|
|||
|
materialCount += item.Count;
|
|||
|
}
|
|||
|
string name = BagHelper.GetIconName(needMaterial.MaterialId).Item1;
|
|||
|
string color = count > materialCount ? "FF0000" : "FFFFFF";
|
|||
|
icon += $"[color=#{color}]{name} x{count}(持有{materialCount})[/color]\n";
|
|||
|
}
|
|||
|
}
|
|||
|
ui.m_txtMaterial.text = icon;
|
|||
|
}
|
|||
|
|
|||
|
public void Destroy()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|