AI now moved ranged units before melee, so that it will attack wil the ranged units first =)

This commit is contained in:
Yair Morgenstern
2018-06-14 20:47:23 +03:00
parent b3a15d9d6e
commit d2cb7173c1
3 changed files with 27 additions and 15 deletions

View File

@ -4,10 +4,11 @@ import com.badlogic.gdx.graphics.Color
import com.unciv.logic.city.CityConstructions
import com.unciv.logic.city.CityInfo
import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.map.MapUnit
import com.unciv.logic.map.TileInfo
import com.unciv.models.gamebasics.unit.UnitType
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.unit.Unit
import com.unciv.models.gamebasics.unit.UnitType
import com.unciv.ui.utils.getRandom
class Automation {
@ -41,10 +42,21 @@ class Automation {
civInfo.policies.adopt(policyToAdopt)
}
val rangedUnits = mutableListOf<MapUnit>()
val meleeUnits = mutableListOf<MapUnit>()
val civilianUnits = mutableListOf<MapUnit>()
for (unit in civInfo.getCivUnits()) {
UnitAutomation().automateUnitMoves(unit)
val unitType = unit.getBaseUnit().unitType
if(unitType.isRanged()) rangedUnits.add(unit)
else if(unitType.isMelee()) meleeUnits.add(unit)
else civilianUnits.add(unit)
}
for (unit in rangedUnits) UnitAutomation().automateUnitMoves(unit)
for (unit in meleeUnits) UnitAutomation().automateUnitMoves(unit)
for (unit in civilianUnits) UnitAutomation().automateUnitMoves(unit)
// train settler?
if (civInfo.cities.any()
&& civInfo.happiness > 2*civInfo.cities.size +5

View File

@ -134,7 +134,6 @@ class CityInfo {
expansion.nextTurn(stats.culture)
if(isBeingRazed){
population.population--
population.unassignExtraPopulation()
if(population.population==0){
civInfo.addNotification("$name has been razed to the ground!",location, Color.RED)
civInfo.cities.remove(this)
@ -145,6 +144,7 @@ class CityInfo {
val maxHealth =getMaxHealth()
health = min(health+maxHealth/10, maxHealth)
population.unassignExtraPopulation()
}
fun isCapital() = cityConstructions.isBuilt("Palace")