mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-21 21:30:20 +07:00
Battle simulation will no longer be dislayed for fogged-out tiles with units
This commit is contained in:
@ -308,7 +308,7 @@ class Building : NamedStats(), IConstruction{
|
|||||||
if(!civInfo.gameInfo.gameParameters.victoryTypes.contains(VictoryType.Scientific)
|
if(!civInfo.gameInfo.gameParameters.victoryTypes.contains(VictoryType.Scientific)
|
||||||
&& "Enables construction of Spaceship parts" in uniques)
|
&& "Enables construction of Spaceship parts" in uniques)
|
||||||
return "Can't construct spaceship parts if scientific victory is not enabled!"
|
return "Can't construct spaceship parts if scientific victory is not enabled!"
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ class NewGameScreenOptionsTable(val newGameParameters: GameParameters, val rules
|
|||||||
addNoRuinsCheckbox()
|
addNoRuinsCheckbox()
|
||||||
addIsOnlineMultiplayerCheckbox()
|
addIsOnlineMultiplayerCheckbox()
|
||||||
|
|
||||||
addModCheckboxes()
|
// addModCheckboxes()
|
||||||
|
|
||||||
pack()
|
pack()
|
||||||
}
|
}
|
||||||
@ -260,25 +260,19 @@ class NewGameScreenOptionsTable(val newGameParameters: GameParameters, val rules
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (victoryType in VictoryType.values()) {
|
|
||||||
if (victoryType == VictoryType.Neutral) continue
|
|
||||||
val victoryCheckbox = CheckBox(victoryType.name.tr(), CameraStageBaseScreen.skin)
|
|
||||||
victoryCheckbox.name = victoryType.name
|
|
||||||
victoryCheckbox.isChecked = newGameParameters.victoryTypes.contains(victoryType)
|
|
||||||
victoryCheckbox.addListener(object : ChangeListener() {
|
|
||||||
override fun changed(event: ChangeEvent?, actor: Actor?) {
|
|
||||||
// If the checkbox is checked, adds the victoryTypes else remove it
|
|
||||||
if (victoryCheckbox.isChecked) {
|
|
||||||
newGameParameters.victoryTypes.add(victoryType)
|
|
||||||
} else {
|
|
||||||
newGameParameters.victoryTypes.remove(victoryType)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
modCheckboxTable.add(victoryCheckbox)
|
|
||||||
if (++i % 2 == 0) modCheckboxTable.row()
|
|
||||||
}
|
|
||||||
add(modCheckboxTable).colspan(2).row()
|
add(modCheckboxTable).colspan(2).row()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
//class Mod(val name:String){
|
||||||
|
// val ruleSet=Ruleset(false)
|
||||||
|
//
|
||||||
|
// fun tryLoadRuleset(){
|
||||||
|
// val folderPath="mods/$name"
|
||||||
|
// val jsonsFolderLocation = folderPath+"/jsons"
|
||||||
|
// if(Gdx.files.local(jsonsFolderLocation).exists())
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//}
|
@ -37,38 +37,51 @@ class BattleTable(val worldScreen: WorldScreen): Table() {
|
|||||||
|
|
||||||
fun update() {
|
fun update() {
|
||||||
isVisible = true
|
isVisible = true
|
||||||
|
|
||||||
|
val attacker = tryGetAttacker()
|
||||||
|
if(attacker==null){ hide(); return }
|
||||||
|
|
||||||
|
val defender = tryGetDefender()
|
||||||
|
if(defender==null){ hide(); return }
|
||||||
|
|
||||||
|
simulateBattle(attacker, defender)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun tryGetAttacker(): ICombatant? {
|
||||||
val unitTable = worldScreen.bottomUnitTable
|
val unitTable = worldScreen.bottomUnitTable
|
||||||
val attacker : ICombatant?
|
|
||||||
if (unitTable.selectedUnit != null
|
if (unitTable.selectedUnit != null
|
||||||
&& !unitTable.selectedUnit!!.type.isCivilian()) {
|
&& !unitTable.selectedUnit!!.type.isCivilian()) {
|
||||||
attacker = MapUnitCombatant(unitTable.selectedUnit!!)
|
return MapUnitCombatant(unitTable.selectedUnit!!)
|
||||||
} else if (unitTable.selectedCity != null) {
|
} else if (unitTable.selectedCity != null) {
|
||||||
attacker = CityCombatant(unitTable.selectedCity!!)
|
return CityCombatant(unitTable.selectedCity!!)
|
||||||
} else {
|
} else {
|
||||||
hide()
|
return null // no attacker
|
||||||
return // no attacker
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (worldScreen.tileMapHolder.selectedTile == null) return
|
private fun tryGetDefender(): ICombatant? {
|
||||||
|
val attackerCiv = worldScreen.viewingCiv
|
||||||
|
if (worldScreen.tileMapHolder.selectedTile == null) return null // no selected tile
|
||||||
val selectedTile = worldScreen.tileMapHolder.selectedTile!!
|
val selectedTile = worldScreen.tileMapHolder.selectedTile!!
|
||||||
|
|
||||||
val defender: ICombatant? = Battle(worldScreen.gameInfo).getMapCombatantOfTile(selectedTile)
|
val defender: ICombatant? = Battle(worldScreen.gameInfo).getMapCombatantOfTile(selectedTile)
|
||||||
|
|
||||||
if(defender==null ||
|
if(defender==null ||
|
||||||
defender.getCivInfo()==worldScreen.viewingCiv
|
defender.getCivInfo()==attackerCiv)
|
||||||
|| !(UncivGame.Current.viewEntireMapForDebug
|
return null // no enemy combatant in tile
|
||||||
|| attacker.getCivInfo().exploredTiles.contains(selectedTile.position))) {
|
|
||||||
hide()
|
val canSeeDefender = if(UncivGame.Current.viewEntireMapForDebug) true
|
||||||
return
|
else {
|
||||||
|
when {
|
||||||
|
defender.isInvisible() -> attackerCiv.viewableInvisibleUnitsTiles.contains(selectedTile)
|
||||||
|
defender.getUnitType()==UnitType.City -> attackerCiv.exploredTiles.contains(selectedTile.position)
|
||||||
|
else -> attackerCiv.viewableTiles.contains(selectedTile)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(defender.isInvisible()
|
if(!canSeeDefender) return null
|
||||||
&& !attacker.getCivInfo().viewableInvisibleUnitsTiles.contains(selectedTile)) {
|
|
||||||
hide()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
simulateBattle(attacker, defender)
|
return defender
|
||||||
}
|
}
|
||||||
|
|
||||||
fun simulateBattle(attacker: ICombatant, defender: ICombatant){
|
fun simulateBattle(attacker: ICombatant, defender: ICombatant){
|
||||||
|
Reference in New Issue
Block a user