134 lines
4.9 KiB
C#
134 lines
4.9 KiB
C#
using CodeStage.AntiCheat.ObscuredTypes;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class TitleUI : LobbyNonMenuBase
|
|
{
|
|
public GameObject[] gos; // 0 붙이기 버튼, 1 가이드 애로우, 2 젬 버튼
|
|
public UILabel[] labels; // 0 현재 착용, 1 설명, 2 보유효과, 3 붙이기, 4 선택 타이틀 이름, 5 젬 가격
|
|
public UISprite[] sprites; // 0 등급, 1 젬 버튼
|
|
public UISlider slider_proc;
|
|
|
|
TitleCard m_SelectTitle;
|
|
ObscuredInt m_Gem;
|
|
|
|
public override void Set()
|
|
{
|
|
base.Set();
|
|
|
|
m_Gem = 0; m_Gem.RandomizeCryptoKey();
|
|
|
|
var lst = table_title.Ins.Get_DataList();
|
|
Set_ScrollView(lst);
|
|
var equiptitle = ServerInfo.Ins.m_ServerData.Get_Common(eCommon.Title);
|
|
for (int i = 0; i < list_CardBase.Count; i++)
|
|
{
|
|
var tc = list_CardBase[i] as TitleCard;
|
|
if (tc.Get_Data().ID == equiptitle)
|
|
{
|
|
tc.OnClick_Select();
|
|
labels[0].text = tc.Get_Data().Name;
|
|
Set_Coroutine(() =>
|
|
{
|
|
if (tc.Get_Data().ID < 11)
|
|
m_scrollview.ResetPosition();
|
|
else
|
|
m_scrollview.SetDragAmount(0f, (float)tc.Get_Data().ID / lst.Count, false);
|
|
}, Time.deltaTime);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void SelectTitle(TitleCard _tc)
|
|
{
|
|
if (m_SelectTitle != null && m_SelectTitle != _tc) m_SelectTitle.UnSelect();
|
|
m_SelectTitle = _tc;
|
|
var data = _tc.Get_Data();
|
|
labels[1].text = data.Desc;
|
|
labels[2].text = data.Stat == eStat.None ? "없음" : DSUtil.Format("{0} {1}", MyText.Get_StatName(data.Stat), MyText.Get_StatValueText(data.Stat, data.StatValue));
|
|
sprites[0].spriteName = DSUtil.Format("titlegrade{0}", (int)data.Grade);
|
|
labels[4].text = data.Name;
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
gos[0].SetActive(sdata.IsObtainItem(data.ID) && sdata.Get_Common(eCommon.Title) != data.ID);
|
|
if (sdata.Title.Find(f => f[0] == data.ID)[1] == 1)
|
|
slider_proc.value = 1f;
|
|
else
|
|
{
|
|
var a = sdata.Get_TitleCondition(data.ID);
|
|
var b = data.ConditionValue < 1f ? 1f : data.ConditionValue;
|
|
slider_proc.value = a / b;
|
|
}
|
|
|
|
gos[1].SetActive(data.ID == 94 && NewGameUI.Ins.m_GuideQuestUI.Get_Purpose() == ePurpose.ChangeTitle && ServerInfo.Ins.m_ServerData.Get_Common(eCommon.GuideClear) == 0);
|
|
|
|
Cal_Gem();
|
|
}
|
|
void Cal_Gem()
|
|
{
|
|
switch (m_SelectTitle.Get_Data().Grade)
|
|
{
|
|
case eItemGrade.Common: m_Gem = 100; break;
|
|
case eItemGrade.Magic: m_Gem = 200; break;
|
|
case eItemGrade.Rare: m_Gem = 400; break;
|
|
case eItemGrade.Unique: m_Gem = 600; break;
|
|
case eItemGrade.Epic: m_Gem = 1000; break;
|
|
case eItemGrade.Legend: m_Gem = 1500; break;
|
|
case eItemGrade.Myth: m_Gem = 2000; break;
|
|
}
|
|
|
|
int ID = m_SelectTitle.Get_Data().ID;
|
|
if (ID == 1 || ID == 94)
|
|
m_Gem = 0;
|
|
else if (ID == 2)
|
|
m_Gem = 2000;
|
|
m_Gem.RandomizeCryptoKey();
|
|
|
|
labels[5].text = m_Gem.ToString();
|
|
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
var isGet = sdata.Title.Find(f => f[0] == ID)[3] > 0;
|
|
var isObtain = sdata.IsObtainItem(ID);
|
|
gos[2].SetActive(m_Gem > 0 && !isGet);
|
|
if (gos[2].activeSelf) sprites[1].spriteName = m_Gem > 0 && !isGet && isObtain ? "button5" : MyValue.OffButtonName;
|
|
}
|
|
|
|
|
|
public void OnClick_Equip()
|
|
{
|
|
if (gos[0].activeInHierarchy)
|
|
{
|
|
ServerInfo.Ins.m_ServerData.Set_Common(eCommon.Title, m_SelectTitle.Get_Data().ID);
|
|
Set();
|
|
if (m_SelectTitle.Get_Data().ID == 94)
|
|
{
|
|
NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.ChangeTitle);
|
|
gos[1].SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
public void OnClick_Get()
|
|
{
|
|
if (gos[2].activeSelf && sprites[1].spriteName.Equals("button5"))
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
int ID = m_SelectTitle.Get_Data().ID;
|
|
var titlesdata = sdata.Title.Find(f => f[0] == ID);
|
|
titlesdata[3] = 1;
|
|
titlesdata[3].RandomizeCryptoKey();
|
|
var obtain = sdata.Add_Item(new ItemData(eItem.Gem, 0, m_Gem, "title " + ID, eUICardType.GetItem));
|
|
GetItemUI.Ins.Set(obtain);
|
|
GetItemUI.Ins.Show_Items();
|
|
Cal_Gem();
|
|
}
|
|
}
|
|
|
|
public override void OnClick_Back()
|
|
{
|
|
base.OnClick_Back();
|
|
TitleGetUI.list_gettitle.Clear();
|
|
GameUI.Ins.LobbyUI.Set_Noti();
|
|
GuideQuestArrow.Ins.gos_arrow[31].gos[0].SetActive(NewGameUI.Ins.m_GuideQuestUI.Get_Purpose() == ePurpose.ChangeTitle && ServerInfo.Ins.m_ServerData.Get_Common(eCommon.GuideClear) == 0);
|
|
}
|
|
} |