122 lines
2.8 KiB
C#
122 lines
2.8 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2021-03-26
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "PetWindow.ReplacePanel" company="Kunpo"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace G.UI
|
|
{
|
|
partial class PetWindow
|
|
{
|
|
class ReplacePanel : KUIWidget
|
|
{
|
|
#region Field
|
|
|
|
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
|
|
[KUIFlag]
|
|
Button _btnClose;
|
|
[KUIFlag]
|
|
Button _btnReplace;
|
|
[KUIFlag]
|
|
KUIList __listOldSkills;
|
|
[KUIFlag]
|
|
KUIList __listNewSkills;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpOldCV;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpNewCV;
|
|
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
|
|
private readonly List<SkillWidget> _skillWidgets = new List<SkillWidget>(8);
|
|
|
|
#endregion
|
|
|
|
#region Method
|
|
|
|
public override void Refresh()
|
|
{
|
|
if (this.data is PetProxy.PetInfo petInfo)
|
|
{
|
|
RefreshOldSkills(petInfo.skills);
|
|
RefreshNewSkills(petInfo.recastSkills);
|
|
}
|
|
}
|
|
|
|
void RefreshOldSkills(IList<PetProxy.PetSkillInfo> petSkills)
|
|
{
|
|
__listOldSkills.Clear();
|
|
int combatValue = 0;
|
|
for (int i = 0; i < petSkills.Count; i++)
|
|
{
|
|
if (petSkills[i] != null)
|
|
{
|
|
var widget = __listOldSkills.GetItem<SkillWidget>();
|
|
widget.SetData(petSkills[i]);
|
|
combatValue += petSkills[i].item.combatValue;
|
|
}
|
|
}
|
|
_tmpOldCV.text = combatValue.ToString();
|
|
}
|
|
|
|
void RefreshNewSkills(IList<PetProxy.PetSkillInfo> petSkills)
|
|
{
|
|
__listNewSkills.Clear();
|
|
int combatValue = 0;
|
|
for (int i = 0; i < petSkills.Count; i++)
|
|
{
|
|
if (petSkills[i] != null)
|
|
{
|
|
var widget = __listNewSkills.GetItem<SkillWidget>();
|
|
widget.SetData(petSkills[i]);
|
|
combatValue += petSkills[i].item.combatValue;
|
|
}
|
|
}
|
|
_tmpNewCV.text = combatValue.ToString();
|
|
}
|
|
|
|
void OnReplaceBtnClick()
|
|
{
|
|
if (this.data is PetProxy.PetInfo petInfo)
|
|
{
|
|
petInfo.ApplyRecast();
|
|
this.Close();
|
|
GetWindow<PetWindow>().ShowRecastPanel(false);
|
|
}
|
|
}
|
|
|
|
void OnCloseBtnClick()
|
|
{
|
|
this.Close();
|
|
GetWindow<PetWindow>().ShowRecastPanel(false);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Unity
|
|
|
|
private void Awake()
|
|
{
|
|
SetViewData();
|
|
__listOldSkills.AddTemplate<SkillWidget>(true);
|
|
__listNewSkills.AddTemplate<SkillWidget>(true);
|
|
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
|
|
_btnReplace.onClick.AddListener(this.OnReplaceBtnClick);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
}
|