Files
2026-05-26 16:15:54 +08:00

125 lines
3.0 KiB
C#

using asap.core;
using cfg;
using GameCore;
using System;
using UnityEngine;
using UnityEngine.UI;
public class BankHeistItem : MonoBehaviour
{
Image icon;
Button btn;
//GameObject master;
public HeistItem heistItem;
//TMP_Text text_num;
public Action<BankHeistItem> action;
public bool isMaster;
Animation anim;
ItemData itemData;
RewardItemNew rewardItemNew;
private void Awake()
{
//text_num= transform.Find("text_num").GetComponent<TMP_Text>();
//master = transform.Find("icon_master").gameObject;
icon = transform.Find("icon").GetComponent<Image>();
btn = transform.GetComponent<Button>();
anim = transform.GetComponent<Animation>();
rewardItemNew = transform.Find("reward").GetComponent<RewardItemNew>();
}
private void Start()
{
btn.onClick.AddListener(OnClickBtn);
isMaster = true;
//master.SetActive(true);
}
public void SetData(HeistItem heistItem, int multiple)
{
this.heistItem = heistItem;
GContext.container.Resolve<IUIService>().SetImageSprite(icon, heistItem.Icon, BasePanel.PanelName);
if (heistItem.RewardID > 0)
{
itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(heistItem.RewardID);
if (itemData != null)
{
itemData.count *= multiple;
}
}
//if (itemData != null)
//{
// itemData.count *= multiple;
// if (heistItem.Type == 1 && text_num != null)
// {
// text_num.text = $"+{(int)itemData.count}";
// }
//}
//else
//{
// text_num.text = "";
//}
//master.SetActive(false);
}
public void PlayAni()
{
isMaster = false;
anim.Play();
}
void OnClickBtn()
{
btn.enabled = false;
action?.Invoke(this);
}
//额外道具
public void OnGetAdditional()
{
if (isMaster)
{
GetReward();
}
//icon.transform.localScale = Vector3.one * 1.2f;
//烟花
PlayAni();
//对勾
}
async void GetReward()
{
rewardItemNew.SetRewardPopupData(itemData, false);
rewardItemNew.PlayOpen();
await Awaiters.Seconds(0.34f);
await rewardItemNew.PlayClose();
await rewardItemNew.ParticleAttractor();
}
//正常结算
public void OnOrdinarySuccess()
{
//icon.transform.localScale = Vector3.one * 1.2f;
//背光
PlayAni();
}
public void EndBomb()
{
PlayAni();
}
//炸弹炸完结算
public void OnSuccess()
{
switch (heistItem.Type)
{
case 0:
OnOrdinarySuccess();
break;
case 1:
OnGetAdditional();
break;
case 2:
EndBomb();
break;
default:
break;
}
}
}