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);
    }
Пример #2
0
 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);
             }
         }
     }
 }
Пример #3
0
 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;
     }
 }