// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-02-20
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
partial class KungfuPanel
{
///
///
///
class GroupWidget : KUIWidget
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
TextMeshProUGUI _tmpGroupName;
[KUIFlag]
TextMeshProUGUI _tmpGroupGrade;
[KUIFlag]
GameObject _goSp;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
KUIList _kungfuList;
List _kungfuBookItems = new List();
#endregion
#region Method
public override void Refresh()
{
if (this.data is ItemKungfuGroup group)
{
_tmpGroupName.text = group.name;
int curGrade = 0;
int maxGrade = 0;
_kungfuList.Clear();
_kungfuBookItems.Clear();
//List list = new List();
foreach (var kungfu in group.kungfus)
{
var kungfuItem = ItemProxy.Instance.GetStaticItem(kungfu);
curGrade += kungfuItem.grade;
maxGrade += kungfuItem.gradeMax;
var uiItem = _kungfuList.GetItem();
uiItem.SetData(kungfuItem);
uiItem.GetComponent().anchoredPosition = GlobalUtils.GetVector2(kungfuItem.position);
_kungfuBookItems.Add(uiItem);
//list.Add(GlobalUtils.GetVector2(kungfuItem.position));
}
//var c = list.Count - _goSp.transform.childCount;
//if (c > 0)
//{
// var child = _goSp.transform.GetChild(0);
// for (int i = 0; i < c; i++)
// {
// Object.Instantiate(child, _goSp.transform);
// }
//}
//for (int i = 1; i < list.Count; i++)
//{
// var vector = list[i] - list[i - 1];
// _goSp.transform.GetChild(i - 1).right = vector;
//}
_tmpGroupGrade.text = "等级:" + curGrade + "/" + maxGrade;
}
}
public void ShowStudyFx(ItemKungfu kungfu)
{
StartCoroutine(StudyAnimCO(kungfu));
}
public IEnumerator StudyAnimCO(ItemKungfu kungfu)
{
for (int i = 0; i < 6; i++)
{
if (i < 5)
{
int index = Random.Range(0, _kungfuBookItems.Count);
_kungfuBookItems[index].ShowHighlight(true);
yield return new WaitForSeconds(0.15f);
_kungfuBookItems[index].ShowHighlight(false);
yield return null;
}
else
{
for (int j = 0; j < _kungfuBookItems.Count; j++)
{
var kungfuItem = _kungfuBookItems[j];
if (kungfuItem.data == kungfu)
{
kungfuItem.ShowStudyFx(true);
yield return new WaitForSeconds(0.3f);
kungfuItem.ShowStudyFx(false);
yield break;
}
}
}
}
}
#endregion
#region Unity
///
///
///
private void Awake()
{
SetViewData();
_kungfuList = GetComponent();
_kungfuList.AddTemplate(true);
}
#endregion
}
}
}