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);
        }
Example #2
0
        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);
        }
Example #4
0
        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);
            }
        }