Пример #1
0
    public static LocationCard NECROMANCERS_PASS()
    {
        LocationCard the_card = new LocationCard("Necromancer's Pass",
                                                 3, 2, "Travel: The first player must discard 2 cards from his hand at random to travel here."
                                                 , "ORC", new List <LOTRGame.TRAITS>()
        {
            LOTRGame.TRAITS.STRONGHOLD, LOTRGame.TRAITS.DOL_GULDUR
        }, "??");
        Func <GameArgs, bool> criteria = (GameArgs args) =>
        {
            LOTRPlayer first_player = args.relevant_player;
            return(first_player.get_cards_in_hand().Count >= 2);
        };

        the_card.set_travel_criteria(criteria);
        List <Func <EventArgs, Card, bool> > card_played_criteria = new List <Func <EventArgs, Card, bool> >()
        {
            CardEnablers.card_is_me
        };

        the_card.respond_to_event(GameEvent.LOCATION_TRAVELED,
                                  PlayerCardResponses.action_maker(card_played_criteria, EnemyCardResponses.necromancers_pass, the_card));

        return(the_card);
    }
Пример #2
0
    public static LocationCard GREAT_FOREST_WEB()
    {
        LocationCard the_card = new LocationCard("Great Forest Web",
                                                 2, 2, "Travel: Each player must exhaust 1 hero he controls to travel here."
                                                 , "SPIDER", new List <LOTRGame.TRAITS>()
        {
            LOTRGame.TRAITS.FOREST
        }, "");
        Func <GameArgs, bool> criteria = (GameArgs args) =>
        {
            LOTRGame game = args.g;
            foreach (var player in game.get_players())
            {
                bool has_ready_character = false;
                foreach (var card in player.get_heroes())
                {
                    if (!card.is_exhausted())
                    {
                        has_ready_character = true;
                        break;
                    }
                }

                if (!has_ready_character)
                {
                    foreach (var card in player.get_allies())
                    {
                        if (!card.is_exhausted())
                        {
                            has_ready_character = true;
                            break;
                        }
                    }
                }

                if (!has_ready_character)
                {
                    return(false);
                }
            }
            return(true);
        };

        the_card.set_travel_criteria(criteria);
        List <Func <EventArgs, Card, bool> > card_played_criteria = new List <Func <EventArgs, Card, bool> >()
        {
            CardEnablers.card_is_me
        };

        the_card.respond_to_event(GameEvent.LOCATION_TRAVELED,
                                  PlayerCardResponses.action_maker(card_played_criteria, EnemyCardResponses.great_forest_web, the_card, valid_targets: CardEnablers.valid_targets_player_characters_ready));
        return(the_card);
    }