public static ScriptModules New( Random random, GameDatabase db, AssetDatabase assetdb, GameSession game, NamesPool namesPool, GameSetup gameSetup) { ScriptModules scriptModules = new ScriptModules(); scriptModules.VonNeumann = VonNeumann.InitializeEncounter(db, assetdb); scriptModules.Swarmers = Swarmers.InitializeEncounter(db, assetdb); scriptModules.Gardeners = Gardeners.InitializeEncounter(db, assetdb); scriptModules.AsteroidMonitor = AsteroidMonitor.InitializeEncounter(db, assetdb); scriptModules.MorrigiRelic = MorrigiRelic.InitializeEncounter(db, assetdb); scriptModules.Slaver = Slaver.InitializeEncounter(db, assetdb); scriptModules.Pirates = Pirates.InitializeEncounter(db, assetdb); scriptModules.Spectre = Spectre.InitializeEncounter(db, assetdb); scriptModules.GhostShip = GhostShip.InitializeEncounter(db, assetdb); scriptModules.MeteorShower = MeteorShower.InitializeEncounter(db, assetdb); scriptModules.SystemKiller = SystemKiller.InitializeEncounter(db, assetdb); scriptModules.Locust = Locust.InitializeEncounter(db, assetdb); scriptModules.Comet = Comet.InitializeEncounter(db, assetdb); if (db.HasEndOfFleshExpansion()) { scriptModules.NeutronStar = NeutronStar.InitializeEncounter(db, assetdb); scriptModules.SuperNova = SuperNova.InitializeEncounter(); } scriptModules.AddEasterEggs(random, db, assetdb, game, namesPool, gameSetup); return(scriptModules); }
private static void InsertIndependentSystem( Random random, StarSystemInfo system, OrbitalObjectInfo orbit, GameDatabase gamedb, AssetDatabase assetdb) { ScriptModules.GenerateIndependentRace(random, system, orbit, gamedb, assetdb); }
public static ScriptModules Resume(GameDatabase db) { ScriptModules scriptModules = new ScriptModules(); scriptModules.VonNeumann = VonNeumann.ResumeEncounter(db); scriptModules.Swarmers = Swarmers.ResumeEncounter(db); scriptModules.Gardeners = Gardeners.ResumeEncounter(db); scriptModules.AsteroidMonitor = AsteroidMonitor.ResumeEncounter(db); scriptModules.MorrigiRelic = MorrigiRelic.ResumeEncounter(db); scriptModules.Slaver = Slaver.ResumeEncounter(db); scriptModules.Pirates = Pirates.ResumeEncounter(db); scriptModules.Spectre = Spectre.ResumeEncounter(db); scriptModules.GhostShip = GhostShip.ResumeEncounter(db); scriptModules.MeteorShower = MeteorShower.ResumeEncounter(db); scriptModules.SystemKiller = SystemKiller.ResumeEncounter(db); scriptModules.Locust = Locust.ResumeEncounter(db); scriptModules.Comet = Comet.ResumeEncounter(db); if (db.HasEndOfFleshExpansion()) { scriptModules.NeutronStar = NeutronStar.ResumeEncounter(db); scriptModules.SuperNova = SuperNova.ResumeEncounter(); } List <PlayerInfo> list = db.GetPlayerInfos().Where <PlayerInfo>((Func <PlayerInfo, bool>)(x => { if (!x.isStandardPlayer) { return(!x.includeInDiplomacy); } return(false); })).ToList <PlayerInfo>(); foreach (int playerID in db.GetStandardPlayerIDs().ToList <int>()) { foreach (PlayerInfo playerInfo in list) { DiplomacyInfo diplomacyInfo = db.GetDiplomacyInfo(playerID, playerInfo.ID); if (diplomacyInfo.State != DiplomacyState.WAR) { db.UpdateDiplomacyState(playerID, playerInfo.ID, DiplomacyState.WAR, diplomacyInfo.Relations, true); } } } return(scriptModules); }
private void AddEasterEggs( Random random, GameDatabase gamedb, AssetDatabase assetdb, GameSession game, NamesPool namesPool, GameSetup gameSetup) { List <StarSystemInfo> list1 = gamedb.GetStarSystemInfos().ToList <StarSystemInfo>(); foreach (StarSystemInfo starSystemInfo in new List <StarSystemInfo>((IEnumerable <StarSystemInfo>)list1)) { List <OrbitalObjectInfo> list2 = gamedb.GetStarSystemOrbitalObjectInfos(starSystemInfo.ID).ToList <OrbitalObjectInfo>(); if (list2.Count <OrbitalObjectInfo>() == 0) { list1.Remove(starSystemInfo); } bool flag = false; foreach (OrbitalObjectInfo orbitalObjectInfo in list2) { if (gamedb.GetColonyInfoForPlanet(orbitalObjectInfo.ID) != null) { flag = true; break; } } if (flag) { list1.Remove(starSystemInfo); } } using (List <StarSystemInfo> .Enumerator enumerator = list1.GetEnumerator()) { label_43: while (enumerator.MoveNext()) { StarSystemInfo current = enumerator.Current; foreach (OrbitalObjectInfo orbit in gamedb.GetStarSystemOrbitalObjectInfos(current.ID).ToList <OrbitalObjectInfo>()) { PlanetInfo planetInfo = gamedb.GetPlanetInfo(orbit.ID); if (planetInfo != null && !(planetInfo.Type == "gaseous") && (gamedb.GetLargeAsteroidInfo(orbit.ID) == null && gamedb.GetAsteroidBeltInfo(orbit.ID) == null) && random.CoinToss((double)assetdb.RandomEncOddsPerOrbital * ((double)gameSetup._randomEncounterFrequency / 100.0))) { int maxValue = game.GetAvailableEEOdds().Sum <KeyValuePair <EasterEgg, int> >((Func <KeyValuePair <EasterEgg, int>, int>)(x => x.Value)); if (maxValue == 0) { return; } int num1 = random.Next(maxValue); int num2 = 0; EasterEgg easterEgg = EasterEgg.EE_SWARM; foreach (KeyValuePair <EasterEgg, int> easterEggOdd in assetdb.EasterEggOdds) { num2 += easterEggOdd.Value; if (num2 > num1) { easterEgg = easterEggOdd.Key; break; } } App.Log.Warn(string.Format("Spawning {0} at {1}", (object)easterEgg.ToString(), (object)current.ID), nameof(game)); switch (easterEgg) { case EasterEgg.EE_SWARM: if (this.Swarmers != null) { this.Swarmers.AddInstance(gamedb, assetdb, current.ID, orbit.ID); goto label_43; } else { goto label_43; } case EasterEgg.EE_ASTEROID_MONITOR: if (this.AsteroidMonitor != null) { this.AsteroidMonitor.AddInstance(gamedb, assetdb, current.ID, orbit.ID); goto label_43; } else { goto label_43; } case EasterEgg.EE_PIRATE_BASE: if (this.Pirates != null) { this.Pirates.AddInstance(gamedb, assetdb, game, current.ID, orbit.ID); goto label_43; } else { goto label_43; } case EasterEgg.EE_VON_NEUMANN: if (this.VonNeumann != null) { this.VonNeumann.AddInstance(gamedb, assetdb, namesPool); goto label_43; } else { goto label_43; } case EasterEgg.EE_GARDENERS: if (this.Gardeners != null) { this.Gardeners.AddInstance(gamedb, assetdb, current.ID); goto label_43; } else { goto label_43; } case EasterEgg.EE_INDEPENDENT: ScriptModules.InsertIndependentSystem(random, current, orbit, gamedb, assetdb); goto label_43; case EasterEgg.EE_MORRIGI_RELIC: if (this.MorrigiRelic != null) { this.MorrigiRelic.AddInstance(gamedb, assetdb, current.ID, orbit.ID); goto label_43; } else { goto label_43; } default: goto label_43; } } } } } }