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

132 lines
3.6 KiB
C#

using UnityEngine;
using GameCore;
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
public class OfferTreasureAscentItemView : MonoBehaviour
{
[SerializeField] private RewardItemNew reward;
[SerializeField] private GameObject goSelected, goDone, fx_selected;
[SerializeField] private List<GameObject> fxBlinkList;
// [SerializeField] private Button goQuestionMark;
public bool IsClaimed => goDone.activeSelf;
public void Init(ItemData item, bool isClaimed)
{
reward.SetData(item);
goSelected.SetActive(false);
goDone.SetActive(isClaimed);
}
public void SetClaimed()
{
// reward.SetReceived(true);
goSelected.SetActive(false);
goDone.SetActive(true);
}
public async Task PlaySelectedAsync(float duration)
{
goSelected.SetActive(false);
goDone.SetActive(false);
await PlayFxSelectedAsync();
goSelected.SetActive(true);
await Task.Delay(System.TimeSpan.FromSeconds(duration));
// SetUnselected();
}
// public async void SetSelected(float duration)
// {
// try
// {
// await PlaySelectedAsync(duration);
// }
// catch (System.Exception e)
// {
// Debug.Log(e);
// }
// }
private void SetUnselected()
{
goSelected.SetActive(false);
goDone.SetActive(false);
}
public void PlayFxBlink(int idx)
{
idx = Mathf.Clamp(idx, 0, fxBlinkList.Count - 1);
for (int i = 0; i < fxBlinkList.Count; i++)
{
fxBlinkList[i].SetActive(false);
if (i == idx)
fxBlinkList[i].SetActive(true);
}
}
// public async Task PlayFxShortAsync()
// {
// fx_blink_short.SetActive(false);
// fx_blink_short.SetActive(true);
// await Task.Delay(TimeSpan.FromSeconds(0.05f));
// }
// public async void PlayFxShort()
// {
// await PlayFxShortAsync();
// }
// public async Task PlayFxMediumAsync()
// {
// fx_blink_medium.SetActive(false);
// fx_blink_medium.SetActive(true);
// await Task.Delay(TimeSpan.FromSeconds(0.1f));
// }
// public async void PlayFxMedium()
// {
// await PlayFxMediumAsync();
// }
// public async Task PlayFxLongAsync()
// {
// fx_blink_long.SetActive(false);
// fx_blink_long.SetActive(true);
// await Task.Delay(TimeSpan.FromSeconds(0.15f));
// }
// public async void PlayFxLong()
// {
// await PlayFxLongAsync();
// }
public async Task PlayFxSelectedAsync()
{
fx_selected.SetActive(false);
fx_selected.SetActive(true);
await Task.Delay(TimeSpan.FromSeconds(0.75f));
}
public async void PlayFxSelected()
{
await PlayFxSelectedAsync();
}
private void Reset()
{
reward = transform.Find("reward").GetComponent<RewardItemNew>();
goSelected = transform.Find("bg_select").gameObject;
goDone = transform.Find("bg_done").gameObject;
// fx_blink_short = transform.Find("fx_ui_offertreasureascent_turns_01").gameObject;
// fx_blink_medium = transform.Find("fx_ui_offertreasureascent_turns_02").gameObject;
// fx_blink_long = transform.Find("fx_ui_offertreasureascent_turns_03").gameObject;
fxBlinkList = new List<GameObject>();
for (int i = 1; i <= 5; i++)
fxBlinkList.Add(transform.Find("fx_ui_offertreasureascent_turns_0" + i).gameObject);
fx_selected = transform.Find("fx_ui_offertreasureascent_stop_01").gameObject;
}
}