Example #1
0
	internal override void OnEmpireEliminated(global::Empire empire, bool authorized)
	{
		if (empire.Index == base.Index)
		{
			ELCPUtilities.EliminatedEmpireIndices.Add(base.Index);
			this.ELCPIsEliminated = true;
			if (this.ConvertedVillages.Count > 0)
			{
				this.UnconvertAndPacifyAllConvertedVillages();
			}
		}
		base.OnEmpireEliminated(empire, authorized);
	}
Example #2
0
 public bool IsContinentColonizedByEmpire(global::Empire empire, int continentID)
 {
     int[] regionList = this.world.Continents[continentID].RegionList;
     for (int i = 0; i < regionList.Length; i++)
     {
         Region region = this.world.Regions[i];
         if (region.City != null && region.City.Empire.Index == empire.Index)
         {
             return(true);
         }
     }
     return(false);
 }
Example #3
0
    public void RefreshContent(global::Empire empire, UnitDesign design, GameObject client, AgeTransform anchor, bool allowDoubleClick)
    {
        this.Reset();
        IGuiPanelHelper guiPanelHelper = Services.GetService <global::IGuiService>().GuiPanelHelper;

        Diagnostics.Assert(guiPanelHelper != null, "Unable to access GuiPanelHelper");
        this.UnitDesign = design;
        if (this.tooltip != null)
        {
            this.tooltip.Anchor     = anchor;
            this.tooltip.Class      = this.UnitDesign.TooltipClass;
            this.tooltip.ClientData = new ConstructibleTooltipData(empire, null, this.UnitDesign);
            this.tooltip.Content    = this.UnitDesign.Name;
        }
        this.UnitName.Text = GuiUnitDesign.GetTruncatedTitle(this.UnitDesign, this.UnitName);
        if (this.PrivateerGroup != null)
        {
            this.PrivateerGroup.Visible = this.IsMercenary(empire, this.UnitDesign);
        }
        GuiElement guiElement;

        if (guiPanelHelper.TryGetGuiElement(this.UnitDesign.UnitBodyDefinition.Name, out guiElement))
        {
            Texture2D image;
            if (guiPanelHelper.TryGetTextureFromIcon(guiElement, global::GuiPanel.IconSize.Small, out image))
            {
                this.UnitPortrait.Image = image;
            }
        }
        else
        {
            this.UnitPortrait.Image = null;
        }
        this.UnitToggle.State          = false;
        this.UnitToggle.OnSwitchMethod = "OnUnitDesignToggle";
        this.UnitToggle.OnSwitchObject = client;
        if (this.DoubleClickButton != null)
        {
            if (allowDoubleClick)
            {
                this.DoubleClickButton.AgeTransform.Visible = true;
                this.DoubleClickButton.OnDoubleClickMethod  = "OnDoubleClickDesignCB";
                this.DoubleClickButton.OnDoubleClickObject  = client;
            }
            else
            {
                this.DoubleClickButton.AgeTransform.Visible = false;
            }
        }
        this.LifeGauge.AgeTransform.Alpha = 0f;
    }
Example #4
0
 public override void Bind(global::Empire empire)
 {
     if (empire == null)
     {
         throw new ArgumentNullException("empire");
     }
     base.Bind(empire);
     this.CityListPanel.Bind(empire, base.gameObject);
     this.VillageListPanel.Bind(empire, base.gameObject);
     this.OceanicRegionListPanel.Bind(empire, base.gameObject);
     this.InfectedCitiesListPanel.Bind(empire, base.gameObject);
     this.KaijuListPanel.Bind(empire, base.gameObject);
     base.NeedRefresh = true;
 }
