2024-12-15 01:39:39 +00:00
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using TMPro;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
public class CollectionRelicUI : PCUIMenu
|
|
|
|
|
{
|
|
|
|
|
public static CollectionRelicUI Ins;
|
|
|
|
|
private void Start() { Ins = this; }
|
|
|
|
|
|
|
|
|
|
public CollectionRelicUI_Scroll m_CollectionRelicUI_Scroll;
|
|
|
|
|
public CollectionRelicUI_Info m_CollectionRelicUI_Info;
|
|
|
|
|
public MoneyForm[] money_star, money_lv;
|
|
|
|
|
public GameObject[] gos_noti; // 0 성급 돌파, 1 유물 강화
|
|
|
|
|
|
|
|
|
|
Dictionary<int, int> dic_starCost = new Dictionary<int, int> { { 1, 30 }, { 2, 60 }, { 3, 100 }, { 4, 200 }, { 5, 500 }, };
|
|
|
|
|
int Get_Star_UpgradeCost(int star, RelicListTableData data)
|
|
|
|
|
{
|
|
|
|
|
if (dic_starCost.ContainsKey(star))
|
|
|
|
|
return dic_starCost[star];
|
|
|
|
|
if (star == 0) // 최초 개방 시
|
|
|
|
|
return data.n_FirstOpenCost;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
Dictionary<int, Dictionary<int, int>> dic_starMat = new Dictionary<int, Dictionary<int, int>>
|
|
|
|
|
{
|
|
|
|
|
{ 0, new Dictionary<int, int> { { 6, 50 }, { 7, 60 }, { 8, 80 }, { 9, 100 } } },
|
|
|
|
|
{ 1, new Dictionary<int, int> { { 6, 150 }, { 7, 180 }, { 8, 240 }, { 9, 300 } } },
|
|
|
|
|
{ 2, new Dictionary<int, int> { { 6, 300 }, { 7, 360 }, { 8, 480 }, { 9, 600 } } },
|
|
|
|
|
{ 3, new Dictionary<int, int> { { 6, 500 }, { 7, 600 }, { 8, 800 }, { 9, 1000 } } },
|
|
|
|
|
{ 4, new Dictionary<int, int> { { 6, 1000 }, { 7, 1200 }, { 8, 1600 }, { 9, 2000 } } },
|
|
|
|
|
{ 5, new Dictionary<int, int> { { 6, 2500 }, { 7, 3000 }, { 8, 4000 }, { 9, 5000 } } },
|
|
|
|
|
};
|
|
|
|
|
int Get_Star_UpgradeMatCost(int star, int grade)
|
|
|
|
|
{
|
|
|
|
|
if (dic_starMat.ContainsKey(star))
|
|
|
|
|
return dic_starMat[star][grade];
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RelicListTableData m_SelectRelicData;
|
|
|
|
|
|
|
|
|
|
public override void Set()
|
|
|
|
|
{
|
|
|
|
|
base.Set();
|
|
|
|
|
|
|
|
|
|
NewGameUI.Ins.m_CollectionUI.Set_Money(table_GlobalValue.Ins.Get_Int("n_RelicReinforceMaterialID"));
|
|
|
|
|
|
|
|
|
|
m_CollectionRelicUI_Scroll.Set();
|
|
|
|
|
if (DSUtil.CheckNull(m_SelectRelicData))
|
|
|
|
|
Set(m_CollectionRelicUI_Scroll.Get_FirstRelic());
|
|
|
|
|
else
|
|
|
|
|
Set(m_SelectRelicData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Set(RelicListTableData data)
|
|
|
|
|
{
|
|
|
|
|
m_SelectRelicData = data;
|
|
|
|
|
m_CollectionRelicUI_Info.Set(m_SelectRelicData);
|
2024-12-22 01:07:25 +00:00
|
|
|
var itemData = table_itemlist.Ins.Get_Data(m_SelectRelicData.n_RelicID);
|
2024-12-15 01:39:39 +00:00
|
|
|
|
|
|
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
2024-12-22 01:07:25 +00:00
|
|
|
var grade = DSUtil.CheckNull(itemData) ? 6 : itemData.n_ItemGrade;
|
2024-12-15 01:39:39 +00:00
|
|
|
var star = sdata.Get_RelicStar(m_SelectRelicData.n_RelicID);
|
|
|
|
|
var lvup_matID = table_GlobalValue.Ins.Get_Int("n_RelicReinforceMaterialID");
|
|
|
|
|
money_star[0].icon.sprite = UIAtlasMgr.Ins.Get_Sprite(m_SelectRelicData.n_RelicID);
|
|
|
|
|
money_star[0].amount.text = $"{sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID)}/{Get_Star_UpgradeCost(star, m_SelectRelicData)}";
|
|
|
|
|
money_star[1].icon.sprite = UIAtlasMgr.Ins.Get_Sprite(lvup_matID);
|
|
|
|
|
money_star[1].amount.text = $"{sdata.Get_ItemAmount(lvup_matID)}/{Get_Star_UpgradeMatCost(star, grade)}";
|
|
|
|
|
gos_noti[0].SetActive(sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID) >= Get_Star_UpgradeCost(star, m_SelectRelicData) &&
|
|
|
|
|
sdata.Get_ItemAmount(lvup_matID) >= Get_Star_UpgradeMatCost(star, grade));
|
|
|
|
|
|
|
|
|
|
var lv = ServerInfo.Ins.m_ServerData.Get_RelicLv(m_SelectRelicData.n_RelicID);
|
|
|
|
|
var upgradeData = table_relicupgradecost.Ins.Get_Data(lv);
|
|
|
|
|
money_lv[0].icon.sprite = UIAtlasMgr.Ins.Get_Sprite(m_SelectRelicData.n_RelicID);
|
|
|
|
|
money_lv[0].amount.text = $"{sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID)}/{upgradeData.n_RequirePiece}";
|
|
|
|
|
money_lv[1].icon.sprite = UIAtlasMgr.Ins.Get_Sprite(lvup_matID);
|
|
|
|
|
money_lv[1].amount.text = $"{sdata.Get_ItemAmount(lvup_matID)}/{Get_Star_UpgradeMatCost(star, grade)}";
|
|
|
|
|
gos_noti[1].SetActive(star > 0 && sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID) >= upgradeData.n_RequirePiece &&
|
|
|
|
|
sdata.Get_ItemAmount(lvup_matID) >= Get_Star_UpgradeMatCost(star, grade));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CanUp()
|
|
|
|
|
{
|
|
|
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
|
|
|
var star = sdata.Get_RelicStar(m_SelectRelicData.n_RelicID);
|
|
|
|
|
return star > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OnClick_StarUp()
|
|
|
|
|
{
|
|
|
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
|
|
|
var grade = table_itemlist.Ins.Get_Data(m_SelectRelicData.n_RelicID).n_ItemGrade;
|
|
|
|
|
var star = sdata.Get_RelicStar(m_SelectRelicData.n_RelicID);
|
|
|
|
|
var lvup_matID = table_GlobalValue.Ins.Get_Int("n_RelicReinforceMaterialID");
|
|
|
|
|
|
|
|
|
|
var requirepiece = Get_Star_UpgradeCost(star, m_SelectRelicData);
|
|
|
|
|
var requirelvupmat = Get_Star_UpgradeMatCost(star, grade);
|
|
|
|
|
if (sdata.Check_ItemAmount(m_SelectRelicData.n_RelicID, requirepiece) &&
|
|
|
|
|
sdata.Check_ItemAmount(lvup_matID, requirelvupmat))
|
|
|
|
|
{
|
|
|
|
|
sdata.Use_Item(m_SelectRelicData.n_RelicID, requirepiece);
|
|
|
|
|
sdata.Use_Item(lvup_matID, requirelvupmat);
|
|
|
|
|
sdata.Add_RelicStar(m_SelectRelicData.n_RelicID);
|
|
|
|
|
Set();
|
|
|
|
|
MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OnClick_LvUp()
|
|
|
|
|
{
|
|
|
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
|
|
|
var maxlv = table_relicupgradecost.Ins.Get_MaxLv();
|
|
|
|
|
var lv = sdata.Get_RelicLv(m_SelectRelicData.n_RelicID);
|
|
|
|
|
if (CanUp() && maxlv > lv)
|
|
|
|
|
{
|
|
|
|
|
var grade = table_itemlist.Ins.Get_Data(m_SelectRelicData.n_RelicID).n_ItemGrade;
|
|
|
|
|
var star = sdata.Get_RelicStar(m_SelectRelicData.n_RelicID);
|
|
|
|
|
var lvup_matID = table_GlobalValue.Ins.Get_Int("n_RelicReinforceMaterialID");
|
|
|
|
|
var upgradeData = table_relicupgradecost.Ins.Get_Data(lv);
|
|
|
|
|
var requirepiece = upgradeData.n_RequirePiece;
|
|
|
|
|
var requirelvupmat = Get_Star_UpgradeMatCost(star, grade);
|
|
|
|
|
if (sdata.Check_ItemAmount(m_SelectRelicData.n_RelicID, requirepiece) &&
|
|
|
|
|
sdata.Check_ItemAmount(lvup_matID, requirelvupmat))
|
|
|
|
|
{
|
|
|
|
|
sdata.Use_Item(lvup_matID, requirelvupmat);
|
|
|
|
|
sdata.Add_RelicLv(m_SelectRelicData.n_RelicID);
|
|
|
|
|
Set();
|
|
|
|
|
MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|