Ejemplo n.º 1
0
        /// <summary>
        /// Will read the data of a xml file from source and return a list of CardDataStructure.
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        private static List <CardDataStructure> XMLReader(string source)
        {
            //Adds a path the source needs.
            source = AddPath(source);
            var       serializer = new XmlSerializer(typeof(CardNodes));
            var       xmlReader  = new XmlTextReader(source);
            CardNodes xmlData    = (CardNodes)serializer.Deserialize(xmlReader);
            var       tempHolder = new List <XmlDataStructure>(xmlData.cardsData.Cast <XmlDataStructure>());

            return(tempHolder.Select(card =>
            {
                if (card.ExtraDataTypeName == "SpellExtraData") //Checks what type of card we have in order to create the correct ExtraData.
                {
                    SpellExtraData spellExtra = new SpellExtraData((SpellEffect)card.ExtraData.Effect, card.ExtraData.EffectAmount);
                    return new CardDataStructure(card.Name, card.Cost, card.ArtPath, card.ExtraDataTypeName, spellExtra);
                }
                else if (card.ExtraDataTypeName == "MinionExtraData")
                {
                    MinionExtraData minionExtra = new MinionExtraData(card.ExtraData.Health, card.ExtraData.AttackDamage);
                    return new CardDataStructure(card.Name, card.Cost, card.ArtPath, card.ExtraDataTypeName, minionExtra);
                }
                else
                {
                    return null; //Returns null if its an unsupported Card type.
                }
            }).ToList());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Writes a list of CardDataStrcutre to an XML file.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="cardData"></param>
        /// <returns></returns>
        private static bool XmlWriter(string source, List <CardDataStructure> cardData)
        {
            CardNodes cardNodes = new CardNodes();

            cardNodes.cardsData = cardData.Select(card =>
            {
                return(new XmlDataStructure(card.ArtPath, 0, card.Cost, new XmlExtra(card.ExtraData), card.ExtraDataTypeName, 0, card.Name));
            }).ToList();
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(CardNodes));

            using (StreamWriter stream = File.CreateText(source))
            {
                xmlSerializer.Serialize(stream, cardNodes);
            }

            return(false);
        }