Files
ft/Client/Assets/Scripts/EventWelcomeBack/UI/ComebackGiftPopupPanel.cs
2026-06-29 21:18:33 +08:00

63 lines
2.6 KiB
C#

using asap.core;
using GameCore;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ComebackGiftPopupPanel : MonoBehaviour
{
List<RewardItemNew> rewards = new List<RewardItemNew>();
Button reward_button;
EventWelcomeBackManager eventWelcomeBackManager;
PlayerItemData playerItemData;
List<ItemData> itemDatas = new List<ItemData>();
private void Awake()
{
playerItemData = GContext.container.Resolve<PlayerItemData>();
eventWelcomeBackManager = new EventWelcomeBackManager();
rewards = new List<RewardItemNew>();
rewards.Add(transform.Find("root/reward/reward1").GetComponent<RewardItemNew>());
rewards.Add(transform.Find("root/reward/reward2").GetComponent<RewardItemNew>());
reward_button = transform.Find("root/btn_cliam/btn_green").GetComponent<Button>();
}
void Start()
{
eventWelcomeBackManager.LoadData();
reward_button.onClick.AddListener(OnClickReward);
var config = eventWelcomeBackManager.eventWelcomeBackConfig;
float energy = GContext.container.Resolve<PlayerData>().Energy * config.WelcomeBackLureParam2 / config.WelcomeBackLureParam1[0];
int lureCount = Mathf.RoundToInt(energy) * config.WelcomeBackLureParam1[0];
lureCount = Mathf.Clamp(lureCount, config.WelcomeBackLureParam1[0], config.WelcomeBackLureParam1[1]);
ItemData lure = new ItemData(1001, lureCount);
itemDatas.Add(lure);
rewards[0].SetData(lure);
int cashCount = playerItemData.GetExtraCoinMag(config.WelcomeBackLureParam2);
int minCash = GContext.container.Resolve<CampDataMM>().GetNextStepRequired(config.WelcomeBackCashParam1);
cashCount = Mathf.Max(cashCount, minCash);
ItemData cash = new ItemData(1002, cashCount);
itemDatas.Add(cash);
rewards[1].SetData(cash);
}
async void OnClickReward()
{
playerItemData.AddItem(itemDatas, null);
rewards[0].ParticleAttractor();
rewards[1].ParticleAttractor();
reward_button.enabled = false;
#if AGG
using (var e = GEvent.GameEvent("event_welcomeback_login"))
{
e.AddContent("offline_time", eventWelcomeBackManager.welcomeBackData.offlineDays)
.AddContent("event_count", eventWelcomeBackManager.welcomeBackData.eventCount)
.AddContent("reward_lure", itemDatas[0].count)
.AddContent("reward_cash", itemDatas[1].count);
}
#endif
await Awaiters.Seconds(2);
GContext.Publish(new ClaimComeBack() { state = 1 });
UIManager.Instance.DestroyUI(gameObject.name);
}
}