Project_WL/Assets/Script/UI/Eqiupment/EquipmentItemPopup.cs

111 lines
4.0 KiB
C#

using TMPro;
using UnityEditor.Rendering;
using UnityEngine;
using UnityEngine.UI;
public class EquipmentItemPopup : EquipmentPopupItemInfoBase
{
public RectTransform m_rect;
public EquipItemEnchantOption m_EquipItemEnchantOption;
// 0 숙련 보너스, 1 주능력치 이름, 2 주능력치값, 3 숙련도 레벨, 4 숙련도 능력치 이름, 5 숙련도%, 6 비용
public TextMeshProUGUI[] texts;
public Image[] images; // 0 인챈트 스크롤
EquipmentSlotUpgradeTableData m_ESUTD;
EquipItemData m_EquipItemData = new EquipItemData();
public override void Set(EquipmentListTableData data)
{
if (DSUtil.CheckNull(data)) return;
base.Set(data);
Set_Position(true);
Set_ItemInfo();
m_ESUTD = table_equipslotupgrade.Ins.Get_Data(m_Data.e_EquipParts, m_Data.e_EquipAttribute);
Set_UI();
}
void Set_UI()
{
var sdata = ServerInfo.Ins.m_ServerData;
m_EquipItemData.id = m_Data.n_EquipID;
m_EquipItemData.itemType = m_ItemData.e_ItemType;
m_Card.Set(m_EquipItemData);
m_Card.Set_CardType(eUICardType.UIEquip);
texts[0].text = DSUtil.Format(201, m_SD_Slot.Lv * m_ESUTD.f_LevelPerValue);
texts[1].text = texts[4].text = MyText.Get_StatName(m_ESUTD.e_OptionType);
var curmain = m_ESUTD.Get_MainStatValue(m_SD_Slot.Lv);
var nextmain = m_ESUTD.Get_MainStatValue(m_SD_Slot.Lv + 1);
var curmainText = MyText.Get_StatValueText(m_ESUTD.e_OptionType, curmain);
var nextmainText = MyText.Get_StatValueText(m_ESUTD.e_OptionType, nextmain - curmain);
texts[2].text = $"{curmainText}<size=25>+{nextmainText}";
texts[3].text = $"Lv.{m_SD_Slot.Lv}";
texts[5].text = $"{curmainText} >> {MyText.Get_StatValueText(m_ESUTD.e_OptionType, curmain + nextmain - curmain)}";
texts[6].text = NumberFormatter.FormatNumber(Get_Price());
m_EquipItemEnchantOption.Set(m_SD_Slot);
}
int Get_Price() { return (int)(m_ESUTD.n_DefaultValuePrice + m_SD_Slot.Lv + m_ESUTD.f_LevelPerValuePrice); }
public eItem Get_Parts() { return m_Data.e_EquipParts; }
public void OnClick_Reinforce()
{
var sdata = ServerInfo.Ins.m_ServerData;
var price = Get_Price();
if (sdata.Check_ItemAmount(m_ESUTD.n_ConsumeGoodsID, price))
{
sdata.Use_Item(m_ESUTD.n_ConsumeGoodsID, price);
sdata.Add_SlotLv(m_ESUTD.e_EquipParts, price);
Set_UI();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
sdata.Add_MissionCount(ePurpose.EQUIP_SLOT_UPGRADE_ALL);
sdata.Add_MissionCount(ePurpose.EQUIP_SLOT_UPGRADE_ACC);
}
}
public void OnClick_ReinforceReset()
{
ServerInfo.Ins.m_ServerData.Init_SlotLv(m_ESUTD.e_EquipParts, m_ESUTD.n_ConsumeGoodsID);
Set_UI();
}
public override void OnClick_Back()
{
base.OnClick_Back();
NewGameUI.Ins.m_EquipmentUI.m_EquipmentUI_Enchant.Set_UI();
}
public void Set_Position(bool right)
{
// 위치 조절 (좌우)
if (right)
{
// left 값을 수정
Vector2 offsetMin = m_rect.offsetMin;
offsetMin.x = 640; // 왼쪽 오프셋을 10으로 설정
m_rect.offsetMin = offsetMin;
// right 값을 수정
Vector2 offsetMax = m_rect.offsetMax;
offsetMax.x = -15; // 오른쪽 오프셋을 -10으로 설정 (음수로 설정해야 오른쪽으로 이동)
m_rect.offsetMax = offsetMax;
}
else
{
// left 값을 수정
Vector2 offsetMin = m_rect.offsetMin;
offsetMin.x = 15; // 왼쪽 오프셋을 10으로 설정
m_rect.offsetMin = offsetMin;
// right 값을 수정
Vector2 offsetMax = m_rect.offsetMax;
offsetMax.x = -640; // 오른쪽 오프셋을 -10으로 설정 (음수로 설정해야 오른쪽으로 이동)
m_rect.offsetMax = offsetMax;
}
}
}