예제 #1
0
        public static GameEngine.StartingGameUnits getStartingSettingsFromXML(string strFactionName, Model.StaticDataCards staticDataCards)
        {
            GameEngine.StartingGameUnits rtnStartingGameUnits = new GameEngine.StartingGameUnits();


            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(_DataPath + _StartingSettingsXMLPath);

            XmlNodeList xmlTerrainNodes = xmlDoc.GetElementsByTagName("StartingUnits");

            foreach (XmlNode curNode in xmlTerrainNodes)
            {
                //Get this factions starting units
                if (curNode.Attributes["FactionName"].InnerText == strFactionName)
                {
                    XmlNodeList xmlChildNodes = curNode.ChildNodes;

                    foreach (XmlNode curChildNode in xmlChildNodes)
                    {
                        //Consider a way to implement this...
                        //if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Planet.ToString())
                        //{
                        //    GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getShipByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                        //    rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        //}

                        if (curChildNode.Attributes["Type"].InnerText == "Resources")
                        {
                            rtnStartingGameUnits.startingResources = Model.Utilities.getIntOrN(curChildNode.Attributes["StartingAmount"].InnerText, -1);
                        }

                        if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Facility.ToString())
                        {
                            GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getFacilityByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                            rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        }

                        else if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Ship.ToString())
                        {
                            GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getShipByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                            rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        }

                        else if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Troops.ToString())
                        {
                            GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getTroopsByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                            rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        }
                    }
                }
            }


            return(rtnStartingGameUnits);
        }
예제 #2
0
        public static GameEngine.StartingGameUnits getStartingSettingsFromXML(string strFactionName, Model.StaticDataCards staticDataCards)
        {
            GameEngine.StartingGameUnits rtnStartingGameUnits = new GameEngine.StartingGameUnits();

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(_DataPath + _StartingSettingsXMLPath);

            XmlNodeList xmlTerrainNodes = xmlDoc.GetElementsByTagName("StartingUnits");

            foreach (XmlNode curNode in xmlTerrainNodes)
            {
                //Get this factions starting units
                if (curNode.Attributes["FactionName"].InnerText == strFactionName)
                {
                    XmlNodeList xmlChildNodes = curNode.ChildNodes;

                    foreach (XmlNode curChildNode in xmlChildNodes)
                    {
                        //Consider a way to implement this...
                        //if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Planet.ToString())
                        //{
                        //    GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getShipByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                        //    rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        //}

                        if (curChildNode.Attributes["Type"].InnerText == "Resources")
                            rtnStartingGameUnits.startingResources = Model.Utilities.getIntOrN(curChildNode.Attributes["StartingAmount"].InnerText, -1);

                        if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Facility.ToString())
                        {
                            GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getFacilityByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                            rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        }

                        else if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Ship.ToString())
                        {
                            GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getShipByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                            rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        }

                        else if (curChildNode.Attributes["Type"].InnerText == Model.DataCardType.Troops.ToString())
                        {
                            GameEngine.PlayerInvObjs.InvUnit curInvUnit = new GameEngine.PlayerInvObjs.InvUnit(staticDataCards.getTroopsByName(curChildNode.Attributes["UnitName"].InnerText), curChildNode.Attributes["PlanetName"].InnerText);

                            rtnStartingGameUnits.startingUnits.Add(curInvUnit);
                        }

                    }

                }

            }

            return rtnStartingGameUnits;
        }