Exemple #1
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                List <AspectTrack> tracks = findAspectTracksWithProp(game, Property.English, Property.GovWorker, Property.Farmer, Property.Merchant);

                foreach (AspectTrack t in tracks)
                {
                    if (t.Properties.Contains(Property.English) || t.Properties.Contains(Property.GovWorker))
                    {
                        t.AddToValue(1);
                    }
                    else if (t.Properties.Contains(Property.Farmer))
                    {
                        t.AddToValue(-1);
                    }
                    else if (t.Properties.Contains(Property.Merchant))
                    {
                        t.AddToValue(calcModValueBasedOnSide(2, choosingPlayer));
                    }
                }
            }));
        }
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    (Game game, Player choosingPlayer, ChoiceHandler choiceHandler) =>
            {
                List <BoardObject> options = game.FindBO(
                    (BoardObject htgo) =>
                {
                    return(htgo.Properties.Contains(Property.Track) &&
                           htgo.Properties.Contains(Property.Aspect) &&
                           ((Track)htgo).CanModify(1));
                });

                BoardChoices boardChoices;
                choiceHandler.ChooseBoardObjects(
                    options,
                    (Dictionary <BoardObject, int> selected) => { return(true); },
                    (List <BoardObject> remainingChoices, Dictionary <BoardObject, int> selected) =>
                {
                    return(remainingChoices.Where(obj => !selected.ContainsKey(obj)).ToList());
                },
                    (Dictionary <BoardObject, int> selected) => { return(selected.Keys.Count == 4); },
                    game,
                    choosingPlayer,
                    this.CardInfo.SummationInfos[0].Description,
                    out boardChoices);

                return(boardChoices);
            },
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                choices.SelectedObjs.Keys.Cast <AspectTrack>().ToList().ForEach(t => t.AddToValue(1));
            }));
        }
Exemple #3
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                int modValue = calcModValueBasedOnSide(2, choosingPlayer);
                findAspectTracksWithProp(game, Property.French)[0].AddToValue(modValue);
            }));

            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                int modValue = calcModValueBasedOnSide(2, choosingPlayer);
                findAspectTracksWithProp(game, Property.English)[0].AddToValue(modValue);
            }));

            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                int modValue = calcModValueBasedOnSide(1, choosingPlayer);
                findAspectTracksWithProp(game, Property.Merchant, Property.Farmer).ForEach(t => t.AddToValue(modValue));
            }));
        }
Exemple #4
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(doNothingChoice, doNothingEffect, (Game game, Player choosingPlayer) => { return(false); }));

            SummationEvents.Add(genAttorneySummationAddSwayEffectPair(1));

            SummationEvents.Add(genAttorneySummationClearSwayEffectPair(2));
        }
Exemple #5
0
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices choices) =>
     {
         game.Board.GetInsanityTrack().AddToValue(1);
     }));
 }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices choices) =>
     {
         findAspectTracksWithProp(game, Property.Merchant, Property.GovWorker, Property.Farmer).ForEach(t => t.AddToValue(t.Properties.Contains(Property.Farmer) ? -2 : 1));
     }));
 }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices choices) =>
     {
         findAspectTracksWithProp(game, new Property[] { Property.Merchant })[0].AddToValue(2);
     }));
 }
Exemple #8
0
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
     {
         findAspectTracksWithProp(game, Property.English, Property.Occupation).ForEach(t => t.AddToValue(t.Properties.Contains(Property.English) ? 3 : 1));
     }));
 }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices choices) =>
     {
         findAspectTracksWithProp(game, Property.English, Property.Protestant).ForEach(t => t.AddToValue(2));
     }));
 }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
     {
         game.Board.GetInsanityTrack().AddToValue(-1);
         findAspectTracksWithProp(game, Property.French, Property.Catholic, Property.Farmer).ForEach(t => t.AddToValue(1));
     }));
 }
Exemple #11
0
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
     {
         int modVal = calcModValueBasedOnSide(1, choosingPlayer);
         findAspectTracksWithProp(game, Property.Protestant, Property.Catholic).ForEach(t => t.AddToValue(modVal));
     }));
 }
Exemple #12
0
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             doNothingEffect,
             (Game game, Player choosingPlayer) =>
     {
         return(false);
     }));
 }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
             {
                 int modVal = -calcModValueBasedOnSide(1, choosingPlayer);
                 game.Board.GetInsanityTrack().AddToValue(modVal);
             }));
 }
