using JetBrains.Annotations; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using WK.Data; using WK; namespace WK { public class CharacterStatsCollection { private List m_Stats; public List stats { get { return m_Stats; } } public CharacterStats this[string statsUID] { get { if (m_Stats == null) { return null; } return GetStats(statsUID); } } public CharacterStats GetStats(string statsUID) { for (int i = 0; i < m_Stats.Count; ++i) { if (m_Stats[i].uid == statsUID) { return m_Stats[i]; } } return null; } public bool HasStats(string statsUID) { for (int i = 0; i < m_Stats.Count; ++i) { if (m_Stats[i].uid == statsUID) { return true; } } return false; } } public class CharacterBuffsCollection { private List m_Buffs; public List buffs { get { return m_Buffs; } } public Buff this[string buffUID] { get { return GetBuff(buffUID); } } public Buff GetBuff(string buffUID) { if (m_Buffs == null) return null; for(int i = 0; i < m_Buffs.Count; ++i) { if (m_Buffs[i].uid == buffUID) { return m_Buffs[i]; } } return null; } public bool HasBuff(string buffUID) { return GetBuff(buffUID) != null; } } public class CharacterPerksCollection { private List m_Perks; public List perks { get { return m_Perks; } } public PerkBase this[string buffUID] { get { return GetBuff(buffUID); } } public PerkBase GetBuff(string buffUID) { if (m_Perks == null) return null; for (int i = 0; i < m_Perks.Count; ++i) { if (m_Perks[i].uid == buffUID) { return m_Perks[i]; } } return null; } public bool HasBuff(string buffUID) { return GetBuff(buffUID) != null; } } /// /// 角色当前状态,包括: 属性数值、buff、perk /// public class CharacterInfo { public CharacterStatsCollection stats { get { return m_Stats; } } private CharacterStatsCollection m_Stats; public CharacterBuffsCollection buffs { get { return m_Buffs; } } private CharacterBuffsCollection m_Buffs; public CharacterPerksCollection perks { get { return m_Perks; } } public CharacterPerksCollection m_Perks; public void OnUpdate() { } } }