158 lines
5.5 KiB
C#
158 lines
5.5 KiB
C#
using CodeStage.AntiCheat.ObscuredTypes;
|
|
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 Image[] images; // 0 액티브 스킬, 1 패시브 스킬
|
|
public TextMeshProUGUI[] texts; // 0 펫 이름, 1 등급, 2 가챠 레벨, 3 가챠 진행상황, 4 펫 레벨
|
|
public Slider slider_gacha;
|
|
public MoneyForm[] gacha_moneyForms; // 0 광고(시간), 1 1회 뽑기, 2 10회 뽑기
|
|
|
|
public zSizeControler zSizeControler;
|
|
|
|
PetListTableData m_Data;
|
|
|
|
private void Update()
|
|
{
|
|
Set_GambleADTimeText();
|
|
}
|
|
|
|
public void Set(PetListTableData data)
|
|
{
|
|
//var sdata = ServerInfo.Ins.m_ServerData;
|
|
m_Data = data;
|
|
Set_PurStat();
|
|
Set_3DModel(false, m_Data.s_PetPrefab, tf =>
|
|
{
|
|
tf.localScale = Vector3.one * m_Data.f_UIScale;
|
|
tf.localPosition = Vector3.up * m_Data.f_UIOffSet_y;
|
|
zSizeControler.Set(tf);
|
|
});
|
|
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);
|
|
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_PetActiveSkill);
|
|
images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_PetPassiveSkill);
|
|
|
|
Set_GambleUI();
|
|
}
|
|
|
|
void Set_GambleUI()
|
|
{
|
|
Set_GambleADTimeText();
|
|
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
texts[2].text = DSUtil.Format("Lv.{0}", sdata.PetData.GachaLv);
|
|
texts[3].text = DSUtil.Format("{0}/{1}", sdata.PetData.GachaExp, "???");
|
|
slider_gacha.value = sdata.PetData.GachaExp / 1;
|
|
|
|
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);
|
|
}
|
|
|
|
void Set_PurStat()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
var lv = sdata.Get_PetLv(m_Data.n_PetID);
|
|
texts[4].text = $"Lv.{lv}";
|
|
//arr_statcard[0].Set(true, eStat.None, lv);
|
|
arr_statcard[0].Set(false, eStat.ATK, (int)m_Data.Get_PureStat(eStat.ATK, lv));
|
|
arr_statcard[1].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[2].Set(false, eStat.DEF, (int)m_Data.Get_PureStat(eStat.DEF, lv));
|
|
else
|
|
arr_statcard[2].Set(false, eStat.M_DEF, (int)m_Data.Get_PureStat(eStat.M_DEF, lv));
|
|
}
|
|
|
|
public void OnClick_PetDetail()
|
|
{
|
|
NewGameUI.Ins.m_PetUI.m_PetSkillDetailUI.OnClick_Back();
|
|
m_PetInfoDetailUI.Set(m_Data);
|
|
}
|
|
|
|
public void OnClick_Skill(int type)
|
|
{
|
|
m_PetInfoDetailUI.OnClick_Back();
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
var lv = sdata.Get_PetLv(m_Data.n_PetID);
|
|
if (type == 0) // 액티브
|
|
NewGameUI.Ins.m_PetUI.m_PetSkillDetailUI.Set(m_Data.n_PetActiveSkill, m_Data.n_PetID, lv);
|
|
else
|
|
NewGameUI.Ins.m_PetUI.m_PetSkillDetailUI.Set(m_Data.n_PetPassiveSkill, m_Data.n_PetID, lv);
|
|
|
|
}
|
|
|
|
ObscuredInt m_Amount, m_Price;
|
|
public void OnClick_Gamble(int index)
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
|
|
m_Amount = 1;
|
|
m_Price = 0;
|
|
switch (index)
|
|
{
|
|
case 0: // 광고 뽑기
|
|
var ts = sdata.Get_PetGachaADTime();
|
|
if (ts.TotalSeconds > 0) return;
|
|
break;
|
|
case 1: // 뽑기1
|
|
m_Price = m_Amount * table_GlobalValue.Ins.Get_Int("n_CostPerPetGacha");
|
|
break;
|
|
case 2: // 뽑기2
|
|
m_Amount = 10;
|
|
m_Price = m_Amount * table_GlobalValue.Ins.Get_Int("n_CostPerPetGacha");
|
|
break;
|
|
}
|
|
m_Amount.RandomizeCryptoKey();
|
|
m_Price.RandomizeCryptoKey();
|
|
|
|
if (index == 0)
|
|
ADInfo.Ins.Show_AD(() =>
|
|
{
|
|
sdata.PetData.PetGachaADTime = ServerInfo.ServerTime.AddMinutes(table_GlobalValue.Ins.Get_Int("n_AddPetGachaADMinute"));
|
|
Send_Gamble();
|
|
});
|
|
else if (sdata.Check_ItemAmount(1, m_Price))
|
|
Send_Gamble();
|
|
}
|
|
|
|
void Send_Gamble()
|
|
{
|
|
ServerInfo.Ins.Save_Pet_Gacha(m_Price == 0, m_Amount, result =>
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
sdata.Use_Item(1, result.gem);
|
|
|
|
var itemlst = new List<ItemSimpleData>();
|
|
for (int i = 0; i < result.pets.Count; i++)
|
|
{
|
|
var temp = new ItemSimpleData();
|
|
temp.itemid = result.pets[i];
|
|
temp.amount = 1;
|
|
itemlst.Add(temp);
|
|
sdata.Add_Item(temp.itemid, 1);
|
|
}
|
|
|
|
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);
|
|
|
|
ObtainItemUI.Ins.Set(itemlst);
|
|
NewGameUI.Ins.m_PetUI.m_PetUI_Right.Set_Scroll();
|
|
Set_GambleUI();
|
|
});
|
|
}
|
|
} |