public static void LoadSpawns() { if (m_Initialized) { return; } RemoveSpawns(); Utility.PushColor(ConsoleColor.White); Console.WriteLine("Generating Champion Spawns"); Utility.PopColor(); ChampionSpawn spawn; XmlDocument doc = new XmlDocument(); doc.Load(m_ConfigPath); foreach (XmlNode node in doc.GetElementsByTagName("championSystem")[0].ChildNodes) { if (node.Name.Equals("spawn")) { spawn = new ChampionSpawn { SpawnName = GetAttr(node, "name", "Unamed Spawner") }; string value = GetAttr(node, "type", null); if (value == null) { spawn.RandomizeType = true; } else { spawn.Type = (ChampionSpawnType)Enum.Parse(typeof(ChampionSpawnType), value); } value = GetAttr(node, "spawnMod", "1.0"); spawn.SpawnMod = XmlConvert.ToDouble(value); value = GetAttr(node, "killsMod", "1.0"); spawn.KillsMod = XmlConvert.ToDouble(value); foreach (XmlNode child in node.ChildNodes) { if (child.Name.Equals("location")) { int x = XmlConvert.ToInt32(GetAttr(child, "x", "0")); int y = XmlConvert.ToInt32(GetAttr(child, "y", "0")); int z = XmlConvert.ToInt32(GetAttr(child, "z", "0")); int r = XmlConvert.ToInt32(GetAttr(child, "radius", "0")); string mapName = GetAttr(child, "map", "Felucca"); Map map = Map.Parse(mapName); spawn.SpawnRadius = r; spawn.MoveToWorld(new Point3D(x, y, z), map); } } spawn.GroupName = GetAttr(node, "group", null); m_AllSpawns.Add(spawn); if (spawn.Type == ChampionSpawnType.Infuse) { PrimevalLichPuzzle.GenLichPuzzle(null); } } } Rotate(); m_Initialized = true; }