备份CatanBuilding瘦身独立工程
This commit is contained in:
137
Assets/Scripts/Duel/UI/EventFishingDuelRewardPopupPanel.cs
Normal file
137
Assets/Scripts/Duel/UI/EventFishingDuelRewardPopupPanel.cs
Normal file
@@ -0,0 +1,137 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using GameCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class EventFishingDuelRewardPopupPanel : MonoBehaviour
|
||||
{
|
||||
Button btn_close;
|
||||
Button btn_mask;
|
||||
TMP_Text text_time;
|
||||
TMP_Text text_points;
|
||||
GameObject item;
|
||||
Image bar;
|
||||
Tables tables;
|
||||
FishingEventData fishingEventData;
|
||||
Timer timer;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
tables = GContext.container.Resolve<Tables>();
|
||||
fishingEventData = GContext.container.Resolve<FishingEventData>();
|
||||
btn_mask = transform.Find("mask").GetComponent<Button>();
|
||||
btn_close = transform.Find("btn_close").GetComponent<Button>();
|
||||
text_time = transform.Find("root/text_time").GetComponent<TMP_Text>();
|
||||
text_points = transform.Find("root/info/icon_ticket/text_num").GetComponent<TMP_Text>();
|
||||
bar = transform.Find("root/root_reward/ScrollView/Viewport/Content/bg_bar/bar").GetComponent<Image>();
|
||||
item = transform.Find("root/root_reward/ScrollView/Viewport/Content/item").gameObject;
|
||||
item.SetActive(false);
|
||||
SetData();
|
||||
}
|
||||
async void SetData()
|
||||
{
|
||||
Transform content = transform.Find("root/root_reward/ScrollView/Viewport/Content");
|
||||
List<EventSolomain> eventSolomain = tables.TbEventSolomain.DataList;
|
||||
EventSolomain solomain = eventSolomain[0];
|
||||
float progress = fishingEventData.duelData.progress;
|
||||
text_points.text = ConvertTools.GetNumberString2(fishingEventData.duelData.progress);
|
||||
bar.fillAmount = progress / (float)solomain.TrophyRange[0];
|
||||
IUIService uiService = GContext.container.Resolve<IUIService>();
|
||||
int nextIndex = -1;
|
||||
DuelRankRewardItem duelRewardItem = null;
|
||||
for (int i = 0; i < eventSolomain.Count; i++)
|
||||
{
|
||||
GameObject go = Instantiate(item, content);
|
||||
go.SetActive(true);
|
||||
duelRewardItem = go.GetComponent<DuelRankRewardItem>();
|
||||
uiService.SetImageSprite(duelRewardItem.icon_rank, solomain.RankIcon);
|
||||
duelRewardItem.text_rank.text = LocalizationMgr.GetText(solomain.RankText_l10n_key);
|
||||
duelRewardItem.text_point.text = solomain.TrophyRange[0].ToString();
|
||||
List<ItemData> rewardItemData = GContext.container.Resolve<PlayerItemData>()
|
||||
.GetItemDataByDropId(solomain.SeasonReward);
|
||||
|
||||
if (rewardItemData != null)
|
||||
{
|
||||
int dataCount = rewardItemData.Count;
|
||||
int rewardCount = duelRewardItem.rewardItems.Count;
|
||||
for (int j = 0; j < rewardCount; j++)
|
||||
{
|
||||
if (j < dataCount)
|
||||
{
|
||||
duelRewardItem.rewardItems[j].SetData(rewardItemData[j]);
|
||||
}
|
||||
else
|
||||
{
|
||||
duelRewardItem.rewardItems[j].gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
duelRewardItem.bg_gray.SetActive(progress > solomain.TrophyRange[1]);
|
||||
duelRewardItem.bg_normal.SetActive(false);
|
||||
duelRewardItem.bg_next.SetActive(progress < solomain.TrophyRange[0]);
|
||||
if (progress >= solomain.TrophyRange[0] && progress <= solomain.TrophyRange[1])
|
||||
{
|
||||
duelRewardItem.bg_normal.SetActive(true);
|
||||
nextIndex = i;
|
||||
}
|
||||
if (i < eventSolomain.Count - 1)
|
||||
{
|
||||
duelRewardItem.bar.fillAmount = (progress - solomain.TrophyRange[0]) / (solomain.TrophyRange[1] - solomain.TrophyRange[0]);
|
||||
solomain = eventSolomain[i + 1];
|
||||
}
|
||||
}
|
||||
if (duelRewardItem != null)
|
||||
{
|
||||
duelRewardItem.bar.fillAmount = (progress - solomain.TrophyRange[0]) / (eventSolomain[eventSolomain.Count - 2].TrophyRange[1] - eventSolomain[eventSolomain.Count - 2].TrophyRange[0]);
|
||||
duelRewardItem.bar_root.transform.localScale = new Vector3(1, 0.5f, 1);
|
||||
}
|
||||
if (nextIndex == -1)
|
||||
{
|
||||
nextIndex = eventSolomain.Count - 2;
|
||||
}
|
||||
await Awaiters.NextFrame;
|
||||
content.GetComponent<RectTransform>().anchoredPosition = new Vector2(0, -nextIndex * 280);
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
btn_mask.onClick.AddListener(OnClickClose);
|
||||
btn_close.onClick.AddListener(OnClickClose);
|
||||
SetTimer();
|
||||
}
|
||||
void OnClickClose()
|
||||
{
|
||||
UIManager.Instance.DestroyUI(UITypes.EventFishingDuelRewardPopupPanel);
|
||||
}
|
||||
void SetTimer()
|
||||
{
|
||||
DateTime endDateTime = fishingEventData.GetEventEndTime(fishingEventData.duelData.eventID)
|
||||
.AddSeconds(-tables.TbEventSoloConfig.SettlementTime);
|
||||
TimeSpan now = endDateTime - ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
text_time.text = LocalizationMgr.GetFormatTextValue("UI_COMMON_end",
|
||||
ConvertTools.ConvertTime2(now.Days, now.Hours, now.Minutes, now.Seconds));
|
||||
double seconds = now.TotalSeconds;
|
||||
timer = this.AttachTimer((float)seconds, Refresh,
|
||||
(elapsed) =>
|
||||
{
|
||||
now = endDateTime - ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
text_time.text = LocalizationMgr.GetFormatTextValue("UI_COMMON_end",
|
||||
ConvertTools.ConvertTime2(now.Days, now.Hours, now.Minutes, now.Seconds));
|
||||
}, useRealTime: true);
|
||||
}
|
||||
|
||||
void Refresh()
|
||||
{
|
||||
timer?.Cancel();
|
||||
timer = null;
|
||||
//OnClickClose();
|
||||
}
|
||||
private void OnDestroy()
|
||||
{
|
||||
timer?.Cancel();
|
||||
timer = null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user