shaoxiadiablo/Assets/AGame/Scripts/UI/PetWindow/PetWindow.ReplacePanel.cs

122 lines
2.8 KiB
C#
Raw Permalink Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// 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
}
}
}