Exemple #14
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                findAspectTracksWithProp(game, Property.Occupation).ForEach(t => t.AddToValue(1));

                game.OfficersRecalledPlayable = true;
            }));
        }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             genAspectTrackForModCardChoice(new HashSet <Property>(), 1, 1, true, this.CardInfo.SummationInfos[0].Description),
             (Game game, Player choosingPlayer, BoardChoices choices) =>
     {
         int modVal = calcModValueBasedOnSide(1, choosingPlayer);
         game.Board.GetGuiltTrack().AddToValue(modVal);
         ((AspectTrack)choices.SelectedObjs.Keys.First()).AddToValue(modVal);
     }));
 }
Exemple #16
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                List <AspectTrack> aspectTracks = findAspectTracksWithProp(game, Property.Occupation, Property.English, Property.Catholic);
                aspectTracks.ForEach(t => t.AddToValue((t.Properties.Contains(Property.Occupation) || t.Properties.Contains(Property.English)) ? 2 : 1));

                game.OfficersRecalledPlayable = true;
            }));
        }
Exemple #17
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                int modVal = calcModValueBasedOnSide(2, choosingPlayer);
                int oppVal = -calcModValueBasedOnSide(1, choosingPlayer);

                findAspectTracksWithProp(game, Property.Farmer, Property.Catholic, Property.Protestant).ForEach(t => t.AddToValue(t.Properties.Contains(Property.Protestant) ? oppVal : modVal));
            }));
        }
 protected override void addSummationEventsAndChoices()
 {
     SummationEvents.Add(
         new CardEffectPair(
             doNothingChoice,
             (Game game, Player choosingPlayer, BoardChoices choices) =>
     {
         game.Board.GetInsanityTrack().AddToValue(-1);
     },
             (Game game, Player choosingPlayer) =>
     {
         return(game.OfficersRecalledPlayable);
     }));
 }
Exemple #19
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
            {
                game.Board.GetInsanityTrack().AddToValue(-calcModValueBasedOnSide(1, choosingPlayer));
            }));

            SummationEvents.Add(
                new CardEffectPair(
                    genAspectTrackForModCardChoice(new HashSet <Property>(), 2, 2, true, this.CardInfo.SummationInfos[1].Description),
                    (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
            {
                boardChoices.SelectedObjs.Keys.Cast <AspectTrack>().ToList().ForEach(t => t.AddToValue(calcModValueBasedOnSide(2, choosingPlayer)));
            }));
        }
Exemple #20
0
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                findAspectTracksWithProp(game, Property.GovWorker)[0].AddToValue(2);
            }));

            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                game.Board.GetInsanityTrack().AddToValue(-1);
            }));
        }
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    (Game game, Player choosingPlayer, ChoiceHandler choiceHandler) =>
            {
                List <BoardObject> choices = game.FindBO(
                    (BoardObject bo) =>
                {
                    return
                    (bo.Properties.Contains(Property.Aspect) &&
                     bo.Properties.Contains(Property.Track) &&
                     !bo.Properties.Contains(Property.GovWorker) &&
                     !bo.Properties.Contains(Property.Merchant));
                });

                BoardChoices boardChoices;
                choiceHandler.ChooseBoardObjects(
                    choices,
                    (Dictionary <BoardObject, int> selected) => { return(true); },
                    (List <BoardObject> remainingChoices, Dictionary <BoardObject, int> selected) =>
                {
                    return(remainingChoices.Where(obj => !selected.ContainsKey(obj)).ToList());
                },
                    (Dictionary <BoardObject, int> selected) => { return(selected.Keys.Count == 3); },
                    game,
                    choosingPlayer,
                    CardInfo.SummationInfos[0].Description,
                    out boardChoices);

                return(boardChoices);
            },
                    (Game game, Player choosingPlayer, BoardChoices choices) =>
            {
                choices.SelectedObjs.Keys.Cast <AspectTrack>().ToList().ForEach(t => t.AddToValue(-2));

                findAspectTracksWithProp(game, Property.GovWorker, Property.Merchant).ForEach(t => t.AddToValue(1));
            }));
        }
        protected override void addSummationEventsAndChoices()
        {
            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
            {
                game.Board.GetInsanityTrack().AddToValue(1);
            }));

            SummationEvents.Add(
                new CardEffectPair(
                    doNothingChoice,
                    (Game game, Player choosingPlayer, BoardChoices boardChoices) =>
            {
                foreach (Jury jury in game.Board.Juries)
                {
                    if (!jury.SwayTrack.IsLocked)
                    {
                        jury.SwayTrack.AddToValue(-2);
                    }
                }
            }));
        }