Beispiel #1
0
    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));
    }
Beispiel #2
0
	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;
	}