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

@ -2,70 +2,70 @@
{ {
name:"Accuracy I", name:"Accuracy I",
effect:"Bonus vs units in open terrain +15%", effect:"Bonus vs units in open terrain 15%",
unitTypes:["Siege","Ranged"] unitTypes:["Siege","Ranged"]
} }
{ {
name:"Accuracy II", name:"Accuracy II",
prerequisites:["Accuracy I"], prerequisites:["Accuracy I"],
effect:"Bonus vs units in open terrain +15%", effect:"Bonus vs units in open terrain 15%",
unitTypes:["Siege","Ranged"] unitTypes:["Siege","Ranged"]
} }
{ {
name:"Accuracy III", name:"Accuracy III",
prerequisites:["Accuracy II"], prerequisites:["Accuracy II"],
effect:"Bonus vs units in open terrain +15%", effect:"Bonus vs units in open terrain 15%",
unitTypes:["Siege","Ranged"] unitTypes:["Siege","Ranged"]
} }
{ {
name:"Barrage I", name:"Barrage I",
effect:"Bonus vs units in rough terrain +15%", effect:"Bonus vs units in rough terrain 15%",
unitTypes:["Siege","Ranged"] unitTypes:["Siege","Ranged"]
} }
{ {
name:"Barrage II", name:"Barrage II",
prerequisites:["Barrage I"], prerequisites:["Barrage I"],
effect:"Bonus vs units in rough terrain +15%", effect:"Bonus vs units in rough terrain 15%",
unitTypes:["Siege","Ranged"] unitTypes:["Siege","Ranged"]
} }
{ {
name:"Barrage III", name:"Barrage III",
prerequisites:["Barrage II"], prerequisites:["Barrage II"],
effect:"Bonus vs units in rough terrain +15%", effect:"Bonus vs units in rough terrain 15%",
unitTypes:["Siege","Ranged"] unitTypes:["Siege","Ranged"]
} }
{ {
name:"Shock I", name:"Shock I",
effect:"Bonus vs units in open terrain +15%", effect:"Bonus vs units in open terrain 15%",
unitTypes:["Melee","Mounted"] unitTypes:["Melee","Mounted"]
} }
{ {
name:"Shock II", name:"Shock II",
prerequisites:["Shock I"], prerequisites:["Shock I"],
effect:"Bonus vs units in open terrain +15%", effect:"Bonus vs units in open terrain 15%",
unitTypes:["Melee","Mounted"] unitTypes:["Melee","Mounted"]
} }
{ {
name:"Shock III", name:"Shock III",
prerequisites:["Shock II"], prerequisites:["Shock II"],
effect:"Bonus vs units in open terrain +15%", effect:"Bonus vs units in open terrain 15%",
unitTypes:["Melee","Mounted"] unitTypes:["Melee","Mounted"]
} }
{ {
name:"Drill I", name:"Drill I",
effect:"Bonus vs units in rough terrain +15%", effect:"Bonus vs units in rough terrain 15%",
unitTypes:["Melee","Mounted"] unitTypes:["Melee","Mounted"]
} }
{ {
name:"Drill II", name:"Drill II",
prerequisites:["Drill I"], prerequisites:["Drill I"],
effect:"Bonus vs units in rough terrain +15%", effect:"Bonus vs units in rough terrain 15%",
unitTypes:["Melee","Mounted"] unitTypes:["Melee","Mounted"]
} }
{ {
name:"Drill III", name:"Drill III",
prerequisites:["Drill II"], prerequisites:["Drill II"],
effect:"Bonus vs units in rough terrain +15%", effect:"Bonus vs units in rough terrain 15%",
unitTypes:["Melee","Mounted"] unitTypes:["Melee","Mounted"]
} }
{ {

View File

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

View File

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