private void SpawnInvasion()
        {
            List<IInvasionGenerator> generators = new List<IInvasionGenerator>();

            if (!SettingsManager.BoolSettings[(int)Preferences.NoWolfDifficultySetting]) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is WolfInvasionGenerator));
            }
            if (!SettingsManager.BoolSettings[(int)Preferences.NoSpiderDifficultySetting]) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is SpiderInvasionGenerator));
            }
            if (!SettingsManager.BoolSettings[(int)Preferences.NoNecromancerDifficultySetting]) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is NecromancerInvasionGenerator));
            }
            if (!SettingsManager.BoolSettings[(int)Preferences.NoUndeadDifficultySetting]) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is SkeletonInvasionGenerator));
            }
            if (!SettingsManager.BoolSettings[(int)Preferences.NoGoblinDifficultySetting]) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is GoblinInvasionGenerator));
            }

            if (generators.Count == 0) {
                GUIWindowModOptions.DisplayMessage("No Invasion Started", "You need at least one invasion type selected.");
                return;
            }

            float difficultyPrecent = (float)SettingsManager.DifficultyPrecentAsInt/100;

            IInvasionGenerator invasionGenerator = generators.WeightedRandomElement(element => element.getPriority());

            if (invasionGenerator == null) {
                GUIManager.getInstance().AddTextLine("Invasion Failed to Spawn");
            } else {
                WorldManager.getInstance().SpawnInvasion(invasionGenerator.CreateInvasion((int)(weightedWealth * difficultyPrecent)));
            }
            //GUIManager.getInstance().AddTextLine("Spawned Invasion with weight of: " + (weightedWealth * difficultyPrecent));
        }
        private void SpawnInvasion()
        {
            List<IInvasionGenerator> generators = new List<IInvasionGenerator>();

            if (wolf) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is WolfInvasionGenerator));
            }
            if (spider) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is SpiderInvasionGenerator));
            }
            if (necromancer) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is NecromancerInvasionGenerator));
            }
            if (undead) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is SkeletonInvasionGenerator));
            }
            if (goblin) {
                generators.Add(WorldManager.getInstance().InvasionGenerators.First(x => x is GoblinInvasionGenerator));
            }

            if (generators.Count == 0) {
                GUIWindowModOptions.DisplayMessage("No Invasion Started", "You need at least one invasion type selected.");
                return;
            }

            GUIWindowInvasionDifficultyMenu.InvasionTiggeredByMod = true;

            IInvasionGenerator invasionGenerator = generators.WeightedRandomElement(element => element.getPriority());

            if (invasionGenerator == null) {
                GUIManager.getInstance().AddTextLine("Invasion Failed to Spawn");
            } else {
                WorldManager.getInstance().SpawnInvasion(invasionGenerator.CreateInvasion(invasionPoints));
            }
        }