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); }
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); }
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); }