private void EventService_EventRaise(object sender, EventRaiseEventArgs eventArgs) { EventEmpireEliminated eventEmpireEliminated = eventArgs.RaisedEvent as EventEmpireEliminated; if (eventEmpireEliminated == null) { return; } Amplitude.Unity.Game.Empire eliminatedEmpire = eventEmpireEliminated.EliminatedEmpire; DepartmentOfForeignAffairs agency = eliminatedEmpire.GetAgency <DepartmentOfForeignAffairs>(); Diagnostics.Assert(agency != null); for (int i = 0; i < this.majorEmpires.Length; i++) { global::Empire empire = this.majorEmpires[i]; if (i != eliminatedEmpire.Index) { DiplomaticRelation diplomaticRelation = agency.GetDiplomaticRelation(empire); Diagnostics.Assert(diplomaticRelation != null && diplomaticRelation.State != null); if (diplomaticRelation.State.Name != DiplomaticRelationState.Names.Dead) { OrderChangeDiplomaticRelationState order = new OrderChangeDiplomaticRelationState(eliminatedEmpire.Index, i, DiplomaticRelationState.Names.Dead); this.PlayerController.PostOrder(order); } } } }
public static void ShowHidePopulationSacrificeButton(Amplitude.Unity.Game.Empire observer, DepartmentOfScience departmentOfScience, AgeControlButton populationSacrificeButton) { if (departmentOfScience.CanSacrificePopulation() && departmentOfScience.Empire == observer) { populationSacrificeButton.AgeTransform.Visible = true; } else { populationSacrificeButton.AgeTransform.Visible = false; } }
public static void RefreshPopulationSacrificeButton(Amplitude.Unity.Game.Empire observer, City city, AgeControlButton populationSacrificeButton) { if (DepartmentOfTheInterior.CanSacrificePopulation(city) && observer == city.Empire) { populationSacrificeButton.AgeTransform.Enable = CityInfoPanel.interactionsAllowed; populationSacrificeButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityPopulationSacrificeDescription"); populationSacrificeButton.AgeTransform.AgeTooltip.Content = populationSacrificeButton.AgeTransform.AgeTooltip.Content.Replace("1 \\7708\\", ((int)(city.Empire.GetPropertyValue(SimulationProperties.GameSpeedMultiplier) * 2f)).ToString() + " \\7708\\"); return; } populationSacrificeButton.AgeTransform.Enable = false; populationSacrificeButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityCannotSacrificePopulationDescription"); }
public static void ShowHidePopulationBuyoutButton(Amplitude.Unity.Game.Empire observer, City city, AgeTransform populationBuyoutButton, AgeTransform populationGaugeBackground, AgeTransform nextPopulationTurns, AgeTransform nextPopulationHourglass, AgeTransform gaugePopulationTooltip) { bool flag = false; IDownloadableContentService service = Services.GetService <IDownloadableContentService>(); if (service != null && service.IsShared(DownloadableContent11.ReadOnlyName)) { DepartmentOfIntelligence agency = observer.GetAgency <DepartmentOfIntelligence>(); if (agency != null) { flag = agency.IsEmpireInfiltrated(city.Empire); } } if (DepartmentOfTheInterior.CanBuyoutPopulation(city) && city.Empire == observer) { populationBuyoutButton.Visible = true; if (populationGaugeBackground != null) { populationGaugeBackground.Visible = false; } gaugePopulationTooltip.Visible = false; nextPopulationTurns.Visible = false; nextPopulationHourglass.Visible = false; } else if (DepartmentOfTheInterior.CanBuyoutPopulation(city) && flag) { populationBuyoutButton.Visible = false; if (populationGaugeBackground != null) { populationGaugeBackground.Visible = false; } gaugePopulationTooltip.Visible = false; nextPopulationTurns.Visible = false; nextPopulationHourglass.Visible = false; } else { populationBuyoutButton.Visible = false; if (populationGaugeBackground != null) { populationGaugeBackground.Visible = true; } gaugePopulationTooltip.Visible = true; nextPopulationTurns.Visible = true; nextPopulationHourglass.Visible = true; } }
public static void RefreshPopulationBuyoutButton(Amplitude.Unity.Game.Empire observer, City city, AgeControlButton populationBuyoutButton) { if (observer != city.Empire) { populationBuyoutButton.AgeTransform.Enable = false; return; } float propertyValue = city.GetPropertyValue(SimulationProperties.CityGrowthStock); float propertyValue2 = city.GetPropertyValue(SimulationProperties.NetCityGrowth); float propertyValue3 = city.GetPropertyValue(SimulationProperties.Population); DepartmentOfTheInterior agency = city.Empire.GetAgency <DepartmentOfTheInterior>(); float num; float num2; agency.GetGrowthLimits(propertyValue3, out num, out num2); if (propertyValue + propertyValue2 >= num2) { populationBuyoutButton.AgeTransform.Enable = false; populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityBuyoutPopulationNotNeededDescription"); return; } float propertyValue4 = city.Empire.GetPropertyValue(SimulationProperties.PopulationBuyoutCooldown); if (propertyValue4 > 0f) { populationBuyoutButton.AgeTransform.Enable = false; populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityBuyoutPopulationCooldownDescription").Replace("$Cooldown", propertyValue4.ToString()); return; } float num3 = -DepartmentOfTheTreasury.GetPopulationBuyOutCost(city); ResourceDefinition resourceDefinition = ResourceDefinition.GetResourceDefinition(DepartmentOfTheTreasury.Resources.PopulationBuyout); string newValue = GuiFormater.FormatInstantCost(city.Empire, -num3, resourceDefinition.GetName(city.Empire), true, 0); DepartmentOfTheTreasury agency2 = city.Empire.GetAgency <DepartmentOfTheTreasury>(); if (agency2.IsTransferOfResourcePossible(city.Empire, DepartmentOfTheTreasury.Resources.PopulationBuyout, ref num3)) { populationBuyoutButton.AgeTransform.Enable = CityInfoPanel.interactionsAllowed; populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityBuyoutPopulationDescription").Replace("$Cost", newValue); } else { populationBuyoutButton.AgeTransform.Enable = false; populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityCannotBuyoutPopulationDescription").Replace("$Cost", newValue); } }
private void FillWorldPositionEffects(Amplitude.Unity.Game.Empire activeEmpire, WorldPosition worldPosition, bool showTerraformDescriptors = false) { SimulationObject simulationObject = null; if (this.worldPositionningService.IsExploitable(worldPosition, activeEmpire.Bits)) { Region region = this.worldPositionningService.GetRegion(worldPosition); bool flag = region != null && region.BelongToEmpire(activeEmpire as global::Empire) && region.City != null; if (!region.IsOcean && !region.IsWasteland && simulationObject == null) { this.districtProxy.RemoveAllDescriptors_ModifierForwardType_ChildrenOnly(); DepartmentOfTheInterior.ApplyDistrictProxyDescriptors(activeEmpire, this.districtProxy, worldPosition, DistrictType.Exploitation, true, showTerraformDescriptors); if (flag) { if (this.districtProxy.Parent != region.City.SimulationObject) { region.City.SimulationObject.AddChild_ModifierForwardType_ChildrenOnly(this.districtProxy); } region.City.Refresh(true); } else { if (this.districtProxy.Parent != this.cityProxy) { this.cityProxy.AddChild_ModifierForwardType_ChildrenOnly(this.districtProxy); } if (this.cityProxy.Parent != activeEmpire.SimulationObject) { activeEmpire.SimulationObject.AddChild(this.cityProxy); } this.cityProxy.Refresh(); } simulationObject = this.districtProxy; simulationObject.Refresh(); } } if (simulationObject != null) { for (int i = 0; i < this.properties.Count; i++) { this.propertyValues[i] += simulationObject.GetPropertyValue(this.properties[i]); } } }
public bool IsPositionValidForDevice(Amplitude.Unity.Game.Empire empire, WorldPosition position) { if (!position.IsValid) { return(false); } if (this.WorldPositionningService.IsWaterTile(position)) { return(false); } if (this.GetDeviceAtPosition(position) != null) { return(false); } if (this.IsAreaVolcanoformed(position)) { return(false); } if (this.WorldPositionningService != null) { if (!this.WorldPositionningService.IsConstructible(position, WorldPositionning.PreventsDistrictTypeExtensionConstruction, 0) && !this.pillarService.IsPositionOccupiedByAPillar(position)) { return(false); } Region region = this.WorldPositionningService.GetRegion(position); if (region.KaijuEmpire != null && region.Kaiju != null) { KaijuGarrison kaijuGarrison = region.Kaiju.KaijuGarrison; if (kaijuGarrison.WorldPosition == position) { return(false); } } if (region != null && region.City != null && region.City.Empire.Index != empire.Index) { for (int i = 0; i < region.City.Districts.Count; i++) { if (region.City.Districts[i].Type != DistrictType.Exploitation && region.City.Districts[i].WorldPosition == position) { return(false); } } DepartmentOfIndustry agency = region.City.Empire.GetAgency <DepartmentOfIndustry>(); ConstructionQueue constructionQueue = agency.GetConstructionQueue(region.City); if (constructionQueue != null) { for (int j = 0; j < constructionQueue.PendingConstructions.Count; j++) { if (constructionQueue.PendingConstructions[j].WorldPosition == position) { if (constructionQueue.PendingConstructions[j].ConstructibleElement is DistrictImprovementDefinition) { return(false); } if (constructionQueue.PendingConstructions[j].ConstructibleElement is UnitDesign && (constructionQueue.PendingConstructions[j].ConstructibleElement as UnitDesign).Tags.Contains(DownloadableContent9.TagSolitary)) { return(false); } } } } } } return(true); }
public EventEmpireWorldTerraformed(Amplitude.Unity.Game.Empire terraformingEmpire, WorldPosition[] terraformedTiles) : base(terraformingEmpire, EventEmpireWorldTerraformed.Name, new object[0]) { this.TerraformingEmpire = terraformingEmpire; this.TerraformedTiles = terraformedTiles; }
public EventEmpireWorldTerraformed(Amplitude.Unity.Game.Empire terraformingEmpire, WorldPosition[] terraformedTiles, bool reversible = false) : base(terraformingEmpire, EventEmpireWorldTerraformed.Name, new object[0]) { this.TerraformingEmpire = terraformingEmpire; this.TerraformedTiles = terraformedTiles; this.Reversible = reversible; }