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;
}
}