mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-04 23:40:01 +07:00
Solved rare pillage-related crash
This commit is contained in:
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -14,10 +14,8 @@ import com.unciv.logic.civilization.NotificationCategory
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
||||
import com.unciv.logic.map.mapunit.MapUnit
|
||||
import com.unciv.logic.map.tile.Tile
|
||||
import com.unciv.models.UnitActionType
|
||||
import com.unciv.models.ruleset.unique.StateForConditionals
|
||||
import com.unciv.models.ruleset.unique.UniqueType
|
||||
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActions
|
||||
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActionsPillage
|
||||
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActionsUpgrade
|
||||
|
||||
@ -379,7 +377,9 @@ object UnitAutomation {
|
||||
if (unit.getTile() != tileToPillage)
|
||||
unit.movement.moveToTile(tileToPillage)
|
||||
|
||||
UnitActions.invokeUnitAction(unit, UnitActionType.Pillage)
|
||||
// We CANNOT use invokeUnitAction, since the default unit action contains a popup, which - when automated -
|
||||
// runs a UI action on a side thread leading to crash!
|
||||
UnitActionsPillage.getPillageAction(unit, unit.currentTile)?.action?.invoke()
|
||||
return unit.currentMovement == 0f
|
||||
}
|
||||
|
||||
|
@ -18,8 +18,9 @@ import com.unciv.logic.map.mapunit.MapUnit
|
||||
import com.unciv.logic.map.tile.RoadStatus
|
||||
import com.unciv.logic.map.tile.Tile
|
||||
import com.unciv.logic.map.tile.TileStatFunctions
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
import com.unciv.logic.map.tile.toStats
|
||||
import com.unciv.models.UnitActionType
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
import com.unciv.models.ruleset.tile.Terrain
|
||||
import com.unciv.models.ruleset.tile.TileImprovement
|
||||
import com.unciv.models.ruleset.unique.LocalUniqueCache
|
||||
@ -28,7 +29,6 @@ import com.unciv.ui.screens.worldscreen.unit.actions.UnitActions
|
||||
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActionsFromUniques
|
||||
import com.unciv.utils.Log
|
||||
import com.unciv.utils.debug
|
||||
import kotlin.IllegalStateException
|
||||
|
||||
private object WorkerAutomationConst {
|
||||
/** BFS max size is determined by the aerial distance of two cities to connect, padded with this */
|
||||
@ -506,7 +506,7 @@ class WorkerAutomation(
|
||||
|
||||
var priority = 0f
|
||||
if (tile.getOwner() == civInfo) {
|
||||
priority += Automation.rankStatsValue(tile.stats.getTerrainStats(), civInfo)
|
||||
priority += Automation.rankStatsValue(tile.stats.getTerrainStatsBreakdown().toStats(), civInfo)
|
||||
if (tile.providesYield()) priority += 2
|
||||
if (tile.isPillaged()) priority += 1
|
||||
// TODO: Removing fallout is hardcoded for now, but what if we want to have other bad features on tiles?
|
||||
|
Reference in New Issue
Block a user