public void AddInstance(GameDatabase gamedb, AssetDatabase assetdb, int?targetSystem = null) { Random safeRandom = App.GetSafeRandom(); List <KeyValuePair <StarSystemInfo, Vector3> > outlyingStars = EncounterTools.GetOutlyingStars(gamedb); StarSystemInfo starSystemInfo; if (targetSystem.HasValue) { starSystemInfo = gamedb.GetStarSystemInfo(targetSystem.Value); } else { int count = outlyingStars.Count / 3; if (count <= 0) { return; } List <KeyValuePair <StarSystemInfo, Vector3> > range = outlyingStars.GetRange(0, count); starSystemInfo = safeRandom.Choose <KeyValuePair <StarSystemInfo, Vector3> >((IList <KeyValuePair <StarSystemInfo, Vector3> >)range).Key; } gamedb.InsertIncomingGM(starSystemInfo.ID, EasterEgg.GM_SYSTEM_KILLER, gamedb.GetTurnCount() + 1); foreach (PlayerInfo playerInfo in gamedb.GetStandardPlayerInfos().ToList <PlayerInfo>()) { if (gamedb.GetStratModifier <int>(StratModifiers.GrandMenaceWarningTime, playerInfo.ID) > 0) { gamedb.InsertTurnEvent(new TurnEvent() { EventType = TurnEventType.EV_INCOMING_SYSTEMKILLER, EventMessage = TurnEventMessage.EM_INCOMING_SYSTEMKILLER, PlayerID = playerInfo.ID, TurnNumber = gamedb.GetTurnCount() }); } } }
public void AddInstance(GameDatabase gamedb, AssetDatabase assetdb, int?targetSystem = null) { Random safeRandom = App.GetSafeRandom(); int id; if (!targetSystem.HasValue) { List <KeyValuePair <StarSystemInfo, Vector3> > list = EncounterTools.GetOutlyingStars(gamedb).ToList <KeyValuePair <StarSystemInfo, Vector3> >(); List <KeyValuePair <StarSystemInfo, Vector3> > range = list.GetRange(0, (int)Math.Ceiling((double)list.Count / 3.0)); if (range.Count == 0) { return; } id = safeRandom.Choose <KeyValuePair <StarSystemInfo, Vector3> >((IList <KeyValuePair <StarSystemInfo, Vector3> >)range).Key.ID; } else { id = targetSystem.Value; } gamedb.InsertIncomingGM(id, EasterEgg.GM_LOCUST_SWARM, gamedb.GetTurnCount() + 1); foreach (PlayerInfo playerInfo in gamedb.GetStandardPlayerInfos().ToList <PlayerInfo>()) { if (gamedb.GetStratModifier <int>(StratModifiers.GrandMenaceWarningTime, playerInfo.ID) > 0) { gamedb.InsertTurnEvent(new TurnEvent() { EventType = TurnEventType.EV_INCOMING_LOCUST, EventMessage = TurnEventMessage.EM_INCOMING_LOCUST, PlayerID = playerInfo.ID, TurnNumber = gamedb.GetTurnCount() }); } } }
public static VonNeumann InitializeEncounter( GameDatabase gamedb, AssetDatabase assetdb) { VonNeumann vonNeumann = new VonNeumann(); vonNeumann.PlayerId = gamedb.InsertPlayer("Von Neumann", "vonneumann", new int?(), assetdb.RandomEncounterPrimaryColor, new Vector3(0.0f), "", "\\base\\factions\\vonneumann\\avatars\\Vonneumann_Avatar.tga", 0.0, 0, false, false, false, 0, AIDifficulty.Normal); foreach (KeyValuePair <VonNeumann.VonNeumannShipDesigns, VonNeumann.VonNeumannDesignInfo> keyValuePair in VonNeumann.StaticShipDesigns.ToList <KeyValuePair <VonNeumann.VonNeumannShipDesigns, VonNeumann.VonNeumannDesignInfo> >()) { DesignInfo design = new DesignInfo(vonNeumann.PlayerId, keyValuePair.Key.ToString(), new string[1] { string.Format("factions\\{0}\\sections\\{1}", (object)"vonneumann", (object)keyValuePair.Value.AssetName) }); DesignLab.SummarizeDesign(assetdb, gamedb, design); VonNeumann.StaticShipDesigns[keyValuePair.Key] = new VonNeumann.VonNeumannDesignInfo() { DesignId = gamedb.InsertDesignByDesignInfo(design), AssetName = keyValuePair.Value.AssetName }; } vonNeumann._outlyingStars = EncounterTools.GetOutlyingStars(gamedb); return(vonNeumann); }