using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 属性容器 /// public class AttributeContainer { /// 属性字典 public Dictionary dictionary = new Dictionary(); /// 添加属性 public void AddInstance(string attributeID, AttributeInstance instance) { if (dictionary.ContainsKey(attributeID)) { return; } dictionary.Add(attributeID, instance); } /// 添加修改器 public void AddModifier(string attributeID, AttributeModifier mod, bool isUpdate) { if (!dictionary.ContainsKey(attributeID)) { return; } dictionary[attributeID].AddModifier(mod, isUpdate); } /// 重新计算值 public void RecalculateValue() { foreach (var item in dictionary) { item.Value.RecalculateValue(); } } /// 循环属性集合 public void ForEach(Action action) { foreach (var item in dictionary) { action?.Invoke(item.Key, item.Value); } } /// 查询值 public float FindValue(string attributeID) { if (!dictionary.ContainsKey(attributeID)) { return 0; } return dictionary[attributeID].currentValue; } /// 查询修改器 public List FindModifier(string attributeID) { if (!dictionary.ContainsKey(attributeID)) { return new(); } return dictionary[attributeID].modifiers; } }