using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
using DG.Tweening;
|
|
/**
|
* 无尽模式选择buff
|
* @Author: chenxin
|
* @Date: 2020-10-15 17:00:26
|
*/
|
namespace KTGMGemClient
|
{
|
public class SelectBuffIcon : MonoBehaviour
|
{
|
public Image Icon;
|
|
/// <summary>
|
/// 边框
|
/// </summary>
|
public Image BorderImage;
|
|
/// <summary>
|
/// 品质底图
|
/// </summary>
|
public Image QualityImage;
|
|
/// <summary>
|
/// buff名称
|
/// </summary>
|
public Text Name;
|
|
/// <summary>
|
/// 效果描述
|
/// </summary>
|
public Text Effect;
|
|
public event Action<int> OnSelectBuffCompleted;
|
|
/// <summary>
|
/// 选择的索引
|
/// </summary>
|
public int Index;
|
|
/// <summary>
|
/// 是否被选中
|
/// </summary>
|
public bool IsSelected { get; set; }
|
|
private string iconPath = "UI/Endless/BuffIcon/";
|
|
private string qualityPath = "UI/Endless/BuffQuality/";
|
|
private void Start()
|
{
|
|
}
|
|
public void OnClick()
|
{
|
AudioSourceManager.Ins.Play(AudioEnum.ChooseBuff);
|
|
if (OnSelectBuffCompleted != null)
|
OnSelectBuffCompleted(Index);
|
}
|
|
public void SetIcon(int resId)
|
{
|
Icon.sprite = Resources.Load($"{iconPath}{resId}", typeof(Sprite)) as Sprite;
|
}
|
|
/// <summary>
|
/// 设置buff品质
|
/// </summary>
|
/// <param name="quality"></param>
|
public void SetQuality(int quality)
|
{
|
QualityImage.sprite = Resources.Load($"{qualityPath}{quality}", typeof(Sprite)) as Sprite;
|
}
|
|
public void SetName(string buffName)
|
{
|
Name.text = buffName;
|
}
|
|
/// <summary>
|
/// 设置buff效果描述
|
/// </summary>
|
/// <param name="effect"></param>
|
public void SetEffect(string effect)
|
{
|
Effect.text = effect;
|
}
|
|
/// <summary>
|
/// 设置品级
|
/// </summary>
|
/// <param name="rare"></param>
|
public void SetRare(int rare)
|
{
|
Name.color = EndlessBuffData.GetColorByRare(rare);
|
}
|
|
/// <summary>
|
/// 设置选中状态,做个缓动播放粒子特效
|
/// </summary>
|
/// <param name="isSelected"></param>
|
public void SetState(bool selected)
|
{
|
if (selected == IsSelected) return;
|
|
IsSelected = selected;
|
BorderImage.gameObject.SetActive(selected);
|
|
if (selected)
|
DOTween.To(() => transform.localScale, (v) => transform.localScale = v, new Vector3(1f, 1f, 1f), 0.15f);
|
else
|
DOTween.To(() => transform.localScale, (v) => transform.localScale = v, new Vector3(0.87f, 0.87f, 0.87f), 0.15f);
|
}
|
|
/// <summary>
|
/// 重置
|
/// </summary>
|
public void Reset()
|
{
|
IsSelected = false;
|
BorderImage.gameObject.SetActive(false);
|
transform.localScale = new Vector3(0.87f, 0.87f, 0.87f);
|
}
|
}
|
}
|