private static void TryAddOrUpdateFaction(MinorFaction faction) { DbContextOptionsBuilder <EliteDbContext> config = new DbContextOptionsBuilder <EliteDbContext>(); config.UseNpgsql(_connectionString); using (EliteDbContext context = new EliteDbContext(config.Options)) { long i = context.MinorFaction.Where(f => f.Name == faction.Name).Select(f => f.Id).FirstOrDefault(); long hsid = context.StarSystem.Where(ss => ss.EddbId == faction.HomeSystemId).Select(ss => ss.Id).FirstOrDefault(); faction.HomeSystemId = hsid; if (i == 0 && hsid != 0) { context.MinorFaction.Add(faction); context.SaveChanges(); Console.WriteLine($"Added '{faction.Name}'"); } else if (hsid != 0) { context.MinorFaction.Update(faction); context.SaveChanges(); Console.WriteLine($"Updated '{faction.Name}'"); } } }
private static void ImportFactionsJson(string v) { var array = JArray.Parse(File.ReadAllText(v)); Console.WriteLine(); foreach (JObject jo in array) { try { var mf = new MinorFaction { Id = jo.Value <long>("id"), Name = jo.Value <string>("name"), UpdatedAt = DateTimeOffset.FromUnixTimeSeconds(jo.Value <long>("updated_at")).UtcDateTime, Allegiance = jo.Value <string>("allegiance").ToNormalCase(LookupOptions.Allegiances), Government = jo.Value <string>("government").ToNormalCase(LookupOptions.Governments), State = jo.Value <string>("state").ToNormalCase(LookupOptions.States), HomeSystemId = jo.Value <long>("home_system_id"), IsPlayerFaction = jo.Value <bool>("is_player_faction") }; TryAddOrUpdateFaction(mf); } catch { File.AppendAllText($"{_dir}/debug/debug.txt", $"faction,{jo.Value<string>("name")},{jo.Value<long?>("id")}\n"); } } }
private void ScoreVillageNodes() { int num = Mathf.RoundToInt(base.AIEntity.Empire.GetPropertyValue(SimulationProperties.MinorFactionSlotCount)); ReadOnlyCollection <Faction> assimilatedFactions = this.departmentOfTheInterior.AssimilatedFactions; List <float> list = new List <float>(); for (int i = 0; i < this.availableNodes.Count; i++) { if (this.availableNodes[i].pointOfInterest.Type != "Village") { list.Add(0f); } else { MinorFaction minorFaction = this.worldPositionningService.GetRegion(this.availableNodes[i].pointOfInterest.WorldPosition).MinorEmpire.Faction as MinorFaction; float num2 = (float)num; for (int j = 0; j < assimilatedFactions.Count; j++) { if (assimilatedFactions[j].Name == minorFaction.Name) { float num3 = (float)this.departmentOfTheInterior.GetNumberOfOwnedMinorFactionVillages(minorFaction, false); num2 += this.MaxNumOfFactionVillages - num3; break; } } list.Add(num2); } } if (list.Count > 0) { float num4 = list.Min(); float num5 = list.Max(); for (int k = 0; k < list.Count; k++) { if (this.availableNodes[k].pointOfInterest.Type == "Village") { float num6 = (num4 == num5) ? this.NormalizationFailSafeValue : Mathf.InverseLerp(num4, num5, list[k]); float score = this.availableNodes[k].score; float boostFactor = num6 * this.VilageWeight; this.availableNodes[k].score = AILayer.Boost(score, boostFactor); } } } }
protected override IEnumerator OnShow(params object[] parameters) { this.Description.AgeTransform.Height = 0f; this.Description.Text = string.Empty; if (this.content.StartsWith("%")) { this.Description.Text = this.content; } else if (this.technologyOnly && this.context is MultipleConstructibleTooltipData) { GuiElement guiElement; if (base.GuiService.GuiPanelHelper.TryGetGuiElement((this.context as MultipleConstructibleTooltipData).TechnologyDefinition.Name, out guiElement)) { this.Description.Text = guiElement.Description; } } else if (this.context is IDescriptionFeatureProvider) { this.Description.Text = (this.context as IDescriptionFeatureProvider).Description; } else { IGuiEntity guiEntity = this.context as IGuiEntity; GuiElement guiElement2; if (this.context != null && guiEntity != null && guiEntity.Gui != null) { this.Description.Text = guiEntity.Gui.Description; } else if (base.GuiService.GuiPanelHelper.TryGetGuiElement(this.content, out guiElement2)) { this.Description.Text = guiElement2.Description; } else { this.Description.Text = this.content; } } if (this.context is CreepingNode || this.context is PointOfInterest || this.context is Village) { WorldPosition worldPosition; if (this.context is PointOfInterest) { worldPosition = (this.context as PointOfInterest).WorldPosition; } else if (this.context is CreepingNode) { worldPosition = (this.context as CreepingNode).WorldPosition; } else { worldPosition = (this.context as Village).WorldPosition; } Region region = Services.GetService <IGameService>().Game.Services.GetService <IWorldPositionningService>().GetRegion(worldPosition); if (region.IsLand && !region.IsWasteland && region.MinorEmpire != null) { BarbarianCouncil agency = region.MinorEmpire.GetAgency <BarbarianCouncil>(); if (agency != null && agency.GetVillageAt(worldPosition) != null) { global::IGuiService service = Services.GetService <global::IGuiService>(); List <EffectDescription> list = new List <EffectDescription>(); MinorFaction minorFaction = region.MinorEmpire.MinorFaction; if (minorFaction != null) { service.GuiSimulationParser.ParseSimulationDescriptor(minorFaction, list, null, false, false); this.Description.Text = AgeLocalizer.Instance.LocalizeString(this.Description.Text); foreach (EffectDescription effectDescription in list) { if (effectDescription == list[0]) { AgePrimitiveLabel description = this.Description; description.Text = description.Text + "\n \n#FFB43F#" + AgeLocalizer.Instance.LocalizeString("%EffectsOnEmpireTitle") + "#REVERT#"; } AgePrimitiveLabel description2 = this.Description; description2.Text = description2.Text + "\n" + effectDescription.ToString(); } } } } } if (!string.IsNullOrEmpty(this.Description.Text)) { this.Description.AgeTransform.Width = this.DefaultWidth - this.Description.AgeTransform.PixelMarginLeft - this.Description.AgeTransform.PixelMarginRight; this.Description.ComputeText(); base.AgeTransform.Height = this.Description.Font.LineHeight * (float)this.Description.TextLines.Count + this.Description.AgeTransform.PixelMarginTop + this.Description.AgeTransform.PixelMarginBottom; if (this.Description.TextLines.Count == 1) { base.AgeTransform.Width = this.Description.AgeTransform.PixelMarginLeft + this.Description.Font.ComputeTextWidth(this.Description.TextLines[0], false, true) + this.Description.AgeTransform.PixelMarginRight; } else { base.AgeTransform.Width = this.DefaultWidth; } } yield return(base.OnShow(parameters)); yield break; }
public override void ReadXml(XmlReader reader) { string attribute = reader.GetAttribute("FactionDescriptor"); this.Faction = Faction.Decode(attribute); Faction faction; if (Databases.GetDatabase <Faction>(false).TryGetValue(this.Faction.Name, out faction)) { MinorFaction minorFaction = faction as MinorFaction; if (minorFaction != null) { this.Faction = (MinorFaction)minorFaction.Clone(); } NavalFaction navalFaction = faction as NavalFaction; if (navalFaction != null) { this.Faction = (NavalFaction)navalFaction.Clone(); } KaijuFaction kaijuFaction = faction as KaijuFaction; if (kaijuFaction != null) { this.Faction = (KaijuFaction)kaijuFaction.Clone(); } } this.ColorIndex = reader.GetAttribute <int>("ColorIndex"); if (!(this is MajorEmpire)) { string value = Amplitude.Unity.Framework.Application.Registry.GetValue <string>("Settings/UI/EmpireColorPalette", "Standard"); IDatabase <Palette> database = Databases.GetDatabase <Palette>(false); Palette palette = null; if (database != null) { database.TryGetValue(value, out palette); } if (palette != null && palette.Colors != null) { XmlColorReference xmlColorReference = null; if (this is MinorEmpire || this is KaijuEmpire) { xmlColorReference = palette.Colors.FirstOrDefault((XmlColorReference iterator) => iterator.Tags != null && iterator.Tags.Contains("MinorFaction")); } else if (this is NavalEmpire) { xmlColorReference = palette.Colors.FirstOrDefault((XmlColorReference iterator) => iterator.Tags != null && iterator.Tags.Contains("NavalEmpire")); } else if (this is LesserEmpire) { xmlColorReference = palette.Colors.FirstOrDefault((XmlColorReference iterator) => iterator.Tags != null && iterator.Tags.Contains("LesserEmpire")); } if (xmlColorReference != null) { this.ColorIndex = Array.IndexOf <XmlColorReference>(palette.Colors, xmlColorReference); } } } base.ReadXml(reader); IDatabase <SimulationDescriptor> database2 = Databases.GetDatabase <SimulationDescriptor>(true); List <FactionTrait> list = new List <FactionTrait>(Faction.EnumerableTraits(this.Faction)); SimulationDescriptor simulationDescriptor; Predicate <SimulationDescriptorHolder> < > 9__3; for (int i = 0; i < list.Count; i++) { FactionTrait factionTrait = list[i]; if (factionTrait != null && factionTrait.SimulationDescriptorReferences != null) { for (int j = 0; j < factionTrait.SimulationDescriptorReferences.Length; j++) { if (database2.TryGetValue(factionTrait.SimulationDescriptorReferences[j], out simulationDescriptor)) { List <SimulationDescriptorHolder> descriptorHolders = base.SimulationObject.DescriptorHolders; Predicate <SimulationDescriptorHolder> match2; if ((match2 = < > 9__3) == null) { match2 = (< > 9__3 = ((SimulationDescriptorHolder match) => match.Descriptor.Name == simulationDescriptor.Name)); } if (!descriptorHolders.Exists(match2)) { base.SimulationObject.AddDescriptor(simulationDescriptor); } } } } } }