using System; using System.Collections.Generic; [Serializable] public struct SynergyProperty { public Condition activeCondition; public BuffProperty[] _buffs; } public class SynergyData : IHasBuff { SynergyProperty property; BuffData[] buffs; public IReadOnlyList Buffs => buffs; public SynergyData(SynergyProperty property) { this.property = property; buffs = new BuffData[property._buffs.Length]; for (int i = 0; i < property._buffs.Length; i++) { buffs[i] = new BuffData(property._buffs[i], this); } } public bool CheckCondition(IReadOnlyList currentState) => property.activeCondition.CheckCondition(currentState); }