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

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
}