319 lines
15 KiB
C#
319 lines
15 KiB
C#
using CodeStage.AntiCheat.ObscuredTypes;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class EquipmentInfoUI : MonoBehaviour
|
|
{
|
|
public UIItemCard m_card;
|
|
public UILabel[] labels; // 0 이름, 1 필요 강화석, 2 필요 합성 카드, 3 필요 초월 카드, 4 마법 설명
|
|
public UILabel[] labels_reinforce; // 0 전 lv, 1 후 lv, 2 스탯 이름1, 3 전 스탯1, 4 후 스탯1, 5 스탯 이름2, 6 전 스탯2, 7 후 스탯2
|
|
public UILabel[] labels_transcend; // 0 전 lv, 1 후 lv, 2 스탯 이름, 3 전 스탯, 4 후 스탯
|
|
public UISprite[] sprites; // 0 강화석, 1 2 아이템, 3 초기화 버튼, 4 5 개화 아이콘
|
|
public GameObject[] gos; // 0 강화 스탯2, 1 초월, 2 합성, 3 불가능(강화), 4 불가능(합성), 5 불가능(초월), 6 초월 이펙트, 7 강화석 이펙트, 8 강화 두번째 화살표, 9 초기화 버튼, 10 장착 화살표, 11 합성 화살표, 12 강화 화살표
|
|
public NGUIButtonPress m_NGUIButtonPress;
|
|
public MagicBlossomUI m_MagicBlossomUI;
|
|
public UILabel[] labels_blossom; // 0 개화1, 1 개화1 필요 갯수, 2 개화2, 3 개화2 필요 갯수
|
|
public GameObject[] gos_blossom; // 0 개화1 불가능, 1 개화2 불가능, 2 개화1 완료, 3 개화2 완료
|
|
public GameObject[] gos_equip; // 0 착용, 1 착용 중, 2 해제
|
|
|
|
UIItemCard m_UIItemCard;
|
|
ItemData m_ItemData;
|
|
SkillListTableData m_MagicData;
|
|
ObscuredInt m_Unit;
|
|
ObscuredDouble m_NeedStone;
|
|
bool RefreshRight_WhenClose;
|
|
|
|
private void Awake()
|
|
{
|
|
m_NGUIButtonPress.Set_Action(OnClick_Reinforce);
|
|
m_card.Set_CardType(eUICardType.DetailInfo);
|
|
m_MagicBlossomUI.Check();
|
|
}
|
|
|
|
public void Set(UIItemCard _ic, int _unit)
|
|
{
|
|
m_UIItemCard = _ic;
|
|
m_ItemData = _ic.Get_ItemData();
|
|
m_MagicData = _ic.Get_SkillTableData();
|
|
m_Unit = _unit;
|
|
RefreshRight_WhenClose = false;
|
|
Set_UI();
|
|
Check_GuideQuest();
|
|
}
|
|
void Set_UI()
|
|
{
|
|
m_card.Set(m_ItemData);
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
var isequip = sdata.IsEquipItem(m_ItemData.Get_ID());
|
|
gos_equip[0].SetActive(m_ItemData.Lv > 0 && !isequip); // 착용 버튼
|
|
gos_equip[1].SetActive(m_ItemData.Lv > 0 && isequip); // 착용 중
|
|
gos_equip[2].SetActive(m_ItemData.Lv > 0 && isequip && m_ItemData.ItemType == eItem.Skill); // 해제 버튼
|
|
gos[2].SetActive(m_ItemData.Grade < eItemGrade.Myth);
|
|
gos[4].SetActive(m_ItemData.Lv < 1 || !sdata.Check_ItemAmount(m_ItemData.ItemType, MyValue.arr_NeedMixCount[(int)m_ItemData.Grade], m_ItemData.Get_ID(), false));
|
|
gos[6].SetActive(false);
|
|
gos[7].SetActive(false);
|
|
labels[0].text = DSUtil.Format("{0}{1}", MyValue.Get_GradeColor((int)m_ItemData.Grade), m_ItemData.Name);
|
|
labels[2].text = MyValue.arr_NeedMixCount[(int)m_ItemData.Grade].ToString();
|
|
labels_reinforce[0].text = m_ItemData.Lv.ToString();
|
|
labels_reinforce[1].text = (m_ItemData.Lv + m_Unit).ToString();
|
|
|
|
if (m_ItemData.ItemType == eItem.Skill)
|
|
{
|
|
for (int i = 0; i < sprites.Length; i++)
|
|
sprites[i].spriteName = m_ItemData.IconInfo.Icon;
|
|
|
|
//m_NeedStone = m_MagicData.n_LvUpAmount * m_Unit;
|
|
labels[1].text = m_NeedStone.ToString();
|
|
gos[3].SetActive(m_ItemData.Lv < 1 || !sdata.Check_ItemAmount(m_ItemData.ItemType, m_NeedStone, m_ItemData.Get_ID(), false));
|
|
gos[9].SetActive(false);
|
|
labels[4].text = m_MagicData.Get_SkillDesc();
|
|
|
|
// 강화
|
|
var pcstat = MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
|
labels_reinforce[2].text = "마법 효과";
|
|
//labels_reinforce[3].text = DSUtil.Format("{0:#,##0.##}%", m_MagicData.SkillDamage * 100f);
|
|
//labels_reinforce[4].text = DSUtil.Format("{0:#,##0.##}%", m_MagicData.Get_SkillDamage(m_ItemData.Lv + m_Unit - 1) * 100f);
|
|
labels_reinforce[5].text = "재사용 대기시간";
|
|
labels_reinforce[6].text = DSUtil.Format("{0}(강화불가)", MyText.Get_StatValueText(eStat.COOLTIME_Multiplier, m_MagicData.Get_CoolTime(pcstat.Get_Stat(eStat.COOLTIME_Multiplier))));
|
|
labels_reinforce[7].text = "";
|
|
gos[8].SetActive(false);
|
|
|
|
// 개화
|
|
//labels_blossom[0].text = m_MagicData.Get_SkillEnhanceDesc(1);
|
|
//labels_blossom[1].text = m_MagicData.Step1Amount.ToString();
|
|
//labels_blossom[2].text = m_MagicData.Get_SkillEnhanceDesc(2);
|
|
//labels_blossom[3].text = m_MagicData.Step2Amount.ToString();
|
|
|
|
if (m_ItemData.Lv > 0)
|
|
{
|
|
gos_blossom[2].SetActive(false);
|
|
//if (sdata.Get_SkillStep(m_MagicData.n_SkillID, 1))
|
|
//{
|
|
// gos_blossom[0].SetActive(false);
|
|
// gos_blossom[2].SetActive(true);
|
|
//}
|
|
//else
|
|
//gos_blossom[0].SetActive(!sdata.Check_ItemAmount(eItem.Magic, m_MagicData.Step1Amount, m_MagicData.n_SkillID, false));
|
|
|
|
gos_blossom[3].SetActive(false);
|
|
//if (sdata.Get_SkillStep(m_MagicData.n_SkillID, 2))
|
|
//{
|
|
// gos_blossom[1].SetActive(false);
|
|
// gos_blossom[3].SetActive(true);
|
|
//}
|
|
//else
|
|
//gos_blossom[1].SetActive(!sdata.Check_ItemAmount(eItem.Magic, m_MagicData.Step2Amount, m_MagicData.n_SkillID, false));
|
|
}
|
|
else
|
|
{
|
|
gos_blossom[0].SetActive(true);
|
|
gos_blossom[1].SetActive(true);
|
|
gos_blossom[2].SetActive(false);
|
|
gos_blossom[3].SetActive(false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
m_NeedStone = 0d;
|
|
for (int i = 0; i < m_Unit; i++)
|
|
m_NeedStone += m_ItemData.Get_NeedStoneAmount(i);
|
|
|
|
labels[1].text = NumberFormatter.FormatNumber(m_NeedStone);
|
|
gos[3].SetActive(m_ItemData.Lv < 1 || !sdata.Check_ItemAmount(DSUtil.Get_StoneType(m_ItemData.ItemType), m_NeedStone, 0, false));
|
|
labels[3].text = MyValue.arr_NeedTranscendCount[(int)m_ItemData.Grade].ToString();
|
|
labels[4].text = "";
|
|
gos[5].SetActive(m_ItemData.Lv < 1 || !sdata.Check_ItemAmount(m_ItemData.ItemType, MyValue.arr_NeedTranscendCount[(int)m_ItemData.Grade], m_ItemData.Get_ID(), false));
|
|
gos[7].transform.localPosition = sprites[0].transform.localPosition;
|
|
gos[8].SetActive(true);
|
|
gos[9].SetActive(true);
|
|
|
|
var statinfo = m_ItemData.Get_StatInfo();
|
|
labels_reinforce[2].text = MyText.Get_StatName(statinfo[0].Stat);
|
|
labels_reinforce[3].text = MyText.Get_StatValueText(statinfo[0].Stat, statinfo[0].Get_StatValue(m_ItemData.Lv));
|
|
labels_reinforce[4].text = MyText.Get_StatValueText(statinfo[0].Stat, statinfo[0].Get_StatValue(m_ItemData.Lv + m_Unit));
|
|
if (statinfo[1].Stat < eStat.None)
|
|
{
|
|
labels_reinforce[5].text = MyText.Get_StatName(statinfo[1].Stat);
|
|
labels_reinforce[6].text = MyText.Get_StatValueText(statinfo[1].Stat, statinfo[1].Get_StatValue(m_ItemData.Lv));
|
|
labels_reinforce[7].text = MyText.Get_StatValueText(statinfo[1].Stat, statinfo[1].Get_StatValue(m_ItemData.Lv + m_Unit));
|
|
gos[0].SetActive(true);
|
|
}
|
|
else
|
|
gos[0].SetActive(false);
|
|
|
|
labels_transcend[0].text = m_ItemData.TLv.ToString();
|
|
labels_transcend[1].text = (m_ItemData.TLv + 1).ToString();
|
|
labels_transcend[2].text = MyText.Get_EquipmentSpecial(m_ItemData.ItemType, m_ItemData.Get_ID());
|
|
if (m_ItemData.ItemType == eItem.Weapon)
|
|
{
|
|
gos[1].SetActive(true);
|
|
labels_transcend[3].text = DSUtil.Format("{0:0.##}%", statinfo[2].Get_StatValue(m_ItemData.TLv) * 100f);
|
|
labels_transcend[4].text = DSUtil.Format("{0:0.##}%", statinfo[2].Get_StatValue(m_ItemData.TLv + 1) * 100f);
|
|
}
|
|
else
|
|
{
|
|
if (statinfo[2].Stat < eStat.None)
|
|
{
|
|
gos[1].SetActive(true);
|
|
labels_transcend[3].text = MyText.Get_StatValueText(statinfo[2].Stat, statinfo[2].Get_StatValue(m_ItemData.TLv));
|
|
labels_transcend[4].text = MyText.Get_StatValueText(statinfo[2].Stat, statinfo[2].Get_StatValue(m_ItemData.TLv + 1));
|
|
}
|
|
else
|
|
gos[1].SetActive(false);
|
|
}
|
|
|
|
sprites[0].spriteName = DSUtil.Get_ItemSpriteInfo(DSUtil.Get_StoneType(m_ItemData.ItemType)).Icon;
|
|
sprites[1].spriteName = sprites[2].spriteName = m_ItemData.IconInfo.Icon;
|
|
}
|
|
|
|
m_NeedStone.RandomizeCryptoKey();
|
|
}
|
|
void Check_GuideQuest()
|
|
{
|
|
if (gos[10].activeInHierarchy) gos[10].SetActive(false);
|
|
if (gos[11].activeInHierarchy) gos[11].SetActive(false);
|
|
if (gos[12].activeInHierarchy) gos[12].SetActive(false);
|
|
|
|
switch (NewGameUI.Ins.m_GuideQuestUI.Get_Purpose())
|
|
{
|
|
case ePurpose.EqiupWeapon: Set_GuideArrow(10, eItem.Weapon, true); break;
|
|
case ePurpose.EqiupFairy: Set_GuideArrow(10, eItem.Fairy, true); break;
|
|
case ePurpose.EquipMagic: Set_GuideArrow(10, eItem.Skill, true); break;
|
|
case ePurpose.MixRing: Set_GuideArrow(11, eItem.Ring, false); break;
|
|
case ePurpose.EnchantMagic: Set_GuideArrow(12, eItem.Skill, false); break;
|
|
}
|
|
}
|
|
void Set_GuideArrow(int index, eItem item, bool isequip)
|
|
{
|
|
if (m_ItemData.Lv > 0 && m_ItemData.ItemType == item && ServerInfo.Ins.m_ServerData.Get_Common(eCommon.GuideClear) == 0)
|
|
{
|
|
gos[index].SetActive(true);
|
|
if (isequip) DSUtil.InActivateGameObjects(gos_equip, 0);
|
|
}
|
|
}
|
|
|
|
public void OnClick_Equip()
|
|
{
|
|
if (gos[10].activeInHierarchy) gos[10].SetActive(false);
|
|
switch (m_ItemData.ItemType)
|
|
{
|
|
case eItem.Weapon: NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.EqiupWeapon); break;
|
|
case eItem.Fairy: NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.EqiupFairy); break;
|
|
case eItem.Skill: NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.EquipMagic); break;
|
|
}
|
|
//ServerInfo.Ins.m_ServerData.Equip.Set_Equip(Content_Equipment.Ins.m_Equipment_Left.m_DeckTabUI.Get_Tab(), m_ItemData.ItemType, m_ItemData.ItemType - eItem.PC, m_ItemData.Get_ID(), 0);
|
|
Set_UI();
|
|
Content_Equipment.Ins.m_Equipment_Left.Set_UI(true, true);
|
|
}
|
|
public void OnClick_UnEquip()
|
|
{
|
|
//ServerInfo.Ins.m_ServerData.Equip.Set_Equip(Content_Equipment.Ins.m_Equipment_Left.m_DeckTabUI.Get_Tab(), m_ItemData.ItemType, m_ItemData.ItemType - eItem.PC, 0, m_ItemData.Get_ID());
|
|
Set_UI();
|
|
Content_Equipment.Ins.m_Equipment_Left.Set_UI(true, false);
|
|
}
|
|
public void OnClick_Reinforce()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
if (m_ItemData.ItemType == eItem.Skill)
|
|
{
|
|
if (sdata.Check_ItemAmount(eItem.Skill, m_NeedStone, m_MagicData.n_SkillID))
|
|
{
|
|
sdata.Use_Item(eItem.Skill, m_NeedStone, m_MagicData.n_SkillID);
|
|
sdata.Add_SkillLv(m_MagicData.n_SkillID, m_Unit);
|
|
m_ItemData.Lv += m_Unit;
|
|
Set_UI();
|
|
gos[7].SetActive(true);
|
|
sdata.Add_MissionCount(MyValue.arr_Mission[1], 30);
|
|
NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.EnchantMagic);
|
|
SoundInfo.Ins.Play_OneShot(eSound.s018_StoneLvUp);
|
|
RefreshRight_WhenClose = true;
|
|
gos[12].SetActive(false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var stonetype = DSUtil.Get_StoneType(m_ItemData.ItemType);
|
|
if (sdata.Get_SmeltingLv(m_ItemData.Get_ID()) > 0 && sdata.Check_ItemAmount(stonetype, m_NeedStone))
|
|
{
|
|
sdata.Use_Item(stonetype, m_NeedStone);
|
|
//sdata.Add_SmeltingLv(m_ItemData.ItemType, m_ItemData.Get_ID(), m_Unit);
|
|
m_ItemData.Lv += m_Unit;
|
|
Set_UI();
|
|
gos[7].SetActive(true);
|
|
gos[7].transform.localPosition = Vector3.zero;
|
|
SoundInfo.Ins.Play_OneShot(eSound.s018_StoneLvUp);
|
|
RefreshRight_WhenClose = true;
|
|
}
|
|
}
|
|
}
|
|
public void OnClick_MixAll()
|
|
{ // 모두합성 (일괄합성 아님)
|
|
OnClick_Mix();
|
|
// 오른쪽 맥스 누르고 실행
|
|
GameUI.Ins.LobbyUI.Get_MixPopup().MixAll();
|
|
}
|
|
public void OnClick_Mix()
|
|
{
|
|
GameUI.Ins.LobbyUI.Get_MixPopup().Set(m_UIItemCard, MyValue.arr_NeedMixCount[(int)m_ItemData.Grade]);
|
|
}
|
|
|
|
public void OnClick_Transcend()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
if (sdata.Get_SmeltingLv(m_ItemData.Get_ID()) > 0 && sdata.Check_ItemAmount(m_ItemData.ItemType, MyValue.arr_NeedTranscendCount[(int)m_ItemData.Grade], m_ItemData.Get_ID()))
|
|
{
|
|
sdata.Add_MissionCount(MyValue.arr_Mission[1], Get_RepeatMissionID_Transcend());
|
|
sdata.Use_Item(m_ItemData.ItemType, MyValue.arr_NeedTranscendCount[(int)m_ItemData.Grade], m_ItemData.Get_ID());
|
|
sdata.Add_EquipmentTLv(m_ItemData.ItemType, m_ItemData.Get_ID());
|
|
++m_ItemData.TLv;
|
|
Set_UI();
|
|
gos[6].SetActive(true);
|
|
gos[6].transform.localPosition = Vector3.zero;
|
|
SoundInfo.Ins.Play_OneShot(eSound.s017_Transcend);
|
|
RefreshRight_WhenClose = true;
|
|
}
|
|
}
|
|
|
|
int Get_RepeatMissionID_Transcend() { return m_ItemData.ItemType - eItem.Weapon + 23; }
|
|
|
|
public void OnClick_ResetReinforce()
|
|
{
|
|
Content_Equipment.Ins.m_EquipmentReinforceInitPopup.Set(m_ItemData, ()=>
|
|
{
|
|
Set_UI();
|
|
RefreshRight_WhenClose = true;
|
|
});
|
|
}
|
|
public void OnClick_Step1()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
int step = 1;
|
|
//if (sdata.Check_ItemAmount(eItem.Magic, m_MagicData.Step1Amount, m_MagicData.n_SkillID) && !sdata.Get_SkillStep(m_MagicData.n_SkillID, step))
|
|
{
|
|
//sdata.Use_Item(eItem.Magic, m_MagicData.Step1Amount, m_MagicData.n_SkillID);
|
|
sdata.Add_SkillAwakenLv(m_MagicData.n_SkillID);
|
|
m_MagicBlossomUI.Set(step, m_MagicData, () => { Set_UI(); RefreshRight_WhenClose = true; });
|
|
}
|
|
}
|
|
public void OnClick_Step2()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
int step = 2;
|
|
//if (sdata.Check_ItemAmount(eItem.Magic, m_MagicData.Step2Amount, m_MagicData.n_SkillID) && !sdata.Get_SkillStep(m_MagicData.n_SkillID, step))
|
|
{
|
|
//sdata.Use_Item(eItem.Magic, m_MagicData.Step2Amount, m_MagicData.n_SkillID);
|
|
sdata.Add_SkillAwakenLv(m_MagicData.n_SkillID);
|
|
m_MagicBlossomUI.Set(step, m_MagicData, () => { Set_UI(); RefreshRight_WhenClose = true; });
|
|
}
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
if (RefreshRight_WhenClose)
|
|
{
|
|
RefreshRight_WhenClose = false;
|
|
Content_Equipment.Ins.m_Equipment_Left.Set_UI(true, false);
|
|
}
|
|
}
|
|
} |