Example #5
0
    private static float UtilityFunc_EmpireResearch(SeasonEffect aiEvaluableElement, InterpreterContext context, float aiParameterValue, AIHeuristicAnalyser.Context debugContext)
    {
        global::Empire empire = context.Get("Empire") as global::Empire;

        Diagnostics.Assert(empire != null);
        if (empire.SimulationObject.Tags.Contains("AffinityReplicants"))
        {
            return(0f);
        }
        float num     = Mathf.Max(1f, empire.GetPropertyValue(SimulationProperties.NetEmpireResearch));
        float utility = aiParameterValue / num;

        return(AILayer_Altar.Normalize(debugContext, 0f, 1.7f, utility));
    }
 public override void Bind(global::Empire empire)
 {
     base.Bind(empire);
     this.departmentOfScience        = base.Empire.GetAgency <DepartmentOfScience>();
     this.departmentOfCreepingNodes  = base.Empire.GetAgency <DepartmentOfCreepingNodes>();
     this.departmentOfIndustry       = base.Empire.GetAgency <DepartmentOfIndustry>();
     this.departmentOfTheTreasury    = base.Empire.GetAgency <DepartmentOfTheTreasury>();
     this.departmentOfTheInterior    = base.Empire.GetAgency <DepartmentOfTheInterior>();
     this.departmentOfForeignAffairs = base.Empire.GetAgency <DepartmentOfForeignAffairs>();
     if (this.departmentOfCreepingNodes != null)
     {
         this.departmentOfCreepingNodes.CollectionChanged += this.ConstructionQueue_CollectionChanged;
     }
 }
Example #7
0
 private void UpdatePacificationStatusOfRegion(global::Empire empire, Region region, AIRegionData regionData)
 {
     regionData.VillageTotalCount = 0;
     regionData.VillagePacifiedOrConvertedByMeCount = 0;
     regionData.VillageConvertedByOtherCount        = 0;
     regionData.VillageNotPacified      = 0;
     regionData.VillageDestroyed        = 0;
     regionData.VillagePacifiedAndBuilt = 0;
     if (region.MinorEmpire != null)
     {
         BarbarianCouncil agency = region.MinorEmpire.GetAgency <BarbarianCouncil>();
         if (agency != null)
         {
             regionData.VillageTotalCount = agency.Villages.Count;
             for (int i = 0; i < agency.Villages.Count; i++)
             {
                 Village village = agency.Villages[i];
                 if (village.HasBeenConverted)
                 {
                     if (village.Converter.Index != empire.Index)
                     {
                         regionData.VillageConvertedByOtherCount++;
                         regionData.VillageNotPacified++;
                     }
                     else
                     {
                         regionData.VillagePacifiedOrConvertedByMeCount++;
                         regionData.VillagePacifiedAndBuilt++;
                     }
                 }
                 else if (village.HasBeenPacified)
                 {
                     regionData.VillagePacifiedOrConvertedByMeCount++;
                     if (village.PointOfInterest.PointOfInterestImprovement == null)
                     {
                         regionData.VillageDestroyed++;
                     }
                     else
                     {
                         regionData.VillagePacifiedAndBuilt++;
                     }
                 }
                 else
                 {
                     regionData.VillageNotPacified++;
                 }
             }
         }
     }
 }
 private void SelectEmpire(global::Empire empireToSelect)
 {
     if (empireToSelect != null)
     {
         for (int i = 0; i < this.otherEmpires.Length; i++)
         {
             if (this.otherEmpires[i].Index == empireToSelect.Index)
             {
                 this.SelectEmpireDropListIndex(i);
                 return;
             }
         }
     }
 }
Example #9
0
 public static void ComputeCostAndTurn(Amplitude.Unity.Gui.IGuiService guiService, ConstructibleElement constructible, DepartmentOfTheTreasury departmentOfTheTreasury, SimulationObjectWrapper context, out string costString, out int turn)
 {
     PanelFeatureCost.costByResource.Clear();
     if (constructible.Costs != null)
     {
         if (constructible is TechnologyDefinition && context.SimulationObject.Tags.Contains(FactionTrait.FactionTraitReplicants1) && (constructible as TechnologyDefinition).TechnologyFlags != DepartmentOfScience.ConstructibleElement.TechnologyFlag.OrbUnlock && (constructible as TechnologyDefinition).TechnologyFlags != DepartmentOfScience.ConstructibleElement.TechnologyFlag.KaijuUnlock)
         {
             costString = string.Empty;
             turn       = -1;
             global::Empire empire = context as global::Empire;
             if (empire == null)
             {
                 Diagnostics.LogError("Empire is null.");
                 return;
             }
             DepartmentOfScience agency = empire.GetAgency <DepartmentOfScience>();
             if (agency == null)
             {
                 Diagnostics.LogError("Department of science is null");
                 return;
             }
             float buyOutTechnologyCost = agency.GetBuyOutTechnologyCost(constructible);
             if (buyOutTechnologyCost != 3.40282347E+38f)
             {
                 costString = GuiFormater.FormatInstantCost(empire, buyOutTechnologyCost, DepartmentOfTheTreasury.Resources.EmpireMoney, true, 0);
                 return;
             }
             costString = "-";
             return;
         }
         else
         {
             for (int i = 0; i < constructible.Costs.Length; i++)
             {
                 if (constructible.Costs[i] is PopulationConstructionCost)
                 {
                     PopulationConstructionCost populationConstructionCost = constructible.Costs[i] as PopulationConstructionCost;
                     PanelFeatureCost.AppendCost(SimulationProperties.Population, populationConstructionCost.PopulationValue, true);
                 }
                 else
                 {
                     float productionCostWithBonus = DepartmentOfTheTreasury.GetProductionCostWithBonus(context, constructible, constructible.Costs[i], true);
                     PanelFeatureCost.AppendCost(constructible.Costs[i].ResourceName, productionCostWithBonus, constructible.Costs[i].Instant || constructible.Costs[i].InstantOnCompletion);
                 }
             }
         }
     }
     PanelFeatureCost.GetCostAndTurn(guiService, departmentOfTheTreasury, context, out costString, out turn);
 }
