diff --git a/core/src/com/unciv/models/gamebasics/Building.kt b/core/src/com/unciv/models/gamebasics/Building.kt index 5a771a658d..a697013da6 100644 --- a/core/src/com/unciv/models/gamebasics/Building.kt +++ b/core/src/com/unciv/models/gamebasics/Building.kt @@ -308,7 +308,7 @@ class Building : NamedStats(), IConstruction{ if(!civInfo.gameInfo.gameParameters.victoryTypes.contains(VictoryType.Scientific) && "Enables construction of Spaceship parts" in uniques) return "Can't construct spaceship parts if scientific victory is not enabled!" - + return "" } diff --git a/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt b/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt index 59dddd77a2..4788486b21 100644 --- a/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt @@ -32,7 +32,7 @@ class NewGameScreenOptionsTable(val newGameParameters: GameParameters, val rules addNoRuinsCheckbox() addIsOnlineMultiplayerCheckbox() - addModCheckboxes() + // addModCheckboxes() 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() } -} \ No newline at end of file +} + +// +//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()) +// +// } +//} \ No newline at end of file diff --git a/core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt b/core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt index 0fa68d1d0a..30a7fb5cb6 100644 --- a/core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt +++ b/core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt @@ -37,38 +37,51 @@ class BattleTable(val worldScreen: WorldScreen): Table() { fun update() { 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 attacker : ICombatant? if (unitTable.selectedUnit != null && !unitTable.selectedUnit!!.type.isCivilian()) { - attacker = MapUnitCombatant(unitTable.selectedUnit!!) + return MapUnitCombatant(unitTable.selectedUnit!!) } else if (unitTable.selectedCity != null) { - attacker = CityCombatant(unitTable.selectedCity!!) + return CityCombatant(unitTable.selectedCity!!) } else { - hide() - return // no attacker + return null // 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 defender: ICombatant? = Battle(worldScreen.gameInfo).getMapCombatantOfTile(selectedTile) if(defender==null || - defender.getCivInfo()==worldScreen.viewingCiv - || !(UncivGame.Current.viewEntireMapForDebug - || attacker.getCivInfo().exploredTiles.contains(selectedTile.position))) { - hide() - return + defender.getCivInfo()==attackerCiv) + return null // no enemy combatant in tile + + val canSeeDefender = if(UncivGame.Current.viewEntireMapForDebug) true + 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() - && !attacker.getCivInfo().viewableInvisibleUnitsTiles.contains(selectedTile)) { - hide() - return - } + if(!canSeeDefender) return null - simulateBattle(attacker, defender) + return defender } fun simulateBattle(attacker: ICombatant, defender: ICombatant){