private float ComputeDestroyInterest(CreepingNode target, AIEntity_Empire entityEmpire, Army army) { float normalizedScore = 0.1f; AILayer_Diplomacy layer = entityEmpire.GetLayer <AILayer_Diplomacy>(); if (layer != null) { float num = layer.GetWantWarScore(target.Empire); float num2 = layer.GetAllyScore(target.Empire); if (num2 > 0.5f || num < 0.25f || layer.GetPeaceWish(target.Empire.Index)) { return(-1f); } num = (num - 0.25f) / 0.75f; num2 = (num2 - 0.5f) / 0.5f; float boostFactor = 0.2f * (num - num2); normalizedScore = AILayer.Boost(normalizedScore, boostFactor); } float propertyValue = army.Empire.GetPropertyValue(SimulationProperties.MilitaryPower); float num3 = target.Empire.GetPropertyValue(SimulationProperties.MilitaryPower); if (num3 == 0f) { num3 = 1f; } float num4 = propertyValue / num3; if (num4 < 1f) { return(-1f); } float boostFactor2 = Mathf.Clamp01(num4 / 2f) * 0.2f; return(AILayer.Boost(normalizedScore, boostFactor2)); }
private float ComputePillageInterest(PointOfInterest target, AIEntity_Empire entityEmpire, Army army) { float normalizedScore = 0.1f; AILayer_Diplomacy layer = entityEmpire.GetLayer <AILayer_Diplomacy>(); if (layer != null) { if (layer.GetPeaceWish(target.Region.City.Empire.Index)) { return(-1f); } float num = layer.GetWantWarScore(target.Region.City.Empire); float num2 = layer.GetAllyScore(target.Region.City.Empire); if (num2 > 0.5f || num < 0.25f) { return(-1f); } num = (num - 0.25f) / 0.75f; num2 = (num2 - 0.5f) / 0.5f; float boostFactor = 0.2f * (num - num2); normalizedScore = AILayer.Boost(normalizedScore, boostFactor); } float propertyValue = army.Empire.GetPropertyValue(SimulationProperties.MilitaryPower); float num3 = target.Region.City.Empire.GetPropertyValue(SimulationProperties.MilitaryPower); if (num3 == 0f) { num3 = 1f; } float num4 = propertyValue / num3; if (num4 < 1f) { return(-1f); } float boostFactor2 = Mathf.Clamp01(num4 / 2f) * 0.2f; normalizedScore = AILayer.Boost(normalizedScore, boostFactor2); string a = target.Type; float boostFactor3; if (a == "ResourceDeposit") { boostFactor3 = 0.2f; } else if (a == "WatchTower") { boostFactor3 = 0.2f; } else { boostFactor3 = 0.2f; } normalizedScore = AILayer.Boost(normalizedScore, boostFactor3); return(AILayer.Boost(normalizedScore, this.ComputeInfluence(army, target) * 0.5f)); }