Project_WL/Assets/Script/UI/Pet/PetUI_Left.cs

142 lines
4.8 KiB
C#
Raw Normal View History

2025-07-07 07:09:02 +00:00
using CodeStage.AntiCheat.ObscuredTypes;
2024-12-15 01:39:39 +00:00
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class PetUI_Left : UI3DModel
{
public PetInfoDetailUI m_PetInfoDetailUI;
public PetPureStatCard[] arr_statcard;
public SkillCard[] skillCards; // 0 액티브 스킬, 1 패시브 스킬
public Image[] images; // 0 등급
public TextMeshProUGUI[] texts; // 0 펫 이름, 1 등급
2025-07-07 07:09:02 +00:00
public MoneyForm[] gacha_moneyForms; // 0 광고(시간), 1 1회 뽑기, 2 10회 뽑기
2024-12-15 01:39:39 +00:00
public zSizeControler zSizeControler;
PetListTableData m_Data;
private void Start()
{
for (int i = 0; i < skillCards.Length; i++)
skillCards[i].Set_CardType(eUICardType.UIPetSkill);
}
2025-07-07 07:09:02 +00:00
private void Update()
{
Set_GambleADTimeText();
}
2024-12-15 01:39:39 +00:00
public void Set(PetListTableData data)
{
var sdata = ServerInfo.Ins.m_ServerData;
m_Data = data;
Set_PurStat();
2025-02-17 23:53:54 +00:00
Set_3DModel(false, m_Data.s_PetPrefab, tf =>
2024-12-15 01:39:39 +00:00
{
tf.localScale = Vector3.one * m_Data.f_UIScale;
2025-02-28 01:21:17 +00:00
tf.localPosition = Vector3.up * m_Data.f_UIOffSet_y;
2024-12-15 01:39:39 +00:00
zSizeControler.Set(tf);
});
2025-02-15 04:33:13 +00:00
//images[0].sprite = UIAtlasMgr.Ins.Get_GradeSprite(m_Data.n_PetGrade);
2024-12-15 01:39:39 +00:00
texts[0].text = m_Data.Get_Name();
texts[1].text = MyText.Get_GradeName(m_Data.n_PetGrade);
var lv = sdata.Get_PetLv(m_Data.n_PetID);
skillCards[0].Set_PetSkill(m_Data.n_PetActiveSkill, data.n_PetID, lv);
skillCards[1].Set_PetSkill(m_Data.n_PetPassiveSkill, data.n_PetID, lv);
2025-07-07 07:09:02 +00:00
Set_GambleUI();
}
void Set_GambleUI()
{
Set_GambleADTimeText();
var sdata = ServerInfo.Ins.m_ServerData;
gacha_moneyForms[1].amount.text = DSUtil.GetThousandCommaText(1 * table_GlobalValue.Ins.Get_Int("n_CostPerPetGacha"));
gacha_moneyForms[2].amount.text = DSUtil.GetThousandCommaText(10 * table_GlobalValue.Ins.Get_Int("n_CostPerPetGacha"));
}
void Set_GambleADTimeText()
{
var sdata = ServerInfo.Ins.m_ServerData;
var ts = sdata.Get_PetGachaADTime();
gacha_moneyForms[0].amount.text = ts.TotalSeconds <= 0 ? "00:00" : DSUtil.Get_TimeText_MS(ts);
2024-12-15 01:39:39 +00:00
}
void Set_PurStat()
{
var sdata = ServerInfo.Ins.m_ServerData;
var lv = sdata.Get_PetLv(m_Data.n_PetID);
arr_statcard[0].Set(true, eStat.None, lv);
arr_statcard[1].Set(false, eStat.ATK, (int)m_Data.Get_PureStat(eStat.ATK, lv));
arr_statcard[2].Set(false, eStat.HP, (int)m_Data.Get_PureStat(eStat.HP, lv));
var def = m_Data.Get_PureStat(eStat.DEF, lv);
if (def > 0)
arr_statcard[3].Set(false, eStat.DEF, (int)m_Data.Get_PureStat(eStat.DEF, lv));
else
arr_statcard[3].Set(false, eStat.M_DEF, (int)m_Data.Get_PureStat(eStat.M_DEF, lv));
}
public void OnClick_PetDetail()
{
m_PetInfoDetailUI.Set(m_Data);
}
2025-07-07 07:09:02 +00:00
ObscuredInt m_Amount, m_Price;
2024-12-15 01:39:39 +00:00
public void OnClick_Gamble(int index)
{
2025-07-07 07:09:02 +00:00
var sdata = ServerInfo.Ins.m_ServerData;
m_Amount = 1;
m_Price = 0;
2024-12-15 01:39:39 +00:00
switch (index)
{
case 0: // 광고 뽑기
2025-07-07 07:09:02 +00:00
var ts = sdata.Get_PetGachaADTime();
if (ts.TotalSeconds > 0) return;
sdata.PetGachaADTime = ServerInfo.ServerTime.AddMinutes(table_GlobalValue.Ins.Get_Int("n_AddPetGachaADMinute"));
2024-12-15 01:39:39 +00:00
break;
case 1: // 뽑기1
2025-07-07 07:09:02 +00:00
m_Price = m_Amount * table_GlobalValue.Ins.Get_Int("n_CostPerPetGacha");
2024-12-15 01:39:39 +00:00
break;
case 2: // 뽑기2
2025-07-07 07:09:02 +00:00
m_Amount = 10;
m_Price = m_Amount * table_GlobalValue.Ins.Get_Int("n_CostPerPetGacha");
2024-12-15 01:39:39 +00:00
break;
}
2025-07-07 07:09:02 +00:00
m_Amount.RandomizeCryptoKey();
m_Price.RandomizeCryptoKey();
if (index == 0)
ADInfo.Ins.Show_AD(Send_Gamble);
else if (sdata.Check_ItemAmount(1, m_Price))
Send_Gamble();
}
2024-12-15 01:39:39 +00:00
2025-07-07 07:09:02 +00:00
void Send_Gamble()
{
2024-12-15 01:39:39 +00:00
var sdata = ServerInfo.Ins.m_ServerData;
2025-07-07 07:09:02 +00:00
if (m_Price > 0) sdata.Use_Item(1, m_Price);
2024-12-15 01:39:39 +00:00
var itemlst = new List<ItemSimpleData>();
var petlst = table_petlist.Ins.Get_DataList();
2025-07-07 07:09:02 +00:00
for (int i = 0; i < m_Amount; i++)
2024-12-15 01:39:39 +00:00
{
var temp = new ItemSimpleData();
temp.itemid = petlst[Random.Range(0, petlst.Count)].n_PetID;
temp.amount = 1;
itemlst.Add(temp);
sdata.Add_Item(temp.itemid, 1);
}
2025-03-18 23:03:53 +00:00
2025-07-07 07:09:02 +00:00
sdata.Add_MissionCount(ePurpose.GACHA_PET, 0, m_Amount);
sdata.Add_MissionCount(ePurpose.GACHA_PET_ACC, 0, m_Amount);
sdata.Add_MissionCount(ePurpose.GACHA_ALL, 0, m_Amount);
2025-05-14 23:33:37 +00:00
2025-07-07 07:09:02 +00:00
ObtainItemUI.Ins.Set(itemlst);
NewGameUI.Ins.m_PetUI.m_PetUI_Right.Set_Scroll();
Set_GambleUI();
2024-12-15 01:39:39 +00:00
}
}