Example #10
0
    public bool CheckAgainstQuestInitiatorFilter(QuestBehaviour questBehavior, global::Empire empire, QuestInitiatorFilter questInitiatorFilter)
    {
        Diagnostics.Assert(questBehavior.Initiator is MajorEmpire);
        MajorEmpire majorEmpire  = empire as MajorEmpire;
        MajorEmpire majorEmpire2 = questBehavior.Initiator as MajorEmpire;

        switch (questInitiatorFilter)
        {
        case QuestInitiatorFilter.AllEmpires:
            return(true);

        case QuestInitiatorFilter.Allies:
        {
            if (majorEmpire == null)
            {
                return(false);
            }
            bool bits  = majorEmpire.Bits != 0;
            int  bits2 = majorEmpire2.Bits;
            if (((bits ? 1 : 0) & bits2) != 0)
            {
                return(true);
            }
            break;
        }

        case QuestInitiatorFilter.Empire:
            if (empire.Index == questBehavior.Initiator.Index)
            {
                return(true);
            }
            break;

        case QuestInitiatorFilter.Enemies:
            if (empire.Index != questBehavior.Initiator.Index)
            {
                return(true);
            }
            break;

        case QuestInitiatorFilter.OtherEmpires:
            if (empire.Index != questBehavior.Initiator.Index)
            {
                return(true);
            }
            break;
        }
        return(false);
    }
Example #11
0
    private static float UtilityFunc_WorldNavy(SeasonEffect aiEvaluableElement, InterpreterContext context, float aiParameterValue, AIHeuristicAnalyser.Context debugContext)
    {
        IDownloadableContentService service = Services.GetService <IDownloadableContentService>();

        if (!service.IsShared(DownloadableContent16.ReadOnlyName))
        {
            return(0f);
        }
        global::Empire empire = context.Get("Empire") as global::Empire;

        Diagnostics.Assert(empire != null);
        float num = AILayer_Altar.ComputeMyNavyImportance(empire);

        return(aiParameterValue * (num - 1f));
    }
Example #12
0
    public void ComputeRegionCandidateToColonization(global::Empire empire, ref List <int> listOfRegionToPacify)
    {
        List <AIRegionData> list = this.regionDataByEmpires[empire.Index].ToList <AIRegionData>();

        list.RemoveAll((AIRegionData match) => match.ColonizationPreference == 0f);
        if (list.Count == 0)
        {
            return;
        }
        list.Sort((AIRegionData left, AIRegionData right) => - 1 * left.ColonizationPreference.CompareTo(right.ColonizationPreference));
        for (int i = 0; i < list.Count; i++)
        {
            listOfRegionToPacify.Add(list[i].RegionIndex);
        }
    }
    private void OnScreenMiddleClickCB(GameObject obj)
    {
        if (this.diplomaticRelationsViewport == null)
        {
            return;
        }
        global::Empire empire  = null;
        global::Empire empire2 = null;

        this.diplomaticRelationsViewport.GetCurrentHighlightedEmpire(ref empire, ref empire2);
        if (empire != null)
        {
            this.OnInspect(empire);
        }
    }
    protected override State Execute(QuestBehaviour questBehaviour, params object[] parameters)
    {
        global::Empire empire = this.game.Empires[this.TargetEmpireIndex];

        if (!questBehaviour.Initiator.SimulationObject.Tags.Contains(global::Empire.TagEmpireEliminated))
        {
            OrderPacifyMinorFaction orderPacifyMinorFaction = new OrderPacifyMinorFaction(questBehaviour.Initiator.Index, empire.Index, true);
            this.playerControllerRepositoryService.ActivePlayerController.PostOrder(orderPacifyMinorFaction);
            Diagnostics.Log("Posting order: {0}.", new object[]
            {
                orderPacifyMinorFaction.ToString()
            });
        }
        return(State.Success);
    }
