//private float Zrotate; public CreatingNewGameScreen(Empire empire, string size, float StarNumModifier, string EmpireToRemoveName, int numOpponents, RaceDesignScreen.GameMode gamemode, int GameScale, UniverseData.GameDifficulty difficulty, MainMenuScreen mmscreen) { { GlobalStats.RemnantArmageddon = false; GlobalStats.RemnantKills = 0; this.mmscreen = mmscreen; foreach (KeyValuePair<string, Ship_Game.Artifact> Artifact in Ship_Game.ResourceManager.ArtifactsDict) { Artifact.Value.Discovered = false; } RandomEventManager.ActiveEvent = null; this.difficulty = difficulty; this.scale = (float)GameScale; if (this.scale == 5) this.scale = 8; if (this.scale == 6) this.scale = 16; this.mode = gamemode; this.numOpponents = numOpponents; this.EmpireToRemoveName = EmpireToRemoveName; EmpireManager.EmpireList.Clear(); XmlSerializer serializer2 = new XmlSerializer(typeof(DiplomaticTraits)); //Added by McShooterz: mod folder support this.dtraits = (DiplomaticTraits)serializer2.Deserialize((new FileInfo(File.Exists(string.Concat(Ship_Game.ResourceManager.WhichModPath, "/Diplomacy/DiplomaticTraits.xml")) ? string.Concat(Ship_Game.ResourceManager.WhichModPath, "/Diplomacy/DiplomaticTraits.xml") : "Content/Diplomacy/DiplomaticTraits.xml")).OpenRead()); Ship_Game.ResourceManager.LoadEncounters(); this.playerEmpire = empire; empire.Initialize(); empire.data.CurrentAutoColony = empire.data.DefaultColonyShip; empire.data.CurrentAutoFreighter = empire.data.DefaultSmallTransport; empire.data.CurrentAutoScout = empire.data.StartingScout; empire.data.CurrentConstructor = empire.data.DefaultConstructor; this.data = new UniverseData() { FTLSpeedModifier = GlobalStats.FTLInSystemModifier, EnemyFTLSpeedModifier = GlobalStats.EnemyFTLInSystemModifier, GravityWells = GlobalStats.PlanetaryGravityWells, FTLinNeutralSystem = GlobalStats.WarpInSystem }; string str = size; string str1 = str; if (str != null) { if (str1 == "Tiny") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(16f * StarNumModifier); this.data.Size = new Vector2(3500000f, 3500000f); } else if (str1 == "Small") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(30f * StarNumModifier); this.data.Size = new Vector2(7300000f, 7300000f); } else if (str1 == "Medium") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(50f * StarNumModifier); this.data.Size = new Vector2(9350000f, 9350000f); Empire.ProjectorRadius = (this.data.Size.X / 70); } else if (str1 == "Large") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(50f * StarNumModifier); Empire.ProjectorRadius = (this.data.Size.X / 70); } else if (str1 == "Huge") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(50f * StarNumModifier); this.data.Size = new Vector2(18000000f, 18000000f); Empire.ProjectorRadius = (this.data.Size.X / 70); } else if (str1 == "Epic") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(50f * StarNumModifier); this.data.Size = new Vector2(54000000, 54000000); Empire.ProjectorRadius = (this.data.Size.X / 70); //this.data.Size = new Vector2(36000000, 36000000); //this.scale = 2; //this.numSystems = (int)(125f * StarNumModifier); //this.data.Size = new Vector2(3.6E+07f, 3.6E+07f); } else if (str1 == "TrulyEpic") { //if (mode == RaceDesignScreen.GameMode.Warlords) //{ // this.numSystems = (int)(12 * StarNumModifier); //} //else this.numSystems = (int)(50f * StarNumModifier); //this.numSystems = (int)(100f * StarNumModifier); this.data.Size = new Vector2(54000000, 54000000); //this.data.Size = new Vector2(7.2E+07f, 7.2E+07f); //this.scale = 4; Empire.ProjectorRadius = (this.data.Size.X / 70); } //if (this.numSystems <= this.numOpponents+2) //{ // this.numSystems = this.numOpponents + 2; //} } UniverseData universeDatum = this.data; universeDatum.Size = universeDatum.Size * this.scale; this.data.EmpireList.Add(empire); EmpireManager.EmpireList.Add(empire); this.GalacticCenter = new Vector2(this.data.Size.X / 2f, this.data.Size.Y / 2f); StatTracker.SnapshotsDict.Clear(); } }
public static Empire CreateRebelsFromEmpireData(EmpireData data, Empire parent) { Empire empire = new Empire(); empire.isFaction = true; empire.data = CreatingNewGameScreen.CopyEmpireData(data); //Added by McShooterz: mod folder support DiplomaticTraits diplomaticTraits = (DiplomaticTraits)new XmlSerializer(typeof(DiplomaticTraits)).Deserialize((Stream)new FileInfo(File.Exists(string.Concat(Ship_Game.ResourceManager.WhichModPath, "/Diplomacy/DiplomaticTraits.xml")) ? string.Concat(Ship_Game.ResourceManager.WhichModPath, "/Diplomacy/DiplomaticTraits.xml") : "Content/Diplomacy/DiplomaticTraits.xml").OpenRead()); int index1 = (int)RandomMath.RandomBetween(0.0f, (float)diplomaticTraits.DiplomaticTraitsList.Count); empire.data.DiplomaticPersonality = diplomaticTraits.DiplomaticTraitsList[index1]; int index2 = (int)RandomMath.RandomBetween(0.0f, (float)diplomaticTraits.DiplomaticTraitsList.Count); empire.data.DiplomaticPersonality = diplomaticTraits.DiplomaticTraitsList[index2]; int index3 = (int)RandomMath.RandomBetween(0.0f, (float)diplomaticTraits.EconomicTraitsList.Count); empire.data.EconomicPersonality = diplomaticTraits.EconomicTraitsList[index3]; int index4 = (int)RandomMath.RandomBetween(0.0f, (float)diplomaticTraits.EconomicTraitsList.Count); empire.data.EconomicPersonality = diplomaticTraits.EconomicTraitsList[index4]; empire.data.SpyModifier = data.Traits.SpyMultiplier; empire.PortraitName = data.PortraitName; empire.EmpireColor = new Color(128, 128, 128, 256); empire.Initialize(); return empire; }
private Empire CreateEmpireFromEmpireData(EmpireData data) { Empire empire = new Empire(); if (data.Faction == 1) empire.isFaction = true; if (data.MinorRace) empire.MinorRace = true; int index1 = (int)RandomMath.RandomBetween(0.0f, (float)this.dtraits.DiplomaticTraitsList.Count); data.DiplomaticPersonality = this.dtraits.DiplomaticTraitsList[index1]; while (!this.CheckPersonality(data)) { int index2 = (int)RandomMath.RandomBetween(0.0f, (float)this.dtraits.DiplomaticTraitsList.Count); data.DiplomaticPersonality = this.dtraits.DiplomaticTraitsList[index2]; } int index3 = (int)RandomMath.RandomBetween(0.0f, (float)this.dtraits.EconomicTraitsList.Count); data.EconomicPersonality = this.dtraits.EconomicTraitsList[index3]; while (!this.CheckEPersonality(data)) { int index2 = (int)RandomMath.RandomBetween(0.0f, (float)this.dtraits.EconomicTraitsList.Count); data.EconomicPersonality = this.dtraits.EconomicTraitsList[index2]; } empire.data = data; //Added by McShooterz: set values for alternate race file structure data.Traits.SetValues(); empire.dd = ResourceManager.DDDict[data.DiplomacyDialogPath]; empire.data.SpyModifier = data.Traits.SpyMultiplier; empire.data.Traits.Spiritual = data.Traits.Spiritual; data.Traits.PassengerModifier += data.Traits.PassengerBonus; empire.PortraitName = data.PortraitName; empire.data.Traits = data.Traits; empire.EmpireColor = new Color((byte)data.Traits.R, (byte)data.Traits.G, (byte)data.Traits.B); empire.Initialize(); return empire; }
private Empire CreateEmpireFromEmpireSaveData(SavedGame.EmpireSaveData data) { Empire e = new Empire(); //TempEmpireData Tdata = new TempEmpireData(); if (data.IsFaction) { e.isFaction = true; } if (data.isMinorRace) { e.MinorRace = true; } if (data.empireData == null) { e.data.Traits = data.Traits; e.EmpireColor = new Color((byte)data.Traits.R, (byte)data.Traits.G, (byte)data.Traits.B); } else { e.data = new EmpireData(); //Tdata = data.empireData as TempEmpireData; foreach (string key in e.data.WeaponTags.Keys) { if(data.empireData.WeaponTags.ContainsKey(key)) continue; data.empireData.WeaponTags.Add(key,new WeaponTagModifier()); } e.data = data.empireData; // e.data. e.data.ResearchQueue = data.empireData.ResearchQueue; e.ResearchTopic = data.ResearchTopic; if (e.ResearchTopic == null) { e.ResearchTopic = ""; } e.dd = Ship_Game.ResourceManager.DDDict[e.data.DiplomacyDialogPath]; e.PortraitName = e.data.PortraitName; e.EmpireColor = new Color((byte)e.data.Traits.R, (byte)e.data.Traits.G, (byte)e.data.Traits.B); if (data.CurrentAutoScout != null) e.data.CurrentAutoScout = data.CurrentAutoScout; else e.data.CurrentAutoScout = e.data.StartingScout; if (data.CurrentAutoFreighter != null) e.data.CurrentAutoFreighter = data.CurrentAutoFreighter; else e.data.CurrentAutoFreighter = e.data.DefaultSmallTransport; if (data.CurrentAutoColony != null) e.data.CurrentAutoColony = data.CurrentAutoColony; else e.data.CurrentAutoColony = e.data.DefaultColonyShip; if (data.CurrentConstructor != null) e.data.CurrentConstructor = data.CurrentConstructor; else e.data.CurrentConstructor = e.data.DefaultConstructor; } e.Initialize(); e.Money = data.Money; e.Research = data.Research; e.GetGSAI().AreasOfOperations = data.AOs; foreach (TechEntry tech in data.TechTree) { if (!e.GetTDict().ContainsKey(tech.UID)) { continue; } if (tech.AcquiredFrom != null) e.GetTDict()[tech.UID].AcquiredFrom = tech.AcquiredFrom; if (tech.Unlocked) { e.UnlockTechFromSave(tech.UID); } e.GetTDict()[tech.UID].Progress = tech.Progress; e.GetTDict()[tech.UID].Discovered = tech.Discovered; e.GetTDict()[tech.UID].level = tech.level; } return e; }