106 lines
3.6 KiB
C#
106 lines
3.6 KiB
C#
using System;
|
|
using cfg;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace UI.PartnerGather.Mining
|
|
{
|
|
public class EventPartnerSpinItemView : MonoBehaviour
|
|
{
|
|
private Transform highlight;
|
|
private Transform prize_nml;
|
|
private Transform prize_medium;
|
|
private Transform prize_super;
|
|
private Transform prize_free;
|
|
private Transform prize_more;
|
|
|
|
|
|
// 调试
|
|
private TMP_Text _textId;
|
|
private TMP_Text _textIndex;
|
|
|
|
//
|
|
private int _dataId;
|
|
|
|
private void Awake()
|
|
{
|
|
prize_nml = transform.Find("prize/prize_nml");
|
|
prize_medium = transform.Find("prize/prize_medium");
|
|
prize_super = transform.Find("prize/prize_super");
|
|
prize_free = transform.Find("prize/prize_free");
|
|
prize_more = transform.Find("prize/prize_more");
|
|
highlight = transform.Find("prize/height");
|
|
|
|
_textId = transform.Find("prize/text_id").GetComponent<TMP_Text>();
|
|
_textIndex = transform.Find("prize/text_index").GetComponent<TMP_Text>();
|
|
}
|
|
|
|
public void Bind(EventPartnerSpinPoint data,int index)
|
|
{
|
|
// Log($"OldId :{_dataId} : new {data.ID}");
|
|
var param = data.SpinPointParam;
|
|
_dataId = data.ID;
|
|
_textId.text = _dataId.ToString();
|
|
_textIndex.text = index.ToString();
|
|
|
|
switch (param)
|
|
{
|
|
case FreeSpinPoint point:
|
|
prize_nml.gameObject.SetActive(false);
|
|
prize_medium.gameObject.SetActive(false);
|
|
prize_super.gameObject.SetActive(false);
|
|
prize_free.gameObject.SetActive(true);
|
|
prize_more.gameObject.SetActive(false);
|
|
UpdateText(prize_free,point.SpinPoints.ToString());
|
|
break;
|
|
case MoreSpinPoint point:
|
|
prize_nml.gameObject.SetActive(false);
|
|
prize_medium.gameObject.SetActive(false);
|
|
prize_super.gameObject.SetActive(false);
|
|
prize_free.gameObject.SetActive(false);
|
|
prize_more.gameObject.SetActive(true);
|
|
UpdateText(prize_more,Mathf.Round(point.BonusPercent * 100) + "%");
|
|
break;
|
|
case NormalSpinPoint point:
|
|
prize_nml.gameObject.SetActive(true);
|
|
prize_medium.gameObject.SetActive(false);
|
|
prize_super.gameObject.SetActive(false);
|
|
prize_free.gameObject.SetActive(false);
|
|
prize_more.gameObject.SetActive(false);
|
|
UpdateText(prize_nml,point.SpinPoints.ToString());
|
|
break;
|
|
}
|
|
|
|
void UpdateText(Transform rootUI,string content)
|
|
{
|
|
var label = rootUI.GetComponentInChildren<TMP_Text>(true);
|
|
if (label)
|
|
{
|
|
label.text = content;
|
|
}
|
|
}
|
|
}
|
|
public void SetSelected(bool on)
|
|
{
|
|
Log($"SetSelected-> {on}");
|
|
if (highlight)
|
|
{
|
|
highlight.gameObject.SetActive(on);
|
|
}
|
|
}
|
|
private static void Log(object t)
|
|
{
|
|
Debug.Log($"<color=cyan>EventPartnerSpinItemView -> {t} </color>");
|
|
}
|
|
|
|
public void UpdateSelected(int targetId)
|
|
{
|
|
if (highlight)
|
|
{
|
|
highlight.gameObject.SetActive(_dataId == targetId);
|
|
}
|
|
}
|
|
}
|
|
|
|
} |