备份CatanBuilding瘦身独立工程
This commit is contained in:
193
Assets/Scripts/UI/FishingTarget/FishingTargetPopupPanelBase.cs
Normal file
193
Assets/Scripts/UI/FishingTarget/FishingTargetPopupPanelBase.cs
Normal file
@@ -0,0 +1,193 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using GameCore;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class FishingTargetPopupPanelBase : MonoBehaviour
|
||||
{
|
||||
protected FishingEventData _fishingEventData;
|
||||
Button btn_close;
|
||||
Button btn_mask;
|
||||
RewardItemNew require;
|
||||
TMP_Text text_info;
|
||||
|
||||
TMP_Text text_title;
|
||||
TMP_Text text_time;
|
||||
Timer timer;
|
||||
Transform beilvpanel_max;
|
||||
Transform bg_beilvlpanel;
|
||||
TMP_Text text_beilvpanel_content;
|
||||
|
||||
TargetReward target_reward;
|
||||
|
||||
CollectingTargetReward targetReward1;
|
||||
CollectingTargetReward targetReward2;
|
||||
CollectingTargetReward targetReward3;
|
||||
|
||||
List<ItemData> itemData1;
|
||||
List<ItemData> itemData2;
|
||||
List<ItemData> itemData3;
|
||||
|
||||
int targetCount1;
|
||||
int targetCount2;
|
||||
int targetCount3;
|
||||
|
||||
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
target_reward = transform.Find("root/target_reward").GetComponent<TargetReward>();
|
||||
|
||||
_fishingEventData = GContext.container.Resolve<FishingEventData>();
|
||||
btn_close = transform.Find("btn_close").GetComponent<Button>();
|
||||
btn_mask = transform.Find("mask").GetComponent<Button>();
|
||||
require = transform.Find("root/target_reward/btn_icon/reward").GetComponent<RewardItemNew>();
|
||||
text_info = transform.Find("root/bg_info/text_info").GetComponent<TMP_Text>();
|
||||
text_title = transform.Find("root/text_title").GetComponent<TMP_Text>();
|
||||
text_time = transform.Find("root/text_time").GetComponent<TMP_Text>();
|
||||
|
||||
beilvpanel_max = transform.Find("root/beilvpanel/bg_beilv_max");
|
||||
if (beilvpanel_max)
|
||||
{
|
||||
bg_beilvlpanel = transform.Find("root/beilvpanel/bg_beilv");
|
||||
text_beilvpanel_content = transform.Find("root/beilvpanel/bg_beilv/text_beilv").GetComponent<TMP_Text>();
|
||||
}
|
||||
}
|
||||
protected void Start()
|
||||
{
|
||||
btn_close.onClick.AddListener(() => { UIManager.Instance.DestroyUI(UITypes.FishingTargetPopupPanel); });
|
||||
btn_mask.onClick.AddListener(() => { UIManager.Instance.DestroyUI(UITypes.FishingTargetPopupPanel); });
|
||||
Init();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (beilvpanel_max)
|
||||
{
|
||||
bool isMax = GContext.container.Resolve<PlayerData>().IsMaxMagnification();
|
||||
beilvpanel_max.gameObject.SetActive(isMax);
|
||||
bg_beilvlpanel.gameObject.SetActive(!isMax);
|
||||
text_beilvpanel_content.text = isMax ? "MAX" : $"x{GContext.container.Resolve<PlayerData>().GetMagnification()}";
|
||||
}
|
||||
}
|
||||
void Init()
|
||||
{
|
||||
CollectingTargetReward collectingTarget = _fishingEventData.collectingTarget;
|
||||
if (collectingTarget != null)
|
||||
{
|
||||
PlayerItemData playerItemData = GContext.container.Resolve<PlayerItemData>();
|
||||
var tables = GContext.container.Resolve<Tables>();
|
||||
CollectingTargetInit collectingTargetInit = _fishingEventData.collectingTargetInit;
|
||||
text_title.text = LocalizationMgr.GetText(collectingTargetInit.Title_l10n_key);
|
||||
|
||||
Item item = tables.TbItem[collectingTargetInit.TokenID];
|
||||
require.SetData(item, isCanClick: true);
|
||||
require.text_num.gameObject.SetActive(false);
|
||||
SetEndTime();
|
||||
SetTargetExtra(item.Icon);
|
||||
|
||||
var TargetList = collectingTargetInit.TargetList;
|
||||
|
||||
int curCount = _fishingEventData.GetCurCollectingTarget();
|
||||
int curIndex = TargetList.IndexOf(collectingTarget.TaskID);
|
||||
|
||||
text_info.text = LocalizationMgr.GetFormatTextValue("UI_EventRankPopupPanel_2", curIndex, TargetList.Count);
|
||||
float fillAmount = 1;
|
||||
if (collectingTarget.NextTarget <= 0)
|
||||
{
|
||||
if (curCount >= collectingTarget.TokenRequired)
|
||||
{
|
||||
target_reward.SetDone();
|
||||
text_info.text = LocalizationMgr.GetFormatTextValue("UI_EventRankPopupPanel_2", TargetList.Count, TargetList.Count);
|
||||
return;
|
||||
}
|
||||
//最后一个
|
||||
targetReward1 = tables.TbCollectingTargetReward.GetOrDefault(TargetList[^3]);
|
||||
targetReward2 = tables.TbCollectingTargetReward.GetOrDefault(TargetList[^2]);
|
||||
|
||||
fillAmount = 1;
|
||||
}
|
||||
else if (collectingTarget.TaskID == TargetList[0])
|
||||
{
|
||||
//第一个
|
||||
targetReward1 = collectingTarget;
|
||||
targetReward2 = tables.TbCollectingTargetReward.GetOrDefault(collectingTarget.NextTarget);
|
||||
|
||||
fillAmount = curCount / ((float)collectingTarget.TokenRequired * 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
targetReward1 = tables.TbCollectingTargetReward.GetOrDefault(TargetList[curIndex - 1]);
|
||||
targetReward2 = collectingTarget;
|
||||
|
||||
fillAmount = curCount / ((float)collectingTarget.TokenRequired * 2) + 0.5f;
|
||||
}
|
||||
itemData1 = playerItemData.GetItemDataByDropId(targetReward1.DropID);
|
||||
itemData2 = playerItemData.GetItemDataByDropId(targetReward2.DropID);
|
||||
|
||||
target_reward.SetBar(fillAmount, itemData1, itemData2);
|
||||
if (collectingTarget.TaskID != TargetList[0])
|
||||
{
|
||||
target_reward.SetReceived1(true);
|
||||
}
|
||||
if (collectingTarget.NextTarget <= 0)
|
||||
{
|
||||
target_reward.SetReceived2(true);
|
||||
}
|
||||
CollectingTargetReward maxCollectingTarget = tables.TbCollectingTargetReward.GetOrDefault(TargetList[^1]);
|
||||
|
||||
//设置tips
|
||||
int targetCount = 0;
|
||||
for (int i = 0; i < TargetList.Count; i++)
|
||||
{
|
||||
var targetReward = tables.TbCollectingTargetReward.GetOrDefault(TargetList[i]);
|
||||
targetCount += targetReward.TokenRequired;
|
||||
if (targetReward.TaskID == targetReward1.TaskID)
|
||||
{
|
||||
targetCount1 = targetCount;
|
||||
}
|
||||
else if (targetReward.TaskID == targetReward2.TaskID)
|
||||
{
|
||||
targetCount2 = targetCount;
|
||||
}
|
||||
else if (targetReward.TaskID == maxCollectingTarget.TaskID)
|
||||
{
|
||||
targetCount3 = targetCount;
|
||||
}
|
||||
}
|
||||
|
||||
targetReward3 = maxCollectingTarget;
|
||||
itemData3 = playerItemData.GetItemDataByDropId(maxCollectingTarget.DropID);
|
||||
int allCount = _fishingEventData.GetAllCollectingTarget();
|
||||
target_reward.SetReward(itemData1, itemData2, itemData3, targetReward3.Milestone != 2, item.Icon, targetCount1, targetCount2, allCount);
|
||||
}
|
||||
}
|
||||
protected virtual void SetTargetExtra(string icon)
|
||||
{
|
||||
|
||||
}
|
||||
void SetEndTime()
|
||||
{
|
||||
//显示倒计时
|
||||
if (timer == null)
|
||||
{
|
||||
DateTime endDateTime = _fishingEventData.GetCollectingTargetEndTime();
|
||||
TimeSpan all = endDateTime - ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
double seconds = all.TotalSeconds;
|
||||
timer = this.AttachTimer((float)seconds,
|
||||
() => { UIManager.Instance.DestroyUI(UITypes.FishingTargetPopupPanel); },
|
||||
(elapsed) =>
|
||||
{
|
||||
TimeSpan now = endDateTime - ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
|
||||
text_time.text = ConvertTools.ConvertTime2(now.Days, now.Hours, now.Minutes, now.Seconds);
|
||||
}, useRealTime: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user