예제 #1
0
        private static void LoadMonstersFromNodes(XmlNodeList nodes, string rootImagePath)
        {
            if (nodes == null)
            {
                return;
            }

            foreach (XmlNode node in nodes)
            {
                Monster monster =
                    new Monster(node.AttributeAsInt("ID"),
                                node.AttributeAsString("Name"),
                                $".{rootImagePath}{node.AttributeAsString("ImageName")}",
                                node.AttributeAsInt("MaximumHitPoints"),
                                ItemFactory.CreateGameItem(node.AttributeAsInt("WeaponID")),
                                node.AttributeAsInt("RewardXP"),
                                node.AttributeAsInt("Gold"));

                XmlNodeList lootItemNodes = node.SelectNodes("./LootItems/LootItem");
                if (lootItemNodes != null)
                {
                    foreach (XmlNode lootItemNode in lootItemNodes)
                    {
                        monster.AddItemToLootTable(lootItemNode.AttributeAsInt("ID"),
                                                   lootItemNode.AttributeAsInt("Percentage"));
                    }
                }

                _baseMonsters.Add(monster);
            }
        }
예제 #2
0
        private static void LoadMonstersFromNodes(XmlNodeList nodes, string rootImagePath)
        {
            if (nodes == null)
            {
                return;
            }

            foreach (XmlNode xmlNode in nodes)
            {
                var monster = new Monster(xmlNode.AttributeAsInt("ID"),
                                          xmlNode.AttributeAsString("Name"),
                                          $"{rootImagePath}{xmlNode.AttributeAsString("ImageName")}",
                                          xmlNode.AttributeAsInt("MaximumHitPoints"),
                                          Convert.ToInt32(xmlNode.SelectSingleNode("./Dexterity").InnerText),
                                          ItemFactory.CreateGameItem(xmlNode.AttributeAsInt("WeaponID")),
                                          xmlNode.AttributeAsInt("RewardXP"),
                                          xmlNode.AttributeAsInt("Gold")
                                          );

                var lootItemNodes = xmlNode.SelectNodes("./LootItems/LootItem");
                if (lootItemNodes != null)
                {
                    foreach (XmlNode lootItemNode in lootItemNodes)
                    {
                        monster.AddItemToLootTable(lootItemNode.AttributeAsInt("ID"),
                                                   lootItemNode.AttributeAsInt("Percentage"));
                    }
                }

                _baseMonsters.Add(monster);
            }
        }
예제 #3
0
        private static void LoadMonstersFromNodes(XmlNodeList nodes, string rootImagePath)
        {
            if (nodes == null)
            {
                return;
            }

            foreach (XmlNode node in nodes)
            {
                Monster monster =
                    new Monster(node.AttributeAsInt("ID"),
                                node.AttributeAsString("NAME"),
                                $".{rootImagePath}{node.AttributeAsString("IMGNAME")}",
                                node.AttributeAsInt("MAXHP"),
                                ItemFactory.CreateGameItem(node.AttributeAsInt("WEAPONID")),
                                node.AttributeAsInt("REWARDEXP"),
                                node.AttributeAsInt("GOLD"));

                XmlNodeList lootItemNodes = node.SelectNodes("./LootItems/LootItem");
                if (lootItemNodes != null)
                {
                    foreach (XmlNode lootItemNode in lootItemNodes)
                    {
                        monster.AddItemToLootTable(lootItemNode.AttributeAsInt("ID"),
                                                   lootItemNode.AttributeAsInt("PERCENTAGE"));
                    }
                }

                _baseMonsters.Add(monster);
            }
        }
예제 #4
0
        private static void LoadLootTableFromMonsterNode(XmlNode monsterNode, Monster monsterType)
        {
            XmlNodeList lootItemNodes = monsterNode.SelectNodes("./LootTable/LootItem");

            if (lootItemNodes != null)
            {
                foreach (XmlNode lootItemNode in lootItemNodes)
                {
                    /*If there is no Quanity attribute then the value is meant to be 1
                     */
                    int?getQuantity = lootItemNode.GetXmlAttributeAsInt("Quantity", true);
                    int quantity    = getQuantity ?? 1;
                    monsterType.AddItemToLootTable(lootItemNode.GetXmlAttributeAsInt("ID"),
                                                   lootItemNode.GetXmlAttributeAsInt("Percentage"),
                                                   quantity
                                                   );
                }
            }
        }
예제 #5
0
        private static void LoadMonstersFromNodes(XmlNodeList nodes, string rootImagePath)
        {
            if (nodes == null)
            {
                return;
            }

            foreach (XmlNode node in nodes)
            {
                var attributes = s_gameDetails.PlayerAttributes;

                attributes.First(a => a.Key.Equals("DEX")).BaseValue =
                    Convert.ToInt32(node.SelectSingleNode("./Dexterity").InnerText);
                attributes.First(a => a.Key.Equals("DEX")).ModifiedValue =
                    Convert.ToInt32(node.SelectSingleNode("./Dexterity").InnerText);

                Monster monster =
                    new Monster(node.AttributeAsInt("ID"),
                                node.AttributeAsString("Name"),
                                $".{rootImagePath}{node.AttributeAsString("ImageName")}",
                                node.AttributeAsInt("MaximumHitPoints"),
                                attributes,
                                ItemFactory.CreateGameItem(node.AttributeAsInt("WeaponID")),
                                node.AttributeAsInt("RewardXP"),
                                node.AttributeAsInt("Gold"));

                XmlNodeList lootItemNodes = node.SelectNodes("./LootItems/LootItem");

                if (lootItemNodes != null)
                {
                    foreach (XmlNode lootItemNode in lootItemNodes)
                    {
                        monster.AddItemToLootTable(lootItemNode.AttributeAsInt("ID"),
                                                   lootItemNode.AttributeAsInt("Percentage"));
                    }
                }

                _baseMonsters.Add(monster);
            }
        }