private void ComputeVillageScoring() { this.villagePOI.Clear(); DepartmentOfTheInterior agency = this.OtherEmpire.GetAgency <DepartmentOfTheInterior>(); for (int i = 0; i < agency.Cities.Count; i++) { MinorEmpire minorEmpire = agency.Cities[i].Region.MinorEmpire; if (minorEmpire != null) { BarbarianCouncil council = minorEmpire.GetAgency <BarbarianCouncil>(); if (council != null) { bool flag = agency.IsAssimilated(minorEmpire.MinorFaction); int villageIndex2; int villageIndex; Predicate <DissentTask_Empire.VillageScoring> < > 9__1; for (villageIndex = 0; villageIndex < council.Villages.Count; villageIndex = villageIndex2 + 1) { if (council.Villages[villageIndex].HasBeenPacified && !council.Villages[villageIndex].HasBeenConverted && !council.Villages[villageIndex].HasBeenInfected) { List <DissentTask_Empire.VillageScoring> list = this.villagePOI; Predicate <DissentTask_Empire.VillageScoring> match2; if ((match2 = < > 9__1) == null) { match2 = (< > 9__1 = ((DissentTask_Empire.VillageScoring match) => match.Village.GUID == council.Villages[villageIndex].GUID)); } DissentTask_Empire.VillageScoring villageScoring = list.Find(match2); if (villageScoring == null) { villageScoring = new DissentTask_Empire.VillageScoring(council.Villages[villageIndex]); this.villagePOI.Add(villageScoring); } villageScoring.Reset(); if (flag) { villageScoring.Score.Boost(0.2f, "Assimilated", new object[0]); } if (this.visibilityService.IsWorldPositionVisibleFor(villageScoring.Village.WorldPosition, base.Owner)) { villageScoring.Score.Boost(0.2f, "Visible", new object[0]); } } villageIndex2 = villageIndex; } } } } this.villagePOI.Sort((DissentTask_Empire.VillageScoring left, DissentTask_Empire.VillageScoring right) => - 1 * left.Score.CompareTo(right.Score)); }
protected override IEnumerator OnLoad() { if (this.convertedVillages != null) { for (int index = 0; index < this.convertedVillages.Count; index++) { Village village = this.convertedVillages[index]; village.Empire = null; Diagnostics.Assert(village.PointOfInterest != null); Diagnostics.Assert(village.PointOfInterest.Region != null); MinorEmpire minorEmpire = village.PointOfInterest.Region.MinorEmpire; Diagnostics.Assert(minorEmpire != null); BarbarianCouncil barbarianCouncil = minorEmpire.GetAgency<BarbarianCouncil>(); Diagnostics.Assert(barbarianCouncil != null); barbarianCouncil.AddVillage(village); barbarianCouncil.AddConvertVillageOnLoad(village, this); DepartmentOfTheInterior.GenerateFIMSEForConvertedVillage(this, village.PointOfInterest); } } if (this.InfectedVillages != null) { for (int index2 = 0; index2 < this.InfectedVillages.Count; index2++) { Village village2 = this.InfectedVillages[index2]; village2.Empire = null; Diagnostics.Assert(village2.PointOfInterest != null); Diagnostics.Assert(village2.PointOfInterest.Region != null); MinorEmpire minorEmpire2 = village2.PointOfInterest.Region.MinorEmpire; Diagnostics.Assert(minorEmpire2 != null); BarbarianCouncil barbarianCouncil2 = minorEmpire2.GetAgency<BarbarianCouncil>(); Diagnostics.Assert(barbarianCouncil2 != null); barbarianCouncil2.AddVillage(village2); } } yield return base.OnLoad(); yield break; }