using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using Core.Utilities;
|
using System;
|
|
/**
|
* 选择buff脚本
|
* @Author: chenxin
|
* @Date: 2020-10-19 15:55:46
|
*/
|
namespace KTGMGemClient
|
{
|
public class EndlessBuffSelect : Singleton<EndlessBuffSelect>
|
{
|
public List<SelectBuffIcon> IconList;
|
|
private string iconPath = "UI/Endless/BuffIcon/BuffIcon_";
|
|
/// <summary>
|
/// buff是否选中完成
|
/// </summary>
|
private bool isCompleted;
|
|
public event Action<int> BuffSelectCompleted;
|
|
/// <summary>
|
/// 当前选择的索引,-1表示还未选中其中一个
|
/// </summary>
|
private int SelectedIndex = -1;
|
|
public Button SelectBtn;
|
|
// Start is called before the first frame update
|
private void Start()
|
{
|
for (int i = 0; i < IconList.Count; ++i)
|
{
|
IconList[i].OnSelectBuffCompleted += OnClick;
|
}
|
|
SelectBtn.onClick.AddListener(OnClickSelectBtn);
|
}
|
|
private void OnDisable()
|
{
|
Reset();
|
}
|
|
private void Reset()
|
{
|
isCompleted = false;
|
SelectedIndex = -1;
|
|
for (int i = 0; i < IconList.Count; ++i)
|
{
|
IconList[i].Reset();
|
}
|
}
|
|
public void OnClick(int index)
|
{
|
// 如果点击同一个直接返回
|
if (index == SelectedIndex) return;
|
|
// 如果已经选择过了,设置一个之前选择的item
|
if (SelectedIndex != -1)
|
IconList[SelectedIndex].SetState(false);
|
|
SelectedIndex = index;
|
IconList[index].SetState(true);
|
}
|
|
/// <summary>
|
/// 点击了选择按钮
|
/// </summary>
|
public void OnClickSelectBtn()
|
{
|
if (SelectedIndex == -1) return;
|
|
int index = SelectedIndex;
|
|
HideBuffUI();
|
|
if (BuffSelectCompleted != null)
|
BuffSelectCompleted(index);
|
}
|
|
public void ShowBuffUI()
|
{
|
gameObject.SetActive(true);
|
}
|
|
public void HideBuffUI()
|
{
|
gameObject.SetActive(false);
|
}
|
|
public void Refresh(List<EndlessBuffConfig> list)
|
{
|
for (int i = 0; i < IconList.Count; ++i)
|
{
|
IconList[i].SetIcon(list[i].Config.image);
|
IconList[i].SetQuality(list[i].Config.rare);
|
IconList[i].SetName(list[i].Config.name);
|
IconList[i].SetEffect(list[i].Config.brief);
|
IconList[i].SetRare(list[i].Config.rare);
|
}
|
}
|
}
|
}
|