Esempio n. 1
0
        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}'");
                }
            }
        }
Esempio n. 2
0
        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");
                }
            }
        }
Esempio n. 3
0
    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);
                }
            }
        }
    }
Esempio n. 4
0
    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;
    }
Esempio n. 5
0
    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);
                        }
                    }
                }
            }
        }
    }