110 lines
4.1 KiB
C#
110 lines
4.1 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class EventTargetGrandPrizeTips : MonoBehaviour
|
|
{
|
|
Button btnClose;
|
|
//Image bar;
|
|
private void Awake()
|
|
{
|
|
btnClose = transform.Find("btn_close").GetComponent<Button>();
|
|
//bar = transform.Find("tips/bg/bg_bar/bar").GetComponent<Image>();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
btnClose.onClick.AddListener(() => gameObject.SetActive(false));
|
|
Init();
|
|
}
|
|
void Init()
|
|
{
|
|
PlayerItemData playerItemData = GContext.container.Resolve<PlayerItemData>();
|
|
var _fishingEventData = GContext.container.Resolve<FishingEventData>();
|
|
IUIService uIService = GContext.container.Resolve<IUIService>();
|
|
var tables = GContext.container.Resolve<Tables>();
|
|
CollectingTargetInit collectingTargetInit = _fishingEventData.collectingTargetInit;
|
|
Item item = tables.TbItem[collectingTargetInit.TokenID];
|
|
var TargetList = _fishingEventData.GetIndexOfCollectingTargetHook();
|
|
//设置tips
|
|
int targetCount = 0;
|
|
List<int> targetCounts = new List<int>();
|
|
List<CollectingTargetReward> CollectingTargetRewards = new List<CollectingTargetReward>();
|
|
int index = 0;
|
|
int allCount = _fishingEventData.GetAllCollectingTarget();
|
|
for (int i = 0; i < TargetList.Count; i++)
|
|
{
|
|
CollectingTargetReward targetReward = tables.TbCollectingTargetReward.GetOrDefault(TargetList[i]);
|
|
targetCount += targetReward.TokenRequiredB;
|
|
if (targetReward.Milestone != 0)
|
|
{
|
|
targetCounts.Add(targetCount);
|
|
CollectingTargetRewards.Add(targetReward);
|
|
if (targetCount < allCount)
|
|
{
|
|
index = CollectingTargetRewards.Count;
|
|
}
|
|
}
|
|
}
|
|
if (CollectingTargetRewards.Count < 4)
|
|
{
|
|
return;
|
|
}
|
|
CollectingTargetReward curReward = null;
|
|
if (index < CollectingTargetRewards.Count)
|
|
{
|
|
curReward = CollectingTargetRewards[index];
|
|
}
|
|
|
|
if (index > CollectingTargetRewards.Count - 4)
|
|
{
|
|
index = CollectingTargetRewards.Count - 4;
|
|
}
|
|
int rewardIndex = 0;
|
|
//bar.fillAmount = 1;
|
|
for (int i = index; i < index + 4; i++)
|
|
{
|
|
rewardIndex++;
|
|
Transform reward = transform.Find($"tips/bg/item{rewardIndex}");
|
|
GameObject unlock = reward.Find("bg_normal").gameObject;
|
|
GameObject done = reward.Find("bg_done").gameObject;
|
|
CollectingTargetReward targetReward = CollectingTargetRewards[i];
|
|
if (curReward == null || targetReward.TaskID < curReward.TaskID)
|
|
{
|
|
//已领取
|
|
unlock.SetActive(false);
|
|
done.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
//if (targetReward.TaskID == curReward.TaskID)
|
|
//{
|
|
// float difference = targetCounts[i] - allCount;
|
|
// int difference2 = targetCounts[i];
|
|
// if (i > 0)
|
|
// {
|
|
// difference2 = targetCounts[i] - targetCounts[i - 1];
|
|
// }
|
|
|
|
// //bar.fillAmount = 0.25f * (rewardIndex - difference / difference2);
|
|
//}
|
|
//未领取
|
|
unlock.SetActive(true);
|
|
done.SetActive(false);
|
|
}
|
|
Rewardx1x2 rewardItemNew = reward.GetComponent<Rewardx1x2>();
|
|
var itemData1 = playerItemData.GetItemDataByDropIdLureInflation(_fishingEventData.CollectingTargetInflation, targetReward.DropID);
|
|
rewardItemNew.SetData(itemData1);
|
|
TMP_Text text_num = reward.Find("text_num").GetComponent<TMP_Text>();
|
|
text_num.text = targetCounts[i].ToString();
|
|
Image icon = reward.Find("icon_target").GetComponent<Image>();
|
|
uIService.SetImageSprite(icon, item.Icon);
|
|
}
|
|
}
|
|
}
|