133 lines
4.3 KiB
C#
133 lines
4.3 KiB
C#
using cfg;
|
|
using UnityEngine;
|
|
using TMPro;
|
|
using GameCore;
|
|
using asap.core;
|
|
using DG.Tweening;
|
|
using UnityEngine.UI;
|
|
using System.Collections.Generic;
|
|
|
|
public class TurntableRewardItem : MonoBehaviour
|
|
{
|
|
public WheelDrop wheelDrop;
|
|
//int id = 0 ;
|
|
Image icon;
|
|
TMP_Text text_num;
|
|
public int rewardMulti = 1;
|
|
public int num = 0;
|
|
Item item;
|
|
ItemData itemData;
|
|
Transform rewardNew;
|
|
GameObject particle;
|
|
GameObject particle_01;
|
|
DOTweenAnimation dotween_selected;
|
|
|
|
Button btn_click;
|
|
Image icon_card;
|
|
Image logo;
|
|
Image card_num;
|
|
void Awake()
|
|
{
|
|
wheelDrop = null;
|
|
text_num = transform.Find("text_num").GetComponent<TMP_Text>();
|
|
icon = transform.Find("icon").GetComponent<UnityEngine.UI.Image>();
|
|
rewardNew = transform.Find("reward");
|
|
particle = transform.Find("particle").gameObject;
|
|
particle_01 = transform.Find("particle_01").gameObject;
|
|
dotween_selected = transform.Find("dotween_selected").GetComponent<DOTweenAnimation>();
|
|
|
|
icon_card = transform.Find("icon_card").GetComponent<Image>();
|
|
logo = transform.Find("icon_card/logo").GetComponent<Image>();
|
|
card_num = transform.Find("icon_card/num").GetComponent<Image>();
|
|
|
|
btn_click = GetComponent<Button>();
|
|
}
|
|
private void Start()
|
|
{
|
|
if (btn_click != null)
|
|
{
|
|
btn_click.onClick.AddListener(OnClick);
|
|
}
|
|
}
|
|
|
|
void OnClick()
|
|
{
|
|
if (itemData == null || itemData.id == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
GContext.container.Resolve<PlayerItemData>().ShowItemTips(itemData.id, transform);
|
|
}
|
|
public void Init(bool isFree)
|
|
{
|
|
if (isFree)
|
|
{
|
|
itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(wheelDrop.ExtraDropID);
|
|
}
|
|
else
|
|
{
|
|
itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(wheelDrop.DropID);
|
|
}
|
|
item = GContext.container.Resolve<Tables>().TbItem.Get(itemData.id); //是否可能有多个物品?
|
|
text_num.gameObject.SetActive(wheelDrop.Type != 9 || isFree);
|
|
UpDisplay();
|
|
}
|
|
public void UpDisplay()
|
|
{
|
|
if (wheelDrop.Type == 9)
|
|
{
|
|
rewardMulti = 1;
|
|
}
|
|
num = (int)itemData.count * rewardMulti;
|
|
text_num.text = ConvertTools.GetNumberString(num);
|
|
if (item.Type == 5)
|
|
{
|
|
IUIService uiService = GContext.container.Resolve<IUIService>();
|
|
List<string> BgNameList;
|
|
if (item.SubType == 1)
|
|
{
|
|
var fishCard = GContext.container.Resolve<Tables>().TbFishCardDrop.GetOrDefault(item.RedirectID);
|
|
BgNameList = fishCard.BgNameList;
|
|
}
|
|
else
|
|
{
|
|
var fishCard = GContext.container.Resolve<Tables>().TbGeneralCardWeight.GetOrDefault(item.RedirectID);
|
|
BgNameList = fishCard.BgNameList;
|
|
}
|
|
|
|
uiService.SetImageSprite(icon_card, BgNameList[0], BasePanel.PanelName);
|
|
uiService.SetImageSprite(logo, BgNameList[1], BasePanel.PanelName);
|
|
uiService.SetImageSprite(card_num, BgNameList[2], BasePanel.PanelName);
|
|
icon_card.gameObject.SetActive(true);
|
|
icon.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
icon_card.gameObject.SetActive(false);
|
|
icon.gameObject.SetActive(true);
|
|
GContext.container.Resolve<IUIService>().SetImageSprite(icon, item.Icon, BasePanel.PanelName);
|
|
}
|
|
}
|
|
public void OnSelect()
|
|
{
|
|
particle_01.SetActive(false);
|
|
particle.SetActive(false);
|
|
particle_01.SetActive(true);
|
|
particle.SetActive(true);
|
|
dotween_selected.DORestart();
|
|
}
|
|
public async System.Threading.Tasks.Task ShowReward(RewardItemNew rewardItemNew)
|
|
{
|
|
ItemData itemDataNew = new ItemData();
|
|
itemDataNew.id = itemData.id;
|
|
itemDataNew.count = itemData.count * rewardMulti;
|
|
rewardItemNew.transform.parent.position = rewardNew.position;
|
|
rewardItemNew.SetRewardPopupData(itemDataNew, false);
|
|
rewardItemNew.PlayOpen(true);
|
|
await Awaiters.Seconds(0.6f);
|
|
await rewardItemNew.PlayClose();
|
|
await rewardItemNew.ParticleAttractor();
|
|
}
|
|
}
|