Пример #1
0
        public override async Task <int> CardUseEffect()
        {
            //选择选项,设置每个选项的名字和效果
            var switchCard = await Card.GetMenuSwitch
                             (
                ("挑拨", "创造1个铜色“食腐生物”或“吸血鬼”单位,并使其获得2点增益。"),
                ("剧毒", "摧毁1个铜色 / 银色“食腐生物”或“吸血鬼”单位。")
                             );

            if (switchCard == 0)
            {
                var cards = GwentMap.GetCreateCardsId(x => x.Group == Group.Copper &&
                                                      (x.Categories.Contains(Categorie.Necrophage) ||
                                                       x.Categories.Contains(Categorie.Vampire)), Game.RNG).ToArray();
                if ((await Game.CreateAndMoveStay(PlayerIndex, cards, isCanOver: true)) == 1)
                {
                    await Game.PlayersStay[PlayerIndex].First().Effect.Boost(2, Card);
                    return(1);
                }
                return(0);
            }
            else if (switchCard == 1)
            {
                var target = await Game.GetSelectPlaceCards(Card, 1, false,
                                                            x => x.Status.Categories.Contains(Categorie.Necrophage) ||
                                                            x.Status.Categories.Contains(Categorie.Vampire));

                if (target.Count == 0)
                {
                    return(0);
                }
                await target.Single().Effect.ToCemetery(CardBreakEffectType.Scorch);
            }
            return(0);
        }
Пример #2
0
        public override async Task <int> CardUseEffect()
        {
            var switchCard = await Card.GetMenuSwitch(("警告", "创造1张铜色/银色“矮人”牌"), ("战斗的召唤", "使1个单位获得7点强化"));

            if (switchCard == 0)
            {
                return(await Card.CreateAndMoveStay(
                           GwentMap.GetCreateCardsId(
                               x => x.HasAnyCategorie(Categorie.Dwarf) &&
                               (x.Group == Group.Copper || x.Group == Group.Silver),
                               RNG)
                           .ToList()));
            }

            if (switchCard == 1)
            {
                var targets = await Game.GetSelectPlaceCards(Card, 1, selectMode : SelectModeType.MyRow);

                if (targets.Count() == 0)
                {
                    return(0);
                }
                //强化7
                foreach (var target in targets)
                {
                    await target.Effect.Strengthen(7, Card);
                }

                return(0);
            }


            return(0);
        }
        public override async Task <int> CardUseEffect()
        {       //创造
            await Card.CreateAndMoveStay(GwentMap.GetCreateCardsId(x => x.Faction == Faction.Skellige && (x.Group == Group.Copper || x.Group == Group.Silver) && x.HasAllCategorie(Categorie.Soldier), RNG).ToList());

            //强化玩家悬牌
            await Game.PlayersStay[PlayerIndex][0].Effect.Strengthen(3, Card);

            return(1);
        }
 public override async Task <int> CardUseEffect()
 {
     return(await Card.CreateAndMoveStay(
                GwentMap.GetCreateCardsId(
                    x => x.Faction == Faction.Nilfgaard &&
                    (x.Group == Group.Copper || x.Group == Group.Silver)
                    )
                .ToList()
                ));
 }
Пример #5
0
 public override async Task <int> CardPlayEffect(bool isSpying, bool isReveal)
 {
     return(await Card.CreateAndMoveStay(
                GwentMap.GetCreateCardsId(
                    x => (x.Group == Group.Silver) && (x.CardInfo().CardType == CardType.Special),
                    RNG
                    )
                .ToList()
                ));
 }
Пример #6
0
 public override async Task <int> CardPlayEffect(bool isSpying)
 {
     return(await Card.CreateAndMoveStay(
                GwentMap.GetCreateCardsId(
                    x => x.Faction == Faction.Nilfgaard &&
                    (x.Group == Group.Copper) &&
                    (x.Categories.Contains(Categorie.Soldier))
                    )
                .ToList()
                ));
 }
 public override async Task <int> CardUseEffect()
 {
     return(await Card.CreateAndMoveStay(
                GwentMap.GetCreateCardsId(
                    x => x.Faction == Faction.ScoiaTael &&
                    (x.Group == Group.Copper || x.Group == Group.Silver) &&
                    !x.HasAnyCategorie(Categorie.Agent),
                    RNG
                    )
                .ToList()
                ));
 }
