/// <summary> /// 简化的构造器 /// </summary> /// <param name="buff">光环添加的buff</param> /// <param name="range"></param> /// <param name="pile"></param> /// <param name="filter"></param> public Halo(Buff buff, PileFlag range, PileFlag pile = PileFlag.self | PileFlag.field, Func <THHGame, Card, bool> filter = null) { this.buff = buff; piles = PileName.getPiles(pile); getRange = (game, card) => range.getPiles(game, card.getOwner()); this.filter = filter; }
public void flagTest() { PileFlag flag = PileFlag.self | PileFlag.hand | PileFlag.field; Assert.True(flag.HasFlag(PileFlag.self)); Assert.False(flag.HasFlag(PileFlag.oppo)); Assert.True(flag.HasFlag(PileFlag.hand)); Assert.True(flag.HasFlag(PileFlag.field)); flag |= PileFlag.both; Assert.True(flag.HasFlag(PileFlag.oppo)); }
public LambdaSingleTargetEffect(ExecuteDelegate onExecute, PileFlag ranges = PileFlag.none, CheckConditionDelegate onCheckCondition = null, CheckTargetDelegate onCheckTarget = null) { if (ranges != PileFlag.none) { this.ranges = PileName.getPiles(ranges); } _onCheckCondition = onCheckCondition; _onCheckTarget = onCheckTarget; _onExecute = onExecute; }
public static Pile[] getPiles(this PileFlag flag, THHGame game, Player player) { List <Pile> pileList = new List <Pile>(); if (flag.HasFlag(PileFlag.self)) { addPileToList(player, flag, pileList); } if (flag.HasFlag(PileFlag.oppo)) { player = game.getOpponent(player); addPileToList(player, flag, pileList); } return(pileList.ToArray()); }
public static string[] getPiles(this PileFlag flag) { List <string> pileList = new List <string>(); if (flag.HasFlag(PileFlag.master)) { pileList.Add(MASTER); } if (flag.HasFlag(PileFlag.init)) { pileList.Add(INIT); } if (flag.HasFlag(PileFlag.hand)) { pileList.Add(HAND); } if (flag.HasFlag(PileFlag.skill)) { pileList.Add(SKILL); } if (flag.HasFlag(PileFlag.deck)) { pileList.Add(DECK); } if (flag.HasFlag(PileFlag.field)) { pileList.Add(FIELD); } if (flag.HasFlag(PileFlag.grave)) { pileList.Add(GRAVE); } if (flag.HasFlag(PileFlag.warp)) { pileList.Add(WARP); } if (flag.HasFlag(PileFlag.item)) { pileList.Add(ITEM); } return(pileList.ToArray()); }
private static void addPileToList(Player player, PileFlag flag, List <Pile> pileList) { if (flag.HasFlag(PileFlag.master)) { pileList.Add(player[MASTER]); } if (flag.HasFlag(PileFlag.init)) { pileList.Add(player[INIT]); } if (flag.HasFlag(PileFlag.hand)) { pileList.Add(player[HAND]); } if (flag.HasFlag(PileFlag.skill)) { pileList.Add(player[SKILL]); } if (flag.HasFlag(PileFlag.deck)) { pileList.Add(player[DECK]); } if (flag.HasFlag(PileFlag.field)) { pileList.Add(player[FIELD]); } if (flag.HasFlag(PileFlag.grave)) { pileList.Add(player[GRAVE]); } if (flag.HasFlag(PileFlag.warp)) { pileList.Add(player[WARP]); } if (flag.HasFlag(PileFlag.item)) { pileList.Add(player[ITEM]); } }