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