Пример #8
0
        public override async Task <int> CardPlayEffect(bool isSpying, bool isReveal)
        {
            var switchCard = await Card.GetMenuSwitch(
                ("暴行", "从牌组打出1张铜色/银色“特殊”牌"),
                ("后援", "创造1个银色“精灵”单位")
                );

            //从牌组打出1张铜色/银色“特殊”牌
            if (switchCard == 0)
            {
                //乱序列出铜色/银色“特殊”牌
                var list = Game.PlayersDeck[Card.PlayerIndex].Where(x => x.CardInfo().CardType == CardType.Special &&
                                                                    (x.Status.Group == Group.Silver || x.Status.Group == Group.Copper))
                           .Mess(Game.RNG)
                           .ToList();

                if (list.Count() == 0)
                {
                    return(0);
                }
                //选一张,如果没选,什么都不做
                var cards = await Game.GetSelectMenuCards(Card.PlayerIndex, list, 1);

                if (cards.Count() == 0)
                {
                    return(0);
                }

                //打出
                var playCard = cards.Single();
                await playCard.MoveToCardStayFirst();

                return(1);
            }

            //选择创造
            else if (switchCard == 1)
            {
                return(await Card.CreateAndMoveStay(
                           GwentMap.GetCreateCardsId(
                               x => x.HasAnyCategorie(Categorie.Elf) &&
                               (x.Group == Group.Silver) && !x.HasAnyCategorie(Categorie.Agent),
                               RNG
                               )
                           .ToList()
                           ));
            }

            return(0);
        }
Пример #9
0
        public override async Task <int> CardPlayEffect(bool isSpying, bool isReveal)
        {
            var createCards = GwentMap.GetCreateCardsId(x => x.Group == Group.Leader && x.CardId != CardId.Usurper, RNG);
            var count       = await Game.CreateAndMoveStay(
                Game.AnotherPlayer(Card.PlayerIndex),
                createCards.ToArray(),
                1);

            if (count == 0)
            {
                return(0);
            }
            await Game.RowToList(AnotherPlayer, RowPosition.MyStay).First().Effect.Boost(2, Card);

            return(1);
        }
Пример #10
0
        public override async Task <int> CardPlayEffect(bool isSpying, bool isReveal)
        {
            var switchCard = await Card.GetMenuSwitch(("禁术", "创造1张铜色/银色“炼金”牌。"), ("忌器", "从牌组打出1张铜色/银色“道具”牌。"));

            if (switchCard == 0)
            {
                var ids = GwentMap.GetCreateCardsId(x => x.Is(filter: x => x.HasAllCategorie(Categorie.Alchemy) && x.IsAnyGroup(Group.Copper, Group.Silver)), Game.RNG);
                return(await Game.CreateAndMoveStay(PlayerIndex, ids.ToArray()));
            }
            if (switchCard == 1)
            {
                var list = Game.PlayersDeck[Card.PlayerIndex].Where(x => x.Status.Categories.Contains(Categorie.Item) &&
                                                                    (x.Status.Group == Group.Silver || x.Status.Group == Group.Copper))
                           .Mess(Game.RNG)
                           .ToList();

                if (list.Count() == 0)
                {
                    return(0);
                }
                //选一张,如果没选,什么都不做
                var cards = await Game.GetSelectMenuCards(Card.PlayerIndex, list, 1);

                if (cards.Count() == 0)
                {
                    return(0);
                }

                //打出
                var playCard = cards.Single();
                await playCard.MoveToCardStayFirst();

                return(1);
            }
            return(0);
        }
Пример #11
0
        public override async Task <int> CardPlayEffect(bool isSpying, bool isReveal)
        {
            var ids = GwentMap.GetCreateCardsId(x => x.Is(filter: x => x.HasAllCategorie(Categorie.Cursed) && (x.Faction == Faction.Neutral || x.Faction == Faction.NorthernRealms) && x.IsAnyGroup(Group.Copper, Group.Silver) && !x.HasAnyCategorie(Categorie.Agent)), RNG);

            return(await Game.CreateAndMoveStay(PlayerIndex, ids.ToArray()));
        }
Пример #12
0
        public override async Task <int> CardPlayEffect(bool isSpying, bool isReveal)
        {
            var ids = GwentMap.GetCreateCardsId(x => x.Is(filter: x => x.HasAllCategorie(Categorie.Organic) && x.IsAnyGroup(Group.Copper, Group.Silver)), Game.RNG);

            return(await Game.CreateAndMoveStay(PlayerIndex, ids.ToArray()));
        }