Project_WL/Assets/Script/UI/Collection/Relic/CollectionRelicUI.cs

143 lines
6.7 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
using System.Collections.Generic;
using UnityEngine;
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;
2025-03-14 06:09:43 +00:00
public NeedItemCard[] money_star, money_lv;
2024-12-15 01:39:39 +00:00
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");
2025-03-14 06:09:43 +00:00
money_star[0].Set(m_SelectRelicData.n_RelicID, (int)sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID),
Get_Star_UpgradeCost(star, m_SelectRelicData));
money_star[1].Set(lvup_matID, (int)sdata.Get_ItemAmount(lvup_matID), Get_Star_UpgradeMatCost(star, grade));
gos_noti[0].SetActive(star < 5 &&
sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID) >= Get_Star_UpgradeCost(star, m_SelectRelicData) &&
sdata.Get_ItemAmount(lvup_matID) >= Get_Star_UpgradeMatCost(star, grade));
2024-12-15 01:39:39 +00:00
2025-03-14 06:09:43 +00:00
var maxlv = table_relicupgradecost.Ins.Get_MaxLv();
2024-12-15 01:39:39 +00:00
var lv = ServerInfo.Ins.m_ServerData.Get_RelicLv(m_SelectRelicData.n_RelicID);
var upgradeData = table_relicupgradecost.Ins.Get_Data(lv);
2025-03-14 06:09:43 +00:00
money_lv[0].Set(m_SelectRelicData.n_RelicID, (int)sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID),
upgradeData.n_RequirePiece);
money_lv[1].Set(lvup_matID, (int)sdata.Get_ItemAmount(lvup_matID), Get_Star_UpgradeMatCost(star, grade));
gos_noti[1].SetActive(star > 0 && lv < maxlv &&
sdata.Get_ItemAmount(m_SelectRelicData.n_RelicID) >= upgradeData.n_RequirePiece &&
2024-12-15 01:39:39 +00:00
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);
2025-07-09 03:49:22 +00:00
if (star < 6 && sdata.Check_ItemAmount(m_SelectRelicData.n_RelicID, requirepiece) &&
2024-12-15 01:39:39 +00:00
sdata.Check_ItemAmount(lvup_matID, requirelvupmat))
{
2025-07-09 03:49:22 +00:00
ServerInfo.Ins.Save_Relic_StarUp(m_SelectRelicData.n_RelicID, () =>
{
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);
2025-03-18 22:48:03 +00:00
2025-07-09 03:49:22 +00:00
sdata.Add_MissionCount(ePurpose.TAKE_RELIC_GRADE_ACC, sdata.Get_RelicStar(m_SelectRelicData.n_RelicID));
sdata.Add_MissionCount(ePurpose.AWAKEN_RELIC_ALL, m_SelectRelicData.n_RelicID);
sdata.Add_MissionCount(ePurpose.AWAKEN_RELIC_LIMIT, m_SelectRelicData.n_RelicID);
});
2024-12-15 01:39:39 +00:00
}
}
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))
{
2025-03-14 06:09:43 +00:00
sdata.Use_Item(m_SelectRelicData.n_RelicID, requirepiece);
2024-12-15 01:39:39 +00:00
sdata.Use_Item(lvup_matID, requirelvupmat);
sdata.Add_RelicLv(m_SelectRelicData.n_RelicID);
Set();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
2025-03-18 22:48:03 +00:00
sdata.Add_MissionCount(ePurpose.UPGRADE_RELIC_ALL, m_SelectRelicData.n_RelicID);
sdata.Add_MissionCount(ePurpose.UPGRADE_RELIC_LIMIT, m_SelectRelicData.n_RelicID);
2024-12-15 01:39:39 +00:00
}
}
}
}