protected override bool IsMissionCompleted() { if (this.TargetCamp == null || this.TargetCamp.MainDistrict == null || this.TargetCamp.Empire == base.Commander.Empire) { return(true); } AIData_City aidata = this.aiDataRepository.GetAIData <AIData_City>(this.TargetCamp.City.GUID); return(aidata == null); }
protected virtual void GenerateCityTasks() { if (this.CommanderState == NavyCommander.NavyCommanderState.Inactive) { return; } for (int i = 0; i < this.NavyRegionData.NeighbouringLandRegions.Count; i++) { if (this.NavyRegionData.NeighbouringLandRegions[i].City != null) { AIData_City aidata_City = null; if (this.aiDataRepositoryHelper.TryGetAIData <AIData_City>(this.NavyRegionData.NeighbouringLandRegions[i].City.GUID, out aidata_City) && aidata_City.NeighbourgRegions.Contains(this.NavyRegionData.WaterRegionIndex) && aidata_City.City.Empire != base.Owner && this.navyLayer.MightAttackOwner(aidata_City.City.Region, aidata_City.City.Empire) && AILayer_War.IsWarTarget(this.navyLayer.AIEntity, aidata_City.City, 0f)) { this.GenerateCityBlitzTask(aidata_City.City); } } } }
private void UpdateCitiesDefenseScore() { for (int i = 0; i < this.departmentOfTheInterior.Cities.Count; i++) { City city = this.departmentOfTheInterior.Cities[i]; float num = 0.5f; float num2 = city.GetPropertyValue(SimulationProperties.CityDefensePoint) / city.GetPropertyValue(SimulationProperties.MaximumCityDefensePoint); float num3 = 0f; num = AILayer.Boost(num, -0.2f * num2); num = AILayer.Boost(num, -0.2f * num3); int num4 = this.endTurnService.Turn - 10; int num5 = 0; AIRegionData regionData; for (int j = 0; j < city.Region.Borders.Length; j++) { regionData = this.worldAtlasAIHelper.GetRegionData(base.AIEntity.Empire.Index, city.Region.Borders[j].NeighbourRegionIndex); if (regionData != null && regionData.LostByMeAtTurn > num4) { num5++; } } regionData = this.worldAtlasAIHelper.GetRegionData(base.AIEntity.Empire.Index, city.Region.Index); float num6; float num7; if (num5 > 0) { num6 = 0.5f; num7 = 0.8f + (float)num5 * 0.05f; } else if (regionData.BorderWithEnnemy > 0) { num6 = 0.3f; num7 = 0.8f + (float)regionData.BorderWithEnnemy * 0.05f; } else { num6 = -0.2f; num7 = 1f; } num = AILayer.Boost(num, num6 * num7); AIData_City aidata = this.aiDataRepositoryHelper.GetAIData <AIData_City>(this.departmentOfTheInterior.Cities[i].GUID); aidata.DefenseScore = num; } }