100 lines
2.8 KiB
C#
100 lines
2.8 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class SkinRodItem : MonoBehaviour
|
|
{
|
|
Image bg;
|
|
Image img_icon;
|
|
Button btn_item;
|
|
GameObject mask_empty;
|
|
TMP_Text text_level;
|
|
GameObject selected;
|
|
Transform star;
|
|
List<GameObject> star_empty_list;
|
|
List<Image> star_empty_image;
|
|
List<StarItem> starList = new List<StarItem>();
|
|
|
|
public SkinRodItemData data;
|
|
public Action<SkinRodItem> onClick;
|
|
|
|
private void Awake()
|
|
{
|
|
bg = transform.Find("rod/bg").GetComponent<Image>();
|
|
img_icon = transform.Find("rod/img_map").GetComponent<Image>();
|
|
btn_item = GetComponent<Button>();
|
|
mask_empty = transform.Find("rod/mask_empty").gameObject;
|
|
text_level = transform.Find("rod/text_level").GetComponent<TMP_Text>();
|
|
|
|
selected = transform.Find("selected").gameObject;
|
|
|
|
star = transform.Find("rod/star");
|
|
star_empty_list = new List<GameObject>();
|
|
star_empty_image = new List<Image>();
|
|
for (int i = 1; i <= 5; i++)
|
|
{
|
|
starList.Add(star.Find($"star/star{i}").GetComponent<StarItem>());
|
|
star_empty_list.Add(star.Find($"star_empty/star{i}").gameObject);
|
|
star_empty_image.Add(star.Find($"star_empty/star{i}/star").GetComponent<Image>());
|
|
}
|
|
SetSelected(false);
|
|
}
|
|
private void Start()
|
|
{
|
|
btn_item.onClick.AddListener(OnBtnItem);
|
|
}
|
|
|
|
public void Init(SkinRodItemData _data)
|
|
{
|
|
IUIService uIService = GContext.container.Resolve<IUIService>();
|
|
data = _data;
|
|
mask_empty.SetActive(data.isLock);
|
|
text_level.gameObject.SetActive(!data.isLock);
|
|
star.gameObject.SetActive(!data.isLock);
|
|
if (!data.isLock)
|
|
{
|
|
SetLevel();
|
|
SetStar();
|
|
}
|
|
uIService.SetImageSprite(bg, Define.sp_rod_card[data.quality - 1], BasePanel.PanelName);
|
|
uIService.SetImageSprite(img_icon, data.avatar, BasePanel.PanelName);
|
|
}
|
|
void OnBtnItem()
|
|
{
|
|
onClick?.Invoke(this);
|
|
}
|
|
|
|
public void SetLevel()
|
|
{
|
|
text_level.gameObject.SetActive(!data.isLock);
|
|
text_level.text = data.level.ToString();
|
|
}
|
|
void SetStar()
|
|
{
|
|
int star = data.start;
|
|
var curRodAscend = GContext.container.Resolve<Tables>().TbRodAscend.GetOrDefault(data.ascendID);
|
|
|
|
PlayerFishData.SetRodStar(star, curRodAscend.MaxAscent, star_empty_list, star_empty_image, starList);
|
|
}
|
|
public void SetSelected(bool value)
|
|
{
|
|
selected.SetActive(value);
|
|
}
|
|
}
|
|
public class SkinRodItemData
|
|
{
|
|
public int id;
|
|
public int level;
|
|
public int start;
|
|
public string avatar;
|
|
public bool isEquiped;
|
|
public bool isLock;
|
|
public int ascendID;
|
|
public int quality;
|
|
}
|