193 lines
7.7 KiB
C#
193 lines
7.7 KiB
C#
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()
|
|
{
|
|
GContext.container.Resolve<GuideDataCenter>().InspectTriggerGuide("FishingTargetPopupPanel_4001", hostGameObjectName: gameObject.name);
|
|
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 = _fishingEventData.GetIndexOfCollectingTargetHook();
|
|
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.TokenRequiredB)
|
|
{
|
|
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.TokenRequiredB * 2);
|
|
}
|
|
else
|
|
{
|
|
targetReward1 = tables.TbCollectingTargetReward.GetOrDefault(TargetList[curIndex - 1]);
|
|
targetReward2 = collectingTarget;
|
|
|
|
fillAmount = curCount / ((float)collectingTarget.TokenRequiredB * 2) + 0.5f;
|
|
}
|
|
itemData1 = playerItemData.GetItemDataByDropIdLureInflation(_fishingEventData.CollectingTargetInflation,targetReward1.DropID);
|
|
itemData2 = playerItemData.GetItemDataByDropIdLureInflation(_fishingEventData.CollectingTargetInflation, 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.TokenRequiredB;
|
|
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.GetItemDataByDropIdLureInflation(_fishingEventData.CollectingTargetInflation, 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);
|
|
}
|
|
}
|
|
} |