Example #15
0
    public WorldPositionScore[] GetWorldPositionColonizationScore(global::Empire empire, WorldPosition[] listOfPositionCandidate)
    {
        List <WorldPositionScore> list = new List <WorldPositionScore>();

        for (int i = 0; i < listOfPositionCandidate.Length; i++)
        {
            if (this.WorldPositionningService.IsExtensionConstructible(listOfPositionCandidate[i], false))
            {
                if (this.WorldPositionningService.IsConstructible(listOfPositionCandidate[i], 0))
                {
                    list.Add(this.ComputeColonizationScoreAtPosition(empire, listOfPositionCandidate[i]));
                }
            }
        }
        return(list.ToArray());
    }
Example #16
0
    public float GetPriceWithSalesTaxes(TradableTransactionType transactionType, global::Empire empire, float quantity)
    {
        float num = Tradable.GetUnitPrice(this.TradableCategoryDefinition, this.Value);

        num *= quantity;
        num  = Tradable.ApplySalesTaxes(num, transactionType, empire);
        if (this is TradableUnit && transactionType == TradableTransactionType.Buyout && empire is MajorEmpire && empire.GetPropertyValue(SimulationProperties.MarketplaceMercCostMultiplier) > 0f)
        {
            num *= empire.GetPropertyValue(SimulationProperties.MarketplaceMercCostMultiplier);
        }
        else if (ELCPUtilities.UseELCPStockpileRulseset && this is TradableBooster && empire is MajorEmpire && empire.GetPropertyValue(SimulationProperties.MarketplaceStockpileCostMultiplier) > 0f)
        {
            num *= empire.GetPropertyValue(SimulationProperties.MarketplaceStockpileCostMultiplier);
        }
        return(this.GetPriceWithSeasonEffectModifier(num, empire));
    }
Example #17
0
    public static bool IsAbleToColonize(global::Empire empire)
    {
        ReadOnlyCollection <UnitBodyDefinition> availableUnitBodyDefinitions = ((IUnitDesignDatabase)empire.GetAgency <DepartmentOfDefense>()).AvailableUnitBodyDefinitions;

        for (int i = 0; i < availableUnitBodyDefinitions.Count; i++)
        {
            if (!availableUnitBodyDefinitions[i].Tags.Contains("Hidden") && (availableUnitBodyDefinitions[i].CheckUnitAbility(UnitAbility.ReadonlyColonize, -1) || availableUnitBodyDefinitions[i].CheckUnitAbility(UnitAbility.ReadonlyResettle, -1)) && DepartmentOfTheTreasury.CheckConstructiblePrerequisites(empire, availableUnitBodyDefinitions[i], new string[]
            {
                "Prerequisites"
            }))
            {
                return(true);
            }
        }
        return(false);
    }
Example #18
0
    private static float UtilityFunc_WorldSpy(SeasonEffect aiEvaluableElement, InterpreterContext context, float aiParameterValue, AIHeuristicAnalyser.Context debugContext)
    {
        global::Empire empire = context.Get("Empire") as global::Empire;

        Diagnostics.Assert(empire != null);
        float num = 0f;
        DepartmentOfEducation agency = empire.GetAgency <DepartmentOfEducation>();

        for (int i = 0; i < agency.Heroes.Count; i++)
        {
            num += agency.Heroes[i].GetPropertyValue("NetInfiltrationPoint");
        }
        float num2 = num * 0.05f;

        return(aiParameterValue * num2);
    }
