using System; using System.Collections.Generic; using System.Linq; using Wizard.Battle; public class SkillMultiClanFilter : ISkillCardFilter { public readonly List ClanList; private readonly Func, bool> _compareFunc; public readonly string OptionText; public SkillMultiClanFilter(List clanList, string op) { ClanList = clanList; OptionText = op; _compareFunc = SkillCompareFuncCreator.Create(op, SkillCompareFuncCreator.Clan); } public IEnumerable Filtering(IEnumerable cards, SkillOptionValue option) { List list = new List(); int i; for (i = 0; i < ClanList.Count; i++) { list.AddRange(cards.Where((IReadOnlyBattleCardInfo c) => _compareFunc((int)c.Clan, (int)ClanList[i], c, cards))); } return list; } }