Beispiel #1
0
        public static void BringCardFromDeckToField(ref Game game, Card card)
        {
            DeckHelpers.RemoveCardFromDeck(ref game, card);
            List <Card> theField = game.Field;

            theField.Add(card);
            typeof(Game).GetProperty("Field").SetValue(game, theField);
        }
Beispiel #2
0
        public static void BringCardFromDeckToDiscardPile(ref Game game, Card card)
        {
            DeckHelpers.RemoveCardFromDeck(ref game, card);
            DiscardPile discardPile             = game.DiscardPile;
            FieldInfo   cardsinDiscardFieldInfo = typeof(DiscardPile).GetField("Cards",
                                                                               BindingFlags.NonPublic | BindingFlags.Instance);
            List <Card> cardsInDiscard = cardsinDiscardFieldInfo.GetValue(discardPile) as List <Card>;

            cardsInDiscard.Add(card);
            cardsinDiscardFieldInfo.SetValue(discardPile, cardsInDiscard);
            typeof(Game).GetProperty("DiscardPile").SetValue(game, discardPile);
        }
Beispiel #3
0
        public static void BringCardFromDeckToScoreZone(ref Game game, Card card, int scoreZoneIndex)
        {
            DeckHelpers.RemoveCardFromDeck(ref game, card);
            var shit = typeof(ScoreZone).GetMethod("AddCard",
                                                   BindingFlags.NonPublic | BindingFlags.Instance);

            ScoreZone[] zonearray    = game.ScoreZones;
            ScoreZone   zoneToModify = game.ScoreZones[scoreZoneIndex];

            shit.Invoke(zoneToModify, new object[] { card });
            zonearray[scoreZoneIndex] = zoneToModify;
            typeof(Game).GetProperty("ScoreZones").SetValue(game, zonearray);
        }