Example #19
0
    private WorldPositionScore ComputeColonizationScoreAtPosition(global::Empire empire, WorldPosition element)
    {
        if (!element.IsValid)
        {
            return(null);
        }
        bool flag = false;
        WorldPositionScore worldPositionScore = new WorldPositionScore(this.GetWorldPositionScore(empire.Index, element));
        int regionIndex = (int)this.WorldPositionningService.GetRegionIndex(element);

        foreach (WorldPosition worldPosition in WorldPosition.ParseTilesAtRange(element, 1, this.WorldPositionningService.World.WorldParameters))
        {
            if (worldPosition.IsValid)
            {
                if (this.WorldPositionningService.IsExploitable(worldPosition, 0))
                {
                    if ((int)this.WorldPositionningService.GetRegionIndex(worldPosition) == regionIndex)
                    {
                        flag |= this.WorldPositionningService.IsOceanTile(worldPosition);
                        worldPositionScore.Add(this.GetWorldPositionScore(empire.Index, worldPosition), 1f);
                    }
                }
            }
        }
        foreach (WorldPosition worldPosition2 in WorldPosition.ParseTilesAtRange(element, 1, this.WorldPositionningService.World.WorldParameters))
        {
            if (worldPosition2.IsValid)
            {
                if (this.WorldPositionningService.IsExploitable(worldPosition2, 0))
                {
                    if ((int)this.WorldPositionningService.GetRegionIndex(worldPosition2) == regionIndex)
                    {
                        worldPositionScore.Add(this.ComputeExpansionScoreAtPosition(empire, null, element, worldPosition2), this.secondRangePercent);
                        worldPositionScore.NewDistrictNeighbourgNumber++;
                        if (!this.WorldPositionningService.IsWaterTile(worldPosition2))
                        {
                            worldPositionScore.NewDistrictNotWaterNeighbourNumber++;
                        }
                    }
                }
            }
        }
        this.ComputeCountByOrientation(element, ref worldPositionScore.CountByOrientation);
        worldPositionScore.HasCostalTile = flag;
        return(worldPositionScore);
    }
Example #20
0
    private void OnEmpireSymetricDiscovery(global::Empire initiatorEmpire, global::Empire discoveredEmpire, WorldPosition initiatorEmpirePosition, WorldPosition discoveredEmpirePosition)
    {
        if (initiatorEmpire == null || discoveredEmpire == null)
        {
            throw new ArgumentNullException();
        }
        Diagnostics.Assert(this.pendingDiscoveryNotifications != null);
        OrderNotifyEmpireDiscovery orderNotifyEmpireDiscovery = this.pendingDiscoveryNotifications.Find((OrderNotifyEmpireDiscovery match) => (match.InitiatorEmpireIndex == initiatorEmpire.Index && match.DiscoveredEmpireIndex == discoveredEmpire.Index) || (match.InitiatorEmpireIndex == discoveredEmpire.Index && match.DiscoveredEmpireIndex == initiatorEmpire.Index));

        if (orderNotifyEmpireDiscovery == null)
        {
            orderNotifyEmpireDiscovery = new OrderNotifyEmpireDiscovery(initiatorEmpire.Index, discoveredEmpire.Index);
            this.pendingDiscoveryNotifications.Add(orderNotifyEmpireDiscovery);
        }
        orderNotifyEmpireDiscovery.InitiatorEmpirePosition  = initiatorEmpirePosition;
        orderNotifyEmpireDiscovery.DiscoveredEmpirePosition = discoveredEmpirePosition;
    }
Example #21
0
    private void UpdateBorderStatusOfRegion(global::Empire empire, Region region, AIRegionData regionData)
    {
        DepartmentOfForeignAffairs agency = empire.GetAgency <DepartmentOfForeignAffairs>();

        regionData.BorderWithEnnemy  = 0;
        regionData.BorderWithAllied  = 0;
        regionData.BorderWithMe      = 0;
        regionData.BorderWithNeutral = 0;
        regionData.OverallBorderSize = 0;
        for (int i = 0; i < regionData.BorderByEmpireIndex.Length; i++)
        {
            regionData.BorderByEmpireIndex[i] = 0;
        }
        for (int j = 0; j < region.Borders.Length; j++)
        {
            int num = region.Borders[j].WorldPositions.Length;
            regionData.OverallBorderSize += num;
            Region         region2 = this.worldPositionService.GetRegion(region.Borders[j].NeighbourRegionIndex);
            global::Empire owner   = region2.Owner;
            if (owner != null && owner is MajorEmpire)
            {
                regionData.BorderByEmpireIndex[owner.Index] += num;
                if (owner == empire)
                {
                    regionData.BorderWithMe += num;
                }
                else if (agency != null)
                {
                    DiplomaticRelation diplomaticRelation = agency.GetDiplomaticRelation(owner);
                    if (diplomaticRelation.State.Name == DiplomaticRelationState.Names.ColdWar || diplomaticRelation.State.Name == DiplomaticRelationState.Names.War)
                    {
                        regionData.BorderWithEnnemy += num;
                    }
                    else
                    {
                        regionData.BorderWithAllied += num;
                    }
                }
            }
            else
            {
                regionData.BorderWithNeutral += num;
            }
        }
    }
