52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using asap.core;
|
|
using GameCore;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace UI.Wheel
|
|
{
|
|
public abstract class AbstractWheelRewardCell : MonoBehaviour
|
|
{
|
|
#region Protected Fields
|
|
protected Image bg;
|
|
protected RewardItemNew reward;
|
|
protected IWheelReward _wheelReward;
|
|
#endregion
|
|
|
|
#region Abstract Methods
|
|
public abstract void SetData(IWheelReward wheelReward);
|
|
public abstract void ShowUI();
|
|
protected abstract string GetBackgroundSprite(IWheelReward reward);
|
|
#endregion
|
|
|
|
#region Initialization
|
|
protected virtual void Awake()
|
|
{
|
|
bg = this.transform.Find(nameof(bg))?.GetComponent<Image>();
|
|
reward = this.GetComponentInChildren<RewardItemNew>();
|
|
reward?.gameObject.SetActive(false);
|
|
}
|
|
#endregion
|
|
|
|
#region Common Methods
|
|
protected virtual void SetRewardItem(IWheelReward wheelReward)
|
|
{
|
|
if (!reward) return;
|
|
var itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataByDropIdAndTypeLureInflation(wheelReward.InflationRate, wheelReward.DropID);
|
|
reward.SetData(itemData.FirstOrDefault());
|
|
reward.gameObject.SetActive(true);
|
|
}
|
|
|
|
protected virtual void SetBackground(IWheelReward wheelReward)
|
|
{
|
|
if (!bg)
|
|
return;
|
|
string spriteName = GetBackgroundSprite(wheelReward);
|
|
if (string.IsNullOrEmpty(spriteName))
|
|
return;
|
|
_ = GContext.container.Resolve<IUIService>().SetImageSprite(bg, spriteName);
|
|
}
|
|
#endregion
|
|
}
|
|
} |