125 lines
3.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|