You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
983 lines
35 KiB
983 lines
35 KiB
using IVDataFormat;
|
|
using IVServerFormat;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
|
|
|
|
public class ProfileMgr : MonoBehaviour
|
|
{
|
|
#region Const
|
|
private static ProfileMgr curMgr = null;
|
|
#endregion
|
|
|
|
[SerializeField]
|
|
private EScrController escrTitle, escrIcon;
|
|
|
|
#region UI
|
|
public Canvas canvasUI;
|
|
private Transform LeftPanel;
|
|
private Canvas RightPanel;
|
|
private GameObject LeftIcon, LeftTitle;
|
|
private GameObject RightIcon, RightTitle;
|
|
|
|
// 왼쪽 UI
|
|
private TextMeshProUGUI txtInfo; //공용
|
|
|
|
private Image selectIconImage;
|
|
private Image imgIconClearStamp, imgTitleClearStamp;
|
|
private TextMeshProUGUI txtIconName, txtIconCondition, txtIconPath; // 이름, 조건, 획득처
|
|
private TextMeshProUGUI txtTitleName;
|
|
private GraphicsColorSetter txtTitleNameColorSetter;
|
|
private TextMeshProUGUI txtTitleEffect, txtTitleDesc, txtTitleCondition, txtTitlePath; // 이름, 효과, 효과설명, 조건, 획득처
|
|
private TextMeshProUGUI txtIconSldValue, txtTitleSldValue;
|
|
private Button btnIconEquip, btnTitleEquip;
|
|
private Slider sldIcon, sldTitle;
|
|
private ParticleSystem iconStamp, titleStmap;
|
|
|
|
// 오른쪽 UI
|
|
private TextMeshProUGUI txtProfile;
|
|
private TextMeshProUGUI txtCurTitle;
|
|
private TextMeshProUGUI txtCurTitleName;
|
|
private GraphicsColorSetter txtCurTitleNameColorSetter;
|
|
//private Image IconLine, TitleLine;
|
|
private Button btnTabIcon, btnTabTitle;
|
|
private RectTransform TabIconBadge, TabTitleBadge;
|
|
private RectTransform imgIconSelect, imgTitleSelect;
|
|
private RectTransform[] contentBadge;
|
|
private RectTransform IconEquipBadge, TitleEquipBadge;
|
|
private Button[] btnContents;
|
|
private Image[] imgHighlights;
|
|
[SerializeField]
|
|
private GameObject ProfileBadge;
|
|
|
|
#endregion
|
|
|
|
#region Variables
|
|
private bool bReLocalize = true;
|
|
private bool bReLocalizeTitle, bReLocalizeIcon = false;
|
|
|
|
private int iloading;
|
|
private int iSelectTab;
|
|
private int iSelectContent;
|
|
private int iIconSelect;
|
|
private int iTitleSelect;
|
|
private int IconBadgeCnt = 0;
|
|
private int[] TitleBadgeCnt = new int[5];
|
|
#endregion
|
|
private EnhancedUI.SmallList<int> titles;
|
|
private int[] titleIds;
|
|
private int[] contentSize;
|
|
|
|
private nIdCnt titleData = null;
|
|
private nIdCnt iconData = null;
|
|
private nIdCnt titleEquipData = null;
|
|
private nIdCnt iconEquipData = null;
|
|
private nAchivement achiveIcon = new nAchivement();
|
|
private nAchivement achiveTitle = new nAchivement();
|
|
|
|
#region Base
|
|
private void Awake()
|
|
{
|
|
curMgr = this;
|
|
}
|
|
private void Start()
|
|
{
|
|
iloading--;
|
|
}
|
|
public static void SLocalize(bool bmain)
|
|
{
|
|
if (curMgr != null)
|
|
curMgr.Localize(bmain);
|
|
}
|
|
private void Localize(bool bmain)
|
|
{
|
|
if (bmain)
|
|
{
|
|
Init();
|
|
}
|
|
else
|
|
{
|
|
bReLocalize = false;
|
|
|
|
LeftPanel = canvasUI.transform.Find("canvasLeftPn");
|
|
RightPanel = canvasUI.transform.Find("canvasRightPn").GetComponent<Canvas>();
|
|
LeftIcon = LeftPanel.Find("PlayerIcon").gameObject;
|
|
LeftTitle = LeftPanel.Find("PlayerTitle").gameObject;
|
|
RightIcon = RightPanel.transform.Find("PlayerIcon").gameObject;
|
|
RightTitle = RightPanel.transform.Find("PlayerTitle").gameObject;
|
|
btnTabIcon = RightPanel.transform.Find("TabIcon").GetComponent<Button>();
|
|
btnTabTitle = RightPanel.transform.Find("TabTitle").GetComponent<Button>();
|
|
//IconLine = RightPanel.transform.Find("IconLine").GetComponent<Image>();
|
|
//TitleLine = RightPanel.transform.Find("TitleLine").GetComponent<Image>();
|
|
TabIconBadge = btnTabIcon.transform.Find("badge").GetComponent<RectTransform>();
|
|
TabTitleBadge = btnTabTitle.transform.Find("badge").GetComponent<RectTransform>();
|
|
imgIconSelect = btnTabIcon.transform.GetChild(0).GetComponent<RectTransform>();
|
|
imgTitleSelect = btnTabTitle.transform.GetChild(0).GetComponent<RectTransform>();
|
|
|
|
txtInfo = LeftPanel.Find("txtT").GetComponent<TextMeshProUGUI>();
|
|
|
|
txtIconName = LeftIcon.transform.Find("txtIconName").GetComponent<TextMeshProUGUI>();
|
|
txtIconCondition = LeftIcon.transform.Find("txtIconCondition").GetComponent<TextMeshProUGUI>();
|
|
txtIconPath = LeftIcon.transform.Find("txtIconPath").GetComponent<TextMeshProUGUI>();
|
|
btnIconEquip = LeftIcon.transform.Find("btnEquip").GetComponent<Button>();
|
|
sldIcon = LeftIcon.transform.Find("sldClearRate").GetComponent<Slider>();
|
|
txtIconSldValue = sldIcon.transform.Find("Value").GetComponent<TextMeshProUGUI>();
|
|
selectIconImage = LeftIcon.transform.Find("IconImage").GetComponent<Image>();
|
|
imgIconClearStamp = LeftIcon.transform.Find("ClearStamp").GetComponent<Image>();
|
|
iconStamp = LeftIcon.transform.Find("CompleteEffect").GetComponent<ParticleSystem>();
|
|
|
|
|
|
txtTitleName = LeftTitle.transform.Find("txtTitleName").GetComponent<TextMeshProUGUI>();
|
|
txtTitleNameColorSetter = txtTitleName.GetComponent<GraphicsColorSetter>();
|
|
txtTitleEffect = LeftTitle.transform.Find("txtTitleEffect").GetComponent<TextMeshProUGUI>();
|
|
txtTitleCondition = LeftTitle.transform.Find("txtTitleCondition").GetComponent<TextMeshProUGUI>();
|
|
txtTitleDesc = LeftTitle.transform.Find("txtTitleDesc").GetComponent<TextMeshProUGUI>();
|
|
txtTitlePath = LeftTitle.transform.Find("txtTitlePath").GetComponent<TextMeshProUGUI>();
|
|
btnTitleEquip = LeftTitle.transform.Find("btnEquip").GetComponent<Button>();
|
|
sldTitle = LeftTitle.transform.Find("sldClearRate").GetComponent<Slider>();
|
|
txtTitleSldValue = sldTitle.transform.Find("Value").GetComponent<TextMeshProUGUI>();
|
|
imgTitleClearStamp = LeftTitle.transform.Find("ClearStamp").GetComponent<Image>();
|
|
titleStmap = LeftTitle.transform.Find("CompleteEffect").GetComponent<ParticleSystem>();
|
|
|
|
txtProfile = RightPanel.transform.Find("txtT").GetComponent<TextMeshProUGUI>();
|
|
|
|
RightIcon = RightPanel.transform.Find("PlayerIcon").gameObject;
|
|
RightTitle = RightPanel.transform.Find("PlayerTitle").gameObject;
|
|
|
|
txtCurTitle = RightTitle.transform.Find("txtCurTitle").GetComponent<TextMeshProUGUI>();
|
|
txtCurTitleName = RightTitle.transform.Find("txtCurTitleName").GetComponent<TextMeshProUGUI>();
|
|
txtCurTitleNameColorSetter = txtCurTitleName.GetComponent<GraphicsColorSetter>();
|
|
Transform buttons = RightTitle.transform.Find("Buttons");
|
|
btnContents = new Button[5];
|
|
imgHighlights = new Image[5];
|
|
contentBadge = new RectTransform[5];
|
|
for (int i = 0; i < btnContents.Length; i++)
|
|
{
|
|
btnContents[i] = buttons.GetChild(0).transform.GetChild(i).GetComponent<Button>();
|
|
imgHighlights[i] = btnContents[i].transform.Find("select").GetComponent<Image>();
|
|
contentBadge[i] = btnContents[i].transform.Find("badge").GetComponent<RectTransform>();
|
|
}
|
|
|
|
// set Text
|
|
txtProfile.text = LocalizationText.GetText("profile_title");
|
|
txtCurTitle.text = LocalizationText.GetText("profile_cur_title");
|
|
btnContents[0].transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_battle");
|
|
btnContents[1].transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equipment");
|
|
btnContents[2].transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_summon");
|
|
btnContents[3].transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("dg_title");
|
|
btnContents[4].transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_etc");
|
|
|
|
// 아이콘, 칭호 탭
|
|
btnTabIcon.transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_icon");
|
|
btnTabTitle.transform.Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_title");
|
|
// 장착
|
|
btnIconEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equip");
|
|
btnTitleEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equip");
|
|
IconEquipBadge = btnIconEquip.transform.GetChild(2).GetComponent<RectTransform>();
|
|
TitleEquipBadge = btnTitleEquip.transform.GetChild(2).GetComponent<RectTransform>();
|
|
// 아이콘 획득 조건, 칭호 효과 ,칭호 획득 조건
|
|
txtIconCondition.text = LocalizationText.GetText("profile_get_condition");
|
|
txtTitleEffect.text = LocalizationText.GetText("own_effect_title");
|
|
txtTitleCondition.text = LocalizationText.GetText("profile_get_condition");
|
|
iSelectTab = -1;
|
|
iloading = 0;
|
|
iSelectContent = 1;
|
|
if (DataHandler.PlayData.playerTitle == -1)
|
|
{
|
|
txtCurTitleName.text = LocalizationText.GetText("profile_empty_title");
|
|
txtCurTitleName.color = Color.white;
|
|
}
|
|
else
|
|
{
|
|
var targetTitle = DataHandler.GetPlayerTitle(DataHandler.PlayData.playerTitle);
|
|
|
|
txtCurTitleName.text = FormatString.GetGoodsName(cGoods.TProfileTitle, DataHandler.PlayData.playerTitle);
|
|
txtCurTitleNameColorSetter?.SetColor(targetTitle.grade.ToString());
|
|
}
|
|
}
|
|
}
|
|
|
|
// 설정에서 언어 변경 시 처리.
|
|
public static void SReLocalize()
|
|
{
|
|
curMgr.Localize(true);
|
|
curMgr.bReLocalize = true;
|
|
curMgr.bReLocalizeTitle = true;
|
|
curMgr.bReLocalizeIcon = true;
|
|
}
|
|
#endregion
|
|
|
|
#region UI
|
|
public static void SMoveProfile(eEventMoveType content)
|
|
{
|
|
curMgr.OpenProfile();
|
|
switch (content)
|
|
{
|
|
case eEventMoveType.ProfileIcon:
|
|
curMgr.TabIcon();
|
|
break;
|
|
case eEventMoveType.ProfileTitleBattle:
|
|
curMgr.TabTitle();
|
|
curMgr.btnTabContent(1);
|
|
break;
|
|
case eEventMoveType.ProfileTitleEquip:
|
|
curMgr.TabTitle();
|
|
curMgr.btnTabContent(2);
|
|
break;
|
|
case eEventMoveType.ProfileTitleSummon:
|
|
curMgr.TabTitle();
|
|
curMgr.btnTabContent(3);
|
|
break;
|
|
case eEventMoveType.ProfileTitleDungeon:
|
|
curMgr.TabTitle();
|
|
curMgr.btnTabContent(4);
|
|
break;
|
|
case eEventMoveType.ProfileTitleEtc:
|
|
curMgr.TabTitle();
|
|
curMgr.btnTabContent(5);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void OpenProfile()
|
|
{
|
|
if (iloading > 0)
|
|
return;
|
|
|
|
iloading++;
|
|
GameUIMgr.SSetMainUiOn(false);
|
|
GameUIMgr.SRightWindowClose();
|
|
if (bReLocalize)
|
|
Localize(false);
|
|
|
|
DataHandler.AddTitleBadge();
|
|
DataHandler.AddIconBadge();
|
|
setBadge();
|
|
canvasUI.enabled = true;
|
|
openRightPanel();
|
|
iIconSelect = 1;
|
|
iTitleSelect = 1;
|
|
DataHandler.CheckAllAchivement();
|
|
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
|
|
if (iSelectTab <= 0)
|
|
TabIcon();
|
|
else
|
|
TabTitle();
|
|
}
|
|
|
|
public void CloseProfile()
|
|
{
|
|
closeRightPanel();
|
|
imgHighlights[iSelectContent - 1].gameObject.SetActive(false);
|
|
canvasUI.enabled = false;
|
|
GameUIMgr.SSetMainUiOn(true);
|
|
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
|
|
iloading--;
|
|
iSelectTab = -1;
|
|
}
|
|
|
|
|
|
public void TabIcon()
|
|
{
|
|
LeftTitle.SetActive(false);
|
|
RightTitle.SetActive(false);
|
|
//IconLine.gameObject.SetActive(false);
|
|
imgTitleSelect.gameObject.SetActive(true);
|
|
imgIconSelect.gameObject.SetActive(false);
|
|
|
|
LeftIcon.SetActive(true);
|
|
RightIcon.SetActive(true);
|
|
//TitleLine.gameObject.SetActive(true);
|
|
|
|
txtInfo.text = LocalizationText.GetText("profile_icon_info");
|
|
selectIconImage.sprite = AddressableMgr.GetPlayerIcon(iIconSelect);
|
|
iSelectTab = 1;
|
|
setSldValue();
|
|
setBtnEquip();
|
|
SSetSelectIconNum(1);
|
|
EScrIconSet();
|
|
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
}
|
|
|
|
public void TabTitle()
|
|
{
|
|
LeftIcon.SetActive(false);
|
|
RightIcon.SetActive(false);
|
|
//TitleLine.gameObject.SetActive(false);
|
|
imgTitleSelect.gameObject.SetActive(false);
|
|
imgIconSelect.gameObject.SetActive(true);
|
|
|
|
LeftTitle.SetActive(true);
|
|
RightTitle.SetActive(true);
|
|
//IconLine.gameObject.SetActive(true);
|
|
|
|
txtInfo.text = LocalizationText.GetText("profile_title_info");
|
|
iSelectTab = 0;
|
|
setSldValue();
|
|
setBtnEquip();
|
|
SSetSelectTitleNum(1);
|
|
imgHighlights[iSelectContent - 1].gameObject.SetActive(true);
|
|
EScrTitleSet();
|
|
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
}
|
|
|
|
public void openRightPanel()
|
|
{
|
|
RightPanel.enabled = true;
|
|
}
|
|
|
|
public void closeRightPanel()
|
|
{
|
|
RightPanel.enabled = false;
|
|
}
|
|
|
|
// 소유 정보에 따라 획득 버튼 디자인 변경
|
|
public void setBtnEquip()
|
|
{
|
|
// 타이틀 탭 일때
|
|
if (iSelectTab <= 0)
|
|
{
|
|
// 이미 있을 경우
|
|
if (DataHandler.GetPlayerTitle(iTitleSelect).have)
|
|
{
|
|
btnTitleEquip.transform.GetChild(1).gameObject.SetActive(false);
|
|
imgTitleClearStamp.gameObject.SetActive(true);
|
|
TitleEquipBadge.gameObject.SetActive(false);
|
|
if (DataHandler.GetPlayerTitle(iTitleSelect).id == DataHandler.PlayData.playerTitle)
|
|
{
|
|
btnTitleEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_unequip");
|
|
}
|
|
else
|
|
btnTitleEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equip");
|
|
}
|
|
// 클리어 못했을 경우
|
|
else
|
|
{
|
|
achiveTitle = new nAchivement(DataHandler.GetPlayerTitle(iTitleSelect));
|
|
// 획득은 못했는데 조건은 만족했을경우
|
|
if (DataHandler.isClearAchievements(achiveTitle) > 0)
|
|
{
|
|
btnTitleEquip.transform.GetChild(1).gameObject.SetActive(false);
|
|
imgTitleClearStamp.gameObject.SetActive(false);
|
|
TitleEquipBadge.gameObject.SetActive(true);
|
|
btnTitleEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_gain");
|
|
}
|
|
//획득 못할 경우
|
|
else
|
|
{
|
|
btnTitleEquip.transform.GetChild(1).gameObject.SetActive(true);
|
|
imgTitleClearStamp.gameObject.SetActive(false);
|
|
TitleEquipBadge.gameObject.SetActive(false);
|
|
btnTitleEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_gain");
|
|
}
|
|
}
|
|
|
|
}
|
|
// 아이콘 탭 일때
|
|
else
|
|
{
|
|
// 조건을 클리어 했을 경우
|
|
if (DataHandler.GetPlayerIcon(iIconSelect).have)
|
|
{
|
|
if (DataHandler.GetPlayerIcon(iIconSelect).id == DataHandler.PlayData.playerIcon)
|
|
btnIconEquip.transform.GetChild(1).gameObject.SetActive(true);
|
|
else
|
|
btnIconEquip.transform.GetChild(1).gameObject.SetActive(false);
|
|
|
|
IconEquipBadge.gameObject.SetActive(false);
|
|
imgIconClearStamp.gameObject.SetActive(true);
|
|
btnIconEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equip");
|
|
}
|
|
else
|
|
{
|
|
if (DataHandler.isClearAchievements(achiveIcon) > 0)
|
|
{
|
|
imgIconClearStamp.gameObject.SetActive(false);
|
|
IconEquipBadge.gameObject.SetActive(true);
|
|
btnIconEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_gain");
|
|
btnIconEquip.transform.GetChild(1).gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
imgIconClearStamp.gameObject.SetActive(false);
|
|
IconEquipBadge.gameObject.SetActive(false);
|
|
btnIconEquip.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_gain");
|
|
btnIconEquip.transform.GetChild(1).gameObject.SetActive(true);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public void setSldValue()
|
|
{
|
|
int itmpNum;
|
|
int icurValue;
|
|
if (iSelectTab <= 0)
|
|
{
|
|
achiveTitle = new nAchivement(DataHandler.GetPlayerTitle(iTitleSelect));
|
|
if(DataHandler.GetPlayerTitle(iTitleSelect).condType == eCondition.CosHave || DataHandler.GetPlayerTitle(iTitleSelect).condType == eCondition.CosSetHave
|
|
|| DataHandler.GetPlayerTitle(iTitleSelect).condType == eCondition.StageClear || DataHandler.GetPlayerTitle(iTitleSelect).condType == eCondition.DgStagePet)
|
|
{
|
|
//itmpNum = DataHandler.GetAchievementValue(achiveTitle);
|
|
//icurValue = itmpNum >= 1 ? 1 : itmpNum;
|
|
txtTitleSldValue.text = FormatString.TextConditionRate(achiveTitle);// FormatString.TextCntPer(icurValue.ToString(), 1.ToString());
|
|
sldTitle.value = DataHandler.isClearAchievements(achiveTitle) / 1.0f;
|
|
}
|
|
//else if()
|
|
//{
|
|
// itmpNum = DataHandler.GetAchievementValue(achiveTitle);
|
|
// icurValue = itmpNum >= DataHandler.GetPlayerTitle(iTitleSelect).condValue ? DataHandler.GetPlayerTitle(iTitleSelect).condValue : itmpNum;
|
|
// txtTitleSldValue.text = FormatString.TextConditionRate(achiveTitle);//FormatString.TextCntPer(FormatString.TextConditionValue(eCondition.StageClear, icurValue), FormatString.TextConditionValue(eCondition.StageClear, DataHandler.GetPlayerTitle(iTitleSelect).condValue));
|
|
// sldTitle.value = DataHandler.isClearAchievements(achiveTitle) / 1.0f; //DataHandler.GetAchievementValue(achiveTitle) / (float)DataHandler.GetPlayerTitle(iTitleSelect).condValue;
|
|
//}
|
|
else
|
|
{
|
|
itmpNum = DataHandler.GetAchievementValue(achiveTitle);
|
|
icurValue = itmpNum >= DataHandler.GetPlayerTitle(iTitleSelect).condValue ? DataHandler.GetPlayerTitle(iTitleSelect).condValue : itmpNum;
|
|
txtTitleSldValue.text = FormatString.TextConditionRate(achiveTitle);//FormatString.TextCntPer(icurValue.ToString(), DataHandler.GetPlayerTitle(iTitleSelect).condValue.ToString());
|
|
sldTitle.value = DataHandler.GetAchievementValue(achiveTitle) / (float)DataHandler.GetPlayerTitle(iTitleSelect).condValue;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (DataHandler.GetPlayerIcon(iIconSelect).condType == eCondition.CosHave || DataHandler.GetPlayerTitle(iIconSelect).condType == eCondition.CosSetHave)
|
|
{
|
|
itmpNum = DataHandler.GetAchievementValue(achiveIcon);
|
|
icurValue = itmpNum >= 1 ? 1 : itmpNum;
|
|
txtIconSldValue.text = FormatString.TextConditionRate(achiveIcon);//FormatString.TextCntPer(DataHandler.GetAchievementValue(achiveIcon).ToString(),1.ToString());
|
|
sldIcon.value = (float)icurValue / 1.0f;
|
|
}
|
|
else
|
|
{
|
|
itmpNum = DataHandler.GetAchievementValue(achiveIcon);
|
|
icurValue = itmpNum >= DataHandler.GetPlayerIcon(iIconSelect).condValue ? DataHandler.GetPlayerIcon(iIconSelect).condValue : itmpNum;
|
|
txtIconSldValue.text = FormatString.TextConditionRate(achiveIcon);//FormatString.TextCntPer(DataHandler.GetAchievementValue(achiveIcon).ToString(), DataHandler.GetPlayerIcon(iIconSelect).condValue.ToString());
|
|
sldIcon.value = (float)icurValue / (float)DataHandler.GetPlayerIcon(iIconSelect).condValue;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public void btnBuffInfo()
|
|
{
|
|
GameUIMgr.SOpenPopupHaveEfc(LocalizationText.GetText("own_effect_title"), BuffMgr.Instance.GetTitleEfcs());
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region init
|
|
|
|
private void Init()
|
|
{
|
|
Dictionary<int, dTitle> datas = DataHandler.GetAllPlayerTitle();
|
|
titleIds = new int[datas.Count];
|
|
contentSize = new int[5];
|
|
int cnt = 1;
|
|
int contentNum = 1;
|
|
contentSize[0] = 0;
|
|
for (int i = 0; i < datas.Count; i++)
|
|
{
|
|
if (contentNum != (int)datas[i+1].category)
|
|
{
|
|
contentSize[cnt] = i;
|
|
cnt++;
|
|
contentNum++;
|
|
}
|
|
titleIds[i] = datas[i+1].id;
|
|
}
|
|
if (!DataHandler.GetPlayerIcon(1).have)
|
|
GetIcon(1);
|
|
|
|
if (!DataHandler.GetPlayerTitle(57).have)
|
|
GetTitle(57);
|
|
|
|
DataHandler.AddTitleBadge();
|
|
DataHandler.AddIconBadge();
|
|
setMainBadge();
|
|
}
|
|
|
|
public void EScrIconSet()
|
|
{
|
|
Dictionary<int, dIcon> datas = DataHandler.GetAllplayerIcon();
|
|
EnhancedUI.SmallList<int> icons = new EnhancedUI.SmallList<int>();
|
|
for (int i = 1; i < datas.Count + 1; i += 4)
|
|
{
|
|
icons.Add(datas[i].id);
|
|
}
|
|
escrIcon.SetType(0);
|
|
escrIcon.LoadDatas(icons);
|
|
if (bReLocalizeIcon)
|
|
escrIcon.Localize();
|
|
}
|
|
|
|
|
|
public void EScrTitleSet()
|
|
{
|
|
Dictionary<int, dTitle> datas = DataHandler.GetAllPlayerTitle();
|
|
titles = new EnhancedUI.SmallList<int>();
|
|
int cnt = 0;
|
|
for (int i = 0; i < datas.Count; i++)
|
|
{
|
|
if (iSelectContent == (int)datas[i + 1].category)
|
|
{
|
|
if (cnt % 2 == 0)
|
|
titles.Add(i);
|
|
cnt++;
|
|
}
|
|
}
|
|
escrTitle.SetType(0);
|
|
escrTitle.LoadDatas(titles);
|
|
if (bReLocalizeTitle)
|
|
escrTitle.Localize();
|
|
}
|
|
#endregion
|
|
|
|
#region button
|
|
public void btnTabContent(int inum)
|
|
{
|
|
iSelectContent = inum;
|
|
for (int i = 0; i < imgHighlights.Length; i++)
|
|
{
|
|
imgHighlights[i].gameObject.SetActive(false);
|
|
}
|
|
imgHighlights[iSelectContent - 1].gameObject.SetActive(true);
|
|
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
|
|
EScrTitleSet();
|
|
}
|
|
public void btnEquipTitle()
|
|
{
|
|
EquipTitle(iTitleSelect);
|
|
}
|
|
|
|
public void btnEquipIcon()
|
|
{
|
|
EquipIcon(iIconSelect);
|
|
}
|
|
public void setBadge()
|
|
{
|
|
int sum = 0;
|
|
if (TabIconBadge == null)
|
|
return;
|
|
|
|
if (IconBadgeCnt > 0)
|
|
TabIconBadge.gameObject.SetActive(true);
|
|
else
|
|
TabIconBadge.gameObject.SetActive(false);
|
|
|
|
for (int i = 0; i < 5; i++)
|
|
{
|
|
sum += TitleBadgeCnt[i];
|
|
if (TitleBadgeCnt[i] > 0)
|
|
contentBadge[i].gameObject.SetActive(true);
|
|
else
|
|
contentBadge[i].gameObject.SetActive(false);
|
|
}
|
|
if (sum > 0)
|
|
TabTitleBadge.gameObject.SetActive(true);
|
|
else
|
|
TabTitleBadge.gameObject.SetActive(false);
|
|
setMainBadge();
|
|
}
|
|
public void setMainBadge(){
|
|
|
|
int sum = 0;
|
|
for (int i = 0; i < 5; i++)
|
|
{
|
|
sum += TitleBadgeCnt[i];
|
|
}
|
|
|
|
if (IconBadgeCnt > 0 || sum > 0)
|
|
ProfileBadge.SetActive(true);
|
|
else
|
|
ProfileBadge.SetActive(false);
|
|
}
|
|
|
|
public IEnumerator stampEffect()
|
|
{
|
|
if (iSelectTab <= 0)
|
|
titleStmap.Play();
|
|
else
|
|
iconStamp.Play();
|
|
|
|
SoundMgr.Instance.PlaySfx(SoundName.UnlockThing);
|
|
yield return new WaitForSeconds(0.18f);
|
|
|
|
if (iSelectTab <= 0)
|
|
{
|
|
setBtnEquip();
|
|
escrTitle.scroller.RefreshActiveCellViews();
|
|
}
|
|
else
|
|
{
|
|
setBtnEquip();
|
|
escrIcon.scroller.RefreshActiveCellViews();
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region static
|
|
public static void SSetIconUi(int key)
|
|
{
|
|
curMgr.SetIconUi(key);
|
|
}
|
|
|
|
public void SetIconUi(int ikey)
|
|
{
|
|
dIcon icon = DataHandler.GetPlayerIcon(ikey);
|
|
int id = icon.id;
|
|
txtIconName.text = FormatString.GetGoodsName(cGoods.TProfileIcon, ikey);
|
|
txtIconPath.text = FormatString.TextCondition(icon.condType, icon.condValue);
|
|
selectIconImage.sprite = AddressableMgr.GetPlayerIcon(iIconSelect);
|
|
}
|
|
public static void SSetTitleUi(int key)
|
|
{
|
|
curMgr.SetTitleUi(key);
|
|
}
|
|
public void SetTitleUi(int ikey)
|
|
{
|
|
dTitle title = DataHandler.GetPlayerTitle(ikey);
|
|
txtTitleName.text = FormatString.GetGoodsName(cGoods.TProfileTitle, ikey);
|
|
txtTitleNameColorSetter?.SetColor(title.grade.ToString());
|
|
txtTitlePath.text = FormatString.TextCondition(title.condType, title.condValue);
|
|
txtTitleDesc.text = FormatString.TextEffectTitleValue(title.abilityType, title.abilityValue); //LocalizationText.GetText("efc" + (int)title.abilityType)+ " + " + FormatString.TextInt(title.abilityValue);
|
|
}
|
|
public static int SGetSelectIconNum()
|
|
{
|
|
return curMgr.iIconSelect;
|
|
}
|
|
public static void SSetSelectIconNum(int inum)
|
|
{
|
|
curMgr.iIconSelect = inum;
|
|
curMgr.SetAchiveIcon(inum);
|
|
curMgr.setBtnEquip();
|
|
curMgr.setSldValue();
|
|
curMgr.escrIcon.scroller.RefreshActiveCellViews();
|
|
}
|
|
public void SetAchiveIcon(int inum)
|
|
{
|
|
achiveIcon = new nAchivement(DataHandler.GetPlayerIcon(inum));
|
|
}
|
|
public void SetAchiveTitle(int inum)
|
|
{
|
|
achiveTitle = new nAchivement(DataHandler.GetPlayerTitle(inum));
|
|
}
|
|
public static int SGetSelectTitleNum()
|
|
{
|
|
return curMgr.iTitleSelect;
|
|
}
|
|
public static void SSetSelectTitleNum(int inum)
|
|
{
|
|
curMgr.iTitleSelect = inum;
|
|
curMgr.SetAchiveTitle(inum);
|
|
curMgr.setBtnEquip();
|
|
curMgr.setSldValue();
|
|
curMgr.escrTitle.scroller.RefreshActiveCellViews();
|
|
}
|
|
public static int SGetTitleContent()
|
|
{
|
|
return curMgr.iSelectContent;
|
|
}
|
|
public static int SGetTitleId(int idx)
|
|
{
|
|
return curMgr.titleIds[idx];
|
|
}
|
|
public static void SGetIcon(int id)
|
|
{
|
|
curMgr.GetIcon(id);
|
|
}
|
|
public static void SGetTitle(int id)
|
|
{
|
|
curMgr.GetTitle(id);
|
|
}
|
|
|
|
public static void addTitleBadge(eContent content, int ivalue)
|
|
{
|
|
curMgr.TitleBadgeCnt[(int)content -1] = ivalue;
|
|
}
|
|
public static void subTitleBadge(eContent content)
|
|
{
|
|
curMgr.TitleBadgeCnt[(int)content -1]--;
|
|
}
|
|
public static void addIconBadge(int ivalue)
|
|
{
|
|
curMgr.IconBadgeCnt = ivalue;
|
|
}
|
|
public static void subIconBadge()
|
|
{
|
|
curMgr.IconBadgeCnt--;
|
|
}
|
|
public static void SSetBadge()
|
|
{
|
|
DataHandler.AddTitleBadge();
|
|
DataHandler.AddIconBadge();
|
|
curMgr.setBadge();
|
|
}
|
|
public static void SSetMainBadge()
|
|
{
|
|
curMgr.setMainBadge();
|
|
}
|
|
|
|
public static bool SCloseProfile()
|
|
{
|
|
if (curMgr.iSelectTab == -1)
|
|
return false;
|
|
else if (curMgr.canvasUI.enabled)
|
|
{
|
|
curMgr.CloseProfile();
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region sever
|
|
|
|
// 아이콘 획득
|
|
public void GetIcon(int id)
|
|
{
|
|
CoverCamera.Hold();
|
|
|
|
if (DataHandler.GetPlayerIcon(id).have)
|
|
{
|
|
GameUIMgr.SOpenPopup1Button("Already Have");
|
|
CoverCamera.Release();
|
|
return;
|
|
}
|
|
else if (!DataHandler.GetPlayerIcon(id).have)
|
|
{
|
|
iconData = new nIdCnt(id);
|
|
SvConnectManager.Instance.RequestSvPost(true, 0, UrlApi.GetUrl(UrlApi.ProfileIcon), typeof(nIconGetReutn), AIconGetSucc, AIconGetFail, iconData, false);
|
|
}
|
|
else
|
|
return;
|
|
}
|
|
// 아이콘 획득 통신 성공.
|
|
private void AIconGetSucc(object result, object request)
|
|
{
|
|
nIconGetReutn data = result as nIconGetReutn;
|
|
|
|
DataHandler.AddPlayerIcon(iconData.sid);
|
|
if (iconData.sid != 1)
|
|
{
|
|
//setBtnEquip();
|
|
subIconBadge();
|
|
setBadge();
|
|
StartCoroutine("stampEffect");
|
|
}
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
|
|
|
|
// 아이콘 획득 통신 실패
|
|
private void AIconGetFail(SvError error, object request)
|
|
{
|
|
GameUIMgr.SOpenPopup1Button("Title Property Fail.");
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
|
|
// 아이콘 장착
|
|
public void EquipIcon(int id)
|
|
{
|
|
|
|
dIcon data = DataHandler.GetPlayerIcon(id);
|
|
|
|
if (data.have)
|
|
{
|
|
if (iIconSelect == id && DataHandler.PlayData.playerIcon != id)
|
|
{
|
|
CoverCamera.Hold();
|
|
iconEquipData = new nIdCnt(id);
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
SvConnectManager.Instance.RequestSvPost(true, 0, UrlApi.GetUrl(UrlApi.ProfileIconChange), typeof(nTitleGetReutn), AIconEquipSucc, AIconEquipFail, iconEquipData, false);
|
|
CoverCamera.Release();
|
|
setBtnEquip();
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
//GameUIMgr.SOpenToast("icon equip error : select error");
|
|
return;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if(DataHandler.isClearAchievements(achiveIcon) > 0)
|
|
GetIcon(id);
|
|
else
|
|
return;
|
|
}
|
|
|
|
}
|
|
private void AIconEquipSucc(object result, object request)
|
|
{
|
|
DataHandler.EquipPlayerIcon(iconEquipData.sid);
|
|
GameUIMgr.SSetPlayerIcon(DataHandler.PlayData.playerIcon);
|
|
GameUIMgr.SOpenToast(LocalizationText.GetText("profile_icon_equip"));
|
|
setBtnEquip();
|
|
escrIcon.scroller.RefreshActiveCellViews();
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
|
|
|
|
private void AIconEquipFail(SvError error, object request)
|
|
{
|
|
GameUIMgr.SOpenPopup1Button("Icon Property Fail.");
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
// 칭호 획득
|
|
public void GetTitle(int id)
|
|
{
|
|
CoverCamera.Hold();
|
|
|
|
// 이미 얻은 경우
|
|
if (DataHandler.GetPlayerTitle(id).have)
|
|
{
|
|
GameUIMgr.SOpenPopup1Button("Already Have");
|
|
CoverCamera.Release();
|
|
return;
|
|
}
|
|
// 아닌경우
|
|
else if (!DataHandler.GetPlayerTitle(id).have)
|
|
{
|
|
titleData = new nIdCnt(id);
|
|
SvConnectManager.Instance.RequestSvPost(true, 0, UrlApi.GetUrl(UrlApi.ProfileTitle), typeof(nTitleGetReutn), ATitleGetSucc, ATitleGetFail, titleData, false);
|
|
}
|
|
else
|
|
return;
|
|
}
|
|
|
|
// 칭호 획득 통신 성공.
|
|
private void ATitleGetSucc(object result, object request)
|
|
{
|
|
nTitleGetReutn data = result as nTitleGetReutn;
|
|
|
|
// title have true 처리
|
|
DataHandler.AddPlayerTitle(titleData.sid);
|
|
// title 효과 적용
|
|
DataHandler.UnlockTitle(titleData.sid);
|
|
// 뱃지 제거
|
|
|
|
// 최초 획득 title 예외처리
|
|
if(titleData.sid != 57)
|
|
{
|
|
//setBtnEquip();
|
|
subTitleBadge(DataHandler.GetPlayerTitle(titleData.sid).category);
|
|
setBadge();
|
|
StartCoroutine("stampEffect");
|
|
}
|
|
|
|
BuffMgr.Instance.CalcAllStat();
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
|
|
// 칭호 획득 통신 실패
|
|
private void ATitleGetFail(SvError error, object request)
|
|
{
|
|
GameUIMgr.SOpenPopup1Button("Title Property Fail.");
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
|
|
// 칭호 장착
|
|
public void EquipTitle(int id)
|
|
{
|
|
dTitle data = DataHandler.GetPlayerTitle(id);
|
|
|
|
if (data.have)
|
|
{
|
|
//현재 고른 칭호이며, 현재 장착중인 칭호가 아닐경우
|
|
if (iTitleSelect == id && DataHandler.PlayData.playerTitle != id)
|
|
{
|
|
CoverCamera.Hold();
|
|
titleEquipData = new nIdCnt(id);
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
SvConnectManager.Instance.RequestSvPost(true, 0, UrlApi.GetUrl(UrlApi.ProfileTitleChange), typeof(nTitleGetReutn), ATitleEquipSucc, ATitleEquipFail, titleEquipData, false);
|
|
CoverCamera.Release();
|
|
setBtnEquip();
|
|
return;
|
|
}
|
|
//현재 고른 칭호이며, 현재 장착중인 칭호일 경우
|
|
else if (iTitleSelect == id && DataHandler.PlayData.playerTitle == id)
|
|
{
|
|
CoverCamera.Hold();
|
|
titleEquipData = new nIdCnt(-1);
|
|
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
|
|
SvConnectManager.Instance.RequestSvPost(true, 0, UrlApi.GetUrl(UrlApi.ProfileTitleChange), typeof(nTitleGetReutn), ATitleEquipSucc, ATitleEquipFail, titleEquipData, false);
|
|
CoverCamera.Release();
|
|
setBtnEquip();
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
// 이미 획득했는데 특정 버그로 인해 해금이 안된 상황 예외처리
|
|
GameUIMgr.SOpenToast("title equip error : select error");
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (DataHandler.isClearAchievements(achiveTitle) > 0)
|
|
{
|
|
GetTitle(iTitleSelect);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void ATitleEquipSucc(object result, object request)
|
|
{
|
|
if(titleEquipData.sid == -1)
|
|
{
|
|
txtCurTitleName.text = LocalizationText.GetText("profile_empty_title");
|
|
txtCurTitleName.color = Color.white;
|
|
DataHandler.EquipPlayerTitle(titleEquipData.sid);
|
|
GameUIMgr.SSetPlayerTitle(DataHandler.PlayData.playerTitle);
|
|
GameUIMgr.SOpenToast(LocalizationText.GetText("profile_title_unequip"));
|
|
}
|
|
else
|
|
{
|
|
DataHandler.EquipPlayerTitle(titleEquipData.sid);
|
|
GameUIMgr.SSetPlayerTitle(DataHandler.PlayData.playerTitle);
|
|
txtCurTitleName.text = FormatString.GetGoodsName(cGoods.TProfileTitle, DataHandler.PlayData.playerTitle);
|
|
txtCurTitleNameColorSetter?.SetColor(DataHandler.GetPlayerTitle(DataHandler.PlayData.playerTitle).grade.ToString());
|
|
GameUIMgr.SOpenToast(LocalizationText.GetText("profile_title_equip"));
|
|
}
|
|
setBtnEquip();
|
|
MissionMgr.SRefreshMission();
|
|
escrTitle.scroller.RefreshActiveCellViews();
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
|
|
private void ATitleEquipFail(SvError error, object request)
|
|
{
|
|
GameUIMgr.SOpenPopup1Button("Title Property Fail.");
|
|
CoverCamera.Release();
|
|
iloading--;
|
|
}
|
|
#endregion
|
|
}
|