public static JsonObject ToJson(Dominion.GameDescription gameDescription, int starRating) { JsonObject root = new Windows.Data.Json.JsonObject(); root.Add(jsonNameDeck, ToJson(gameDescription)); JsonArray expansionArray = new JsonArray(); Dominion.Expansion[] presentExpansions; Dominion.Expansion[] missingExpansions; gameDescription.GetRequiredExpansions(out presentExpansions, out missingExpansions); foreach (var expansion in presentExpansions) { JsonObject expansionObject = new JsonObject(); expansionObject.Add("name", JsonValue.CreateStringValue(expansion.ToProgramaticName())); expansionObject.Add("present", JsonValue.CreateBooleanValue(true)); expansionArray.Add(expansionObject); } foreach (var expansion in missingExpansions) { JsonObject expansionObject = new JsonObject(); expansionObject.Add("name", JsonValue.CreateStringValue(expansion.ToProgramaticName())); expansionObject.Add("present", JsonValue.CreateBooleanValue(false)); expansionArray.Add(expansionObject); } root.Add(jsonNameRequiredExpansions, expansionArray); root.Add(jsonNameRating, JsonValue.CreateNumberValue(starRating)); return(root); }
public GameConfig( GameDescription gameDescription, MapPlayerGameConfigToCardSet startingDecks = null, MapPlayerGameConfigToCardSet startingHands = null) { this.gameDescription = gameDescription; this.startingDeck = startingDecks; this.startingHand = startingHands; this.cardGameSubset = new CardGameSubset(); var availabilities = GetCardAvailability(1, CardAvailabilityType.AllPossibleCardsInGame); foreach(var availability in availabilities) this.cardGameSubset.AddCard(availability.card); }
public static JsonObject ToJson(Dominion.GameDescription gameDescription) { JsonObject root = new Windows.Data.Json.JsonObject(); root.Add(jsonNameUseShelters, JsonValue.CreateBooleanValue(gameDescription.useShelters)); root.Add(jsonNameUseColonyAndPlatinum, JsonValue.CreateBooleanValue(gameDescription.useColonyAndPlatinum)); string banePileName = gameDescription.BanePileProgrammaticName(); if (banePileName != null) { root.Add(jsonNameBane, JsonValue.CreateStringValue(banePileName)); } JsonArray kingdomArray = new JsonArray(); foreach (var cardName in gameDescription.KingdomPileProgramaticNames()) { kingdomArray.Add(JsonValue.CreateStringValue(cardName)); } root.Add(jsonNameKingdomPiles, kingdomArray); JsonArray eventArray = new JsonArray(); foreach (var cardName in gameDescription.EventProgramaticNames()) { eventArray.Add(JsonValue.CreateStringValue(cardName)); } root.Add(jsonNameEvents, eventArray); JsonArray projectArray = new JsonArray(); foreach (var cardName in gameDescription.ProjectProgramaticNames()) { projectArray.Add(JsonValue.CreateStringValue(cardName)); } root.Add(jsonNameProjects, projectArray); JsonArray landmarkArray = new JsonArray(); foreach (var cardName in gameDescription.LandmarkProgramaticNames()) { projectArray.Add(JsonValue.CreateStringValue(cardName)); } root.Add(jsonNameLandmarks, projectArray); return(root); }
public GameConfig( GameDescription gameDescription, MapPlayerGameConfigToCardSet startingDecks = null, MapPlayerGameConfigToCardSet startingHands = null) { this.gameDescription = gameDescription; this.startingDeck = startingDecks; this.startingHand = startingHands; this.cardGameSubset = new CardGameSubset(); var availabilities = GetCardAvailability(1, CardAvailabilityType.AllPossibleCardsInGame); foreach (var availability in availabilities) { this.cardGameSubset.AddCard(availability.card); } }