Project_WL/Assets/Script/UI/Center/Pass/PassContent.cs

149 lines
6.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PassContent : ScrollViewMgr
{
string[] str_desc = new string[]
{
"[12e7ff]매일 출석하고 보상을 받아보세요![-]\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n28회 보상 획득 후, 다음 날 0시에 초기화됩니다.",
"[12e7ff]마녀를 성장시키고 보상을 받아보세요!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]마녀를 성장시키고 보상을 받아보세요!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]마녀의 여정에 따라 보상을 드립니다!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]마녀의 여정에 따라 보상을 드립니다!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]몬스터를 처치하고 보상을 받아보세요!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]몬스터를 처치하고 보상을 받아보세요!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]몬스터를 처치하고 보상을 받아보세요!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
"[12e7ff]몬스터를 처치하고 보상을 받아보세요!\n[93a5bc]패스를 구매하시면 추가로 더욱 많은 보상을 받을 수 있어요.\n초기화되지 않는 패스입니다.",
};
public AllPassUI m_AllPassUI;
public UILabel[] labels; // 0 마일리지, 1 가격, 2 desc, 3 현재 값, 4 패스이름
public GameObject[] gos; // 0 구매 버튼, 1 우편함 확인, 2 구매 완료, 3 패스lock, 4 올패스
public UISprite[] sprites; // 0 1 패스 아이콘
int curPassType = -1;
private void OnEnable()
{
Set();
m_AllPassUI.Check();
}
public override void Set()
{
var sdata = ServerInfo.Ins.m_ServerData;
var passtype = GameUI.Ins.LobbyUI.Get_PassUI().CurTab;
var shopdata = table_shop.Ins.Get_Data(eItem.Pass, passtype);
var lst = table_pass.Ins.Get_DataList(passtype);
Set_ScrollView(lst, true);
Set_Coroutine(() =>
{
var step = sdata.Get_PassStep(passtype, sdata.Get_PassBuy(passtype) < 2);
if (step > lst.Count - 7)
m_scrollview.SetDragAmount(1f, 0f, false);
else
m_scrollview.SetDragAmount(step / (float)lst.Count, 0f, false);
}, Time.deltaTime);
curPassType = passtype;
labels[0].text = DSUtil.Format("+{0}", shopdata.Mileage);
var price = InappInfo.Ins.Get_Price_orNull(shopdata.InappID);
if (string.IsNullOrEmpty(price))
{
labels[1].text = "구매 불가";
gos[0].SetActive(false);
}
else
labels[1].text = price;
labels[2].text = str_desc[passtype];
switch (passtype)
{
case 0:
labels[3].text = DSUtil.Format("출석중\n{0}일", sdata.Get_PassStep(passtype, true));
labels[4].text = "출석패스";
sprites[2].color = new Color32(0, 216, 255, 255);
break;
case 1:
case 2:
labels[3].text = DSUtil.Format("Level\n{0}", sdata.PC.Lv);
labels[4].text = "레벨패스";
sprites[2].color = new Color32(244, 90, 180, 255);
break;
case 3:
case 4:
//labels[3].text = DSUtil.Format("{0}-{1}", sdata.Get_Common(eCommon.MaxMapID), sdata.Get_Common(eCommon.MaxStage));
labels[4].text = "스테이지패스";
sprites[2].color = new Color32(13, 210, 94, 255);
break;
default:
//labels[3].text = DSUtil.Format("몬스터 처치\n{0}", sdata.Get_MissionCount(MyValue.arr_Mission[1], 1));
labels[4].text = "몬스터패스";
sprites[2].color = new Color32(255, 230, 50, 255);
break;
}
var passbuy = sdata.Get_PassBuy(passtype);
gos[0].SetActive(passbuy == 0);
gos[1].SetActive(passbuy == 1);
gos[2].SetActive(passbuy >= 2);
gos[3].SetActive(passbuy < 2);
gos[4].SetActive(sdata.IsNohavePass());
sprites[1].gameObject.SetActive(passbuy >= 2);
GameUI.Ins.LobbyUI.Get_PassUI().Set_Noti();
}
public void OnClick_GetAllReward()
{
var lst = new List<ItemData>();
for (int i = 0; i < list_CardBase.Count; i++)
{
var temp = list_CardBase[i] as PassCard;
var idata = temp.Get_RewardFree();
if (idata != null) lst.Add(idata);
idata = temp.Get_RewardPay();
if (idata != null) lst.Add(idata);
}
if (lst.Count > 0)
{
GetItemUI.Ins.Set(lst);
GetItemUI.Ins.Show_Items();
Set();
//if (GameUI.Ins.LobbyUI.Get_PassUI().CurTab == 0) NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.GetPass);
}
}
public void OnClick_AllPass()
{
if (ServerInfo.Ins.m_ServerData.IsNohavePass())
m_AllPassUI.Set(null);
}
public void OnClick_Buy()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.IsNohavePass())
m_AllPassUI.Set(Buy);
else
Buy();
}
void Buy()
{
var sdata = ServerInfo.Ins.m_ServerData;
var passtype = GameUI.Ins.LobbyUI.Get_PassUI().CurTab;
if (sdata.Get_PassBuy(passtype) == 0)
{
var shopdata = table_shop.Ins.Get_Data(eItem.Pass, passtype);
NetWait.Ins.Set(true);
//InappInfo.Ins.Buy_InappItem(shopdata.InappID, () =>
//{
// NetWait.Ins.Set(false);
// Set();
//});
}
else
ToastUI.Ins.Set(23);
}
}