备份CatanBuilding瘦身独立工程
This commit is contained in:
166
Assets/Scripts/UI/Advert/AdvertRewardPanel.cs
Normal file
166
Assets/Scripts/UI/Advert/AdvertRewardPanel.cs
Normal file
@@ -0,0 +1,166 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using game;
|
||||
using GameCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AdvertRewardPanel : MonoBehaviour
|
||||
{
|
||||
Tables _tables;
|
||||
ShopPackManager packM;
|
||||
Pack pack;
|
||||
int num;
|
||||
RewardItemNew[] rewardItems;
|
||||
|
||||
//倒计时
|
||||
GameObject cd;
|
||||
TMP_Text text_time;
|
||||
|
||||
//购买按钮
|
||||
Button btn_buy;
|
||||
AdvertButton btn_advert;
|
||||
PlayerShopData shopData;
|
||||
Timer timer;
|
||||
List<ItemData> itemDataGift;
|
||||
Daily daily;
|
||||
private void Awake()
|
||||
{
|
||||
shopData = GContext.container.Resolve<PlayerShopData>();
|
||||
_tables = GContext.container.Resolve<Tables>();
|
||||
rewardItems = transform.Find("reward_panel").GetComponentsInChildren<RewardItemNew>();
|
||||
cd = transform.Find("reward_panel/cd").gameObject;
|
||||
text_time = transform.Find("reward_panel/cd/text_time").GetComponent<TMP_Text>();
|
||||
btn_buy = transform.Find("reward_panel/btn_free/btn_green").GetComponent<Button>();
|
||||
btn_advert = transform.Find("reward_panel/AdvertBtn").GetComponent<AdvertButton>();
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
btn_buy.onClick.AddListener(OnBuySuccess);
|
||||
btn_advert.SetData(() =>
|
||||
{
|
||||
shopData.AddAdvertCount(packM.ID);
|
||||
//广告成功
|
||||
OnBuySuccess();
|
||||
}, AdvertPopupType.Chest);
|
||||
var id = GContext.container.Resolve<PlayerData>().priceLevel.DailyGiftPackList[0];
|
||||
packM = shopData.TbPackManagerGetOrDefault(id);
|
||||
pack = _tables.TbPack.GetOrDefault(packM.PackID[0]);
|
||||
num = shopData.GetShopPackBuyCount(packM.ID);
|
||||
SetTimer();
|
||||
SetRewardItems();
|
||||
SetBuy();
|
||||
}
|
||||
void OnBuySuccess()
|
||||
{
|
||||
num += 1;
|
||||
shopData.AddShopPackDailyBuyCount("DailyGiftDisplay");
|
||||
shopData.AddShopPackDailyBuyCount(packM.ID, 1);
|
||||
GContext.Publish(new ShowData(itemDataGift));
|
||||
GContext.container.Resolve<PlayerItemData>().AddItem(itemDataGift);
|
||||
//ShowGiftNoticePanel();
|
||||
GContext.Publish(new ShowData());
|
||||
SetBuy();
|
||||
shopData.SetAdvRedPoint();
|
||||
#if AGG
|
||||
using (var e = GEvent.GameEvent("item_change", gaSend: false))
|
||||
{
|
||||
e.AddContent("item_id", GContext.container.Resolve<PlayerData>().priceLevel.DailyGiftDisplay)
|
||||
.AddContent("state_info", "get")
|
||||
.AddContent("get_times", shopData.GetShopPackBuyCount("DailyGiftDisplay"))
|
||||
.AddContent("change_num", 1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void SetTimer()
|
||||
{
|
||||
DateTime now = ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
daily = packM.TimeDefinition as Daily;
|
||||
var DailyGiftPackList = GContext.container.Resolve<PlayerData>().priceLevel.DailyGiftPackList;
|
||||
int id;
|
||||
for (int i = 0; i < DailyGiftPackList.Count; i++)
|
||||
{
|
||||
id = DailyGiftPackList[i];
|
||||
ShopPackManager localPackM = shopData.TbPackManagerGetOrDefault(id);
|
||||
if (localPackM == null) break;
|
||||
daily = localPackM.TimeDefinition as Daily;
|
||||
if (TimeSpan.FromSeconds(daily.StartTime) <= now.TimeOfDay && TimeSpan.FromSeconds(daily.EndTime) > now.TimeOfDay)
|
||||
{
|
||||
packM = localPackM;
|
||||
num = shopData.GetShopPackBuyCount(localPackM.ID);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
TimeSpan ts = TimeSpan.FromSeconds(daily.EndTime) - now.TimeOfDay;
|
||||
text_time.text = ConvertTools.ConvertTime2(0, ts.Hours, ts.Minutes, ts.Seconds);
|
||||
if (timer == null)
|
||||
{
|
||||
timer = this.AttachTimer((float)ts.TotalSeconds, ReStart,
|
||||
(elapsed) =>
|
||||
{
|
||||
now = ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
ts = TimeSpan.FromSeconds(daily.EndTime) - now.TimeOfDay;
|
||||
text_time.text = ConvertTools.ConvertTime2(0, ts.Hours, ts.Minutes, ts.Seconds);
|
||||
}, useRealTime: true);
|
||||
}
|
||||
}
|
||||
|
||||
//void ShowGiftNoticePanel()
|
||||
//{
|
||||
// int showGiftNoticePanel = PlayerPrefs.GetInt("GiftNoticePanel", 0);
|
||||
// ISettingService settingService = GContext.container.Resolve<ISettingService>();
|
||||
// if (showGiftNoticePanel == 0 && !settingService.Notice)
|
||||
// {
|
||||
// _ = UIManager.Instance.ShowUI(UITypes.GiftNoticePanel);
|
||||
// }
|
||||
//}
|
||||
|
||||
void SetRewardItems()
|
||||
{
|
||||
itemDataGift = GContext.container.Resolve<PlayerItemData>().GetItemDataByDropIdAndType(pack.DropID);
|
||||
|
||||
for (int i = 0; i < rewardItems.Length; i++)
|
||||
{
|
||||
if (i < itemDataGift.Count)
|
||||
{
|
||||
rewardItems[i].SetData(itemDataGift[i], isCanClick: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
rewardItems[i].gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
void SetBuy()
|
||||
{
|
||||
var adConfig = _tables.TbAdConfig.DataList[0];
|
||||
bool vipFree = adConfig.VipFree <= GContext.container.Resolve<PlayerData>().vip;
|
||||
if (vipFree)
|
||||
{
|
||||
btn_buy.gameObject.SetActive(num <= 1);
|
||||
btn_advert.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
btn_buy.gameObject.SetActive(num == 0);
|
||||
btn_advert.gameObject.SetActive(num == 1);
|
||||
}
|
||||
cd.gameObject.SetActive(num > 1);
|
||||
}
|
||||
|
||||
void ReStart()
|
||||
{
|
||||
timer.Cancel();
|
||||
timer = null;
|
||||
shopData.InitShopPackData();
|
||||
num = 0;
|
||||
SetBuy();
|
||||
SetTimer();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user