Example #22
0
    public WorldPositionScore[] GetWorldPositionExpansionScore(global::Empire empire, City city)
    {
        List <WorldPositionScore> list = new List <WorldPositionScore>();

        city.SimulationObject.AddChild(this.districtProxyByEmpires[empire.Index]);
        for (int i = 0; i < city.Districts.Count; i++)
        {
            if (this.WorldPositionningService.IsExtensionConstructible(city.Districts[i].WorldPosition, false))
            {
                if (city.Districts[i].Type == DistrictType.Exploitation)
                {
                    list.Add(this.ComputeExpansionScoreAtPosition(empire, city, city.WorldPosition, city.Districts[i].WorldPosition));
                }
            }
        }
        this.cityProxyByEmpires[empire.Index].AddChild(this.districtProxyByEmpires[empire.Index]);
        return(list.ToArray());
    }
Example #23
0
    public WorldPositionScore[] GetWorldPositionCreepingNodeImprovementScore(global::Empire empire, City city, List <AILayer_CreepingNode.EvaluableCreepingNode> listOfCreepingNodeCandidate)
    {
        List <WorldPositionScore> list = new List <WorldPositionScore>();

        city.SimulationObject.AddChild(this.districtProxyByEmpires[empire.Index]);
        for (int i = 0; i < listOfCreepingNodeCandidate.Count; i++)
        {
            PointOfInterest pointOfInterest = listOfCreepingNodeCandidate[i].pointOfInterest;
            CreepingNodeImprovementDefinition nodeDefinition = listOfCreepingNodeCandidate[i].nodeDefinition;
            if (pointOfInterest != null && nodeDefinition != null)
            {
                list.Add(this.ComputeCreepingNodeImprovementScoreAtPosition(empire, city, pointOfInterest, nodeDefinition));
            }
        }
        city.SimulationObject.RemoveChild(this.districtProxyByEmpires[empire.Index]);
        this.cityProxyByEmpires[empire.Index].AddChild(this.districtProxyByEmpires[empire.Index]);
        return(list.ToArray());
    }
Example #24
0
    private void UpdateDistanceToMyEmpireOfRegion(global::Empire empire, Region region, AIRegionData regionData)
    {
        regionData.MinimalDistanceToMyCities = 2.14748365E+09f;
        if (region.City != null && region.City.Empire == empire)
        {
            regionData.MinimalDistanceToMyCities = 0f;
        }
        DepartmentOfTheInterior agency = empire.GetAgency <DepartmentOfTheInterior>();

        for (int i = 0; i < agency.Cities.Count; i++)
        {
            float num = (float)this.worldPositionningService.GetDistance(region.Barycenter, agency.Cities[i].WorldPosition);
            if (regionData.MinimalDistanceToMyCities > num)
            {
                regionData.MinimalDistanceToMyCities = num;
            }
        }
    }
Example #25
0
 public override void Bind(global::Empire empire)
 {
     base.Bind(empire);
     this.departmentOfScience     = base.Empire.GetAgency <DepartmentOfScience>();
     this.departmentOfIndustry    = base.Empire.GetAgency <DepartmentOfIndustry>();
     this.departmentOfTheInterior = base.Empire.GetAgency <DepartmentOfTheInterior>();
     Diagnostics.Assert(this.departmentOfScience != null);
     Diagnostics.Assert(this.departmentOfIndustry != null);
     Diagnostics.Assert(this.departmentOfTheInterior != null);
     this.InitializeGuiElements();
     this.departmentOfScience.TechnologyUnlocked   += this.DepartmentOfScience_TechnologyUnlocked;
     this.departmentOfScience.ResearchQueueChanged += this.DepartmentOfScience_ResearchQueueChanged;
     if (base.PlayerController != null)
     {
         base.PlayerController.GameInterface.StateChange += this.GameInterface_StateChange;
     }
     base.NeedRefresh = true;
 }
