using System; using System.Collections.Generic; using System.Linq; using Wizard.Battle; public class SkillBothClanFilter : ISkillCardFilter { private readonly CardBasePrm.ClanType _clan; private readonly Func, bool> _compareFunc; public readonly string OptionText; public SkillBothClanFilter(CardBasePrm.ClanType clan, string op) { _clan = clan; OptionText = op; _compareFunc = SkillCompareFuncCreator.Create(op, SkillCompareFuncCreator.Clan); } public IEnumerable Filtering(IEnumerable cards, SkillOptionValue option) { cards = cards.Where((IReadOnlyBattleCardInfo s) => s.IsClass); IEnumerable enumerable = cards.Where((IReadOnlyBattleCardInfo c) => _compareFunc((int)c.Clan, (int)_clan, c, cards)); if (enumerable.Count() > 0) { return enumerable; } return cards.Where((IReadOnlyBattleCardInfo c) => _compareFunc(c.IsPlayer ? GameMgr.GetIns().GetDataMgr().GetPlayerSubClassId() : GameMgr.GetIns().GetDataMgr().GetEnemySubClassId(), (int)_clan, c, cards)); } }