Example #26
0
    public int GetRemainingRegionToExploreInContinent(global::Empire empire, int continentIndex, float explorationRatio)
    {
        if (empire == null)
        {
            throw new ArgumentNullException("empire");
        }
        int num = 0;

        foreach (AIRegionData airegionData in this.regionDataByEmpires[empire.Index])
        {
            Region region = this.world.Regions[airegionData.RegionIndex];
            if (region.ContinentID == continentIndex && airegionData.ExplorationRatio > explorationRatio)
            {
                num++;
            }
        }
        return(this.world.Continents[continentIndex].RegionList.Length - num);
    }
Example #27
0
    private static float UtilityFunc_EmpireCityDefense(SeasonEffect aiEvaluableElement, InterpreterContext context, float aiParameterValue, AIHeuristicAnalyser.Context debugContext)
    {
        global::Empire empire = context.Get("Empire") as global::Empire;

        Diagnostics.Assert(empire != null);
        DepartmentOfTheInterior agency = empire.GetAgency <DepartmentOfTheInterior>();

        Diagnostics.Assert(agency != null);
        float num = Mathf.Max(1f, AILayer_Altar.GetCityPropertySumValue(empire, SimulationProperties.CityDefensePoint)) / (float)agency.Cities.Count;

        if (float.IsNaN(num))
        {
            return(0f);
        }
        float utility = aiParameterValue / num;

        return(AILayer_Altar.Normalize(debugContext, 0f, 3f, utility));
    }
Example #28
0
    public bool IsVisibleFor(global::Empire empire)
    {
        IGameService service = Services.GetService <IGameService>();

        if (service != null)
        {
            IVisibilityService service2 = service.Game.Services.GetService <IVisibilityService>();
            if (service != null)
            {
                if (this.isVisibleInFogOfWar)
                {
                    return(service2.IsWorldPositionExploredFor(this.WorldPosition, empire) || service2.IsWorldPositionVisibleFor(this.WorldPosition, empire));
                }
                return(service2.IsWorldPositionVisibleFor(this.WorldPosition, empire));
            }
        }
        return(false);
    }
Example #29
0
    public int GetRemainingFreeRegionInContinent(global::Empire empire, int continentIndex)
    {
        if (empire == null)
        {
            throw new ArgumentNullException("empire");
        }
        int num = 0;

        foreach (AIRegionData airegionData in this.regionDataByEmpires[empire.Index])
        {
            Region region = this.world.Regions[airegionData.RegionIndex];
            if (region.ContinentID == continentIndex && this.IsRegionColonizedBySomeone(region))
            {
                num++;
            }
        }
        return(this.world.Continents[continentIndex].RegionList.Length - num);
    }
Example #30
0
    private bool OtherEmpireCreepingNodeAtPosition(global::Empire empire, WorldPosition worldPosition)
    {
        if (!worldPosition.IsValid)
        {
            return(false);
        }
        PointOfInterest pointOfInterest = base.WorldPositionningService.GetPointOfInterest(worldPosition);

        if (pointOfInterest == null || pointOfInterest.CreepingNodeGUID == GameEntityGUID.Zero)
        {
            return(false);
        }
        CreepingNode creepingNode = null;

        base.GameEntityRepositoryService.TryGetValue <CreepingNode>(pointOfInterest.CreepingNodeGUID, out creepingNode);
        if (creepingNode != null && empire != null && creepingNode.Empire != null && pointOfInterest.Empire.Index != empire.Index && creepingNode.DismantlingArmy == null)
        {
            if (!ELCPUtilities.UseELCPPeacefulCreepingNodes)
            {
                return(true);
            }
            if (pointOfInterest.CreepingNodeGUID != GameEntityGUID.Zero && pointOfInterest.Empire != empire)
            {
                if (pointOfInterest.Empire == null)
                {
                    return(true);
                }
                if (!(pointOfInterest.Empire is MajorEmpire))
                {
                    return(true);
                }
                DepartmentOfForeignAffairs agency = empire.GetAgency <DepartmentOfForeignAffairs>();
                if (agency == null)
                {
                    return(true);
                }
                if (!agency.IsFriend(pointOfInterest.Empire))
                {
                    return(true);
                }
            }
        }
        return(false);
    }