This mapping has 6 multi-map groups: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Before

…lines 1–283 unchanged (283 lines)
284 when {
285 tileGroup.tile == nextTileToOwn ->
286 tileGroup.layerMisc.addHexOutline(colorFromRGB(200, 20, 220))
287 /** Support for [UniqueType.CreatesOneImprovement] */
288 tileGroup.tile == selectedQueueEntryTargetTile ->
289 tileGroup.layerMisc.addHexOutline(Color.BROWN)
290 pickTileData != null && city.tiles.contains(tileGroup.tile.position.toVector2()) ->
291 getPickImprovementColor(tileGroup.tile).run {
292 tileGroup.layerMisc.addHexOutline(first.cpy().apply { this.a = second }) }
293 }
294
295 if (fireworks != null && tileGroup.tile.position.toVector2() == city.location)
296 fireworks.setActorBounds(tileGroup)
297 }
298 }
299
300 private fun updateAnnexAndRazeCityButton() {
301 razeCityButtonHolder.clear()
…lines 302–406 unchanged (105 lines)
407 if (!canChangeState || city.isPuppet) return
408 val tile = tileGroup.tile
409
410 // Cycling as: Not-worked -> Worked -> Not-worked
411 if (tileGroup.tileState == CityTileState.WORKABLE) {
412 if (!tile.providesYield() && city.population.getFreePopulation() > 0) {
413 city.workedTiles.add(tile.position.toVector2())
414 game.settings.addCompletedTutorialTask("Reassign worked tiles")
415 } else {
416 city.workedTiles.remove(tile.position.toVector2())
417 city.lockedTiles.remove(tile.position.toVector2())
418 }
419 city.cityStats.update()
420 update()
421
422 } else if (tileGroup.tileState == CityTileState.PURCHASABLE) {
423 askToBuyTile(tile)
…lines 424–460 unchanged (37 lines)
461 // Double-click should lead to locked tiles - both for unworked AND worked tiles
462
463 if (!tile.isWorked()) // If not worked, try to work it first
464 tileWorkedIconOnClick(tileGroup, city)
465
466 if (tile.isWorked())
467 city.lockedTiles.add(tile.position.toVector2())
468
469 update()
470 }
471
472 private fun tileGroupOnClick(tileGroup: CityTileGroup, city: City) {
473 if (city.isPuppet) return
…lines 474–589 unchanged (116 lines)

After

…lines 1–283 unchanged (283 lines)
284 when {
285 tileGroup.tile == nextTileToOwn ->
286 tileGroup.layerMisc.addHexOutline(colorFromRGB(200, 20, 220))
287 /** Support for [UniqueType.CreatesOneImprovement] */
288 tileGroup.tile == selectedQueueEntryTargetTile ->
289 tileGroup.layerMisc.addHexOutline(Color.BROWN)
290 pickTileData != null && city.tiles.contains(tileGroup.tile.position) ->
291 getPickImprovementColor(tileGroup.tile).run {
292 tileGroup.layerMisc.addHexOutline(first.cpy().apply { this.a = second }) }
293 }
294
295 if (fireworks != null && tileGroup.tile.position == city.location)
296 fireworks.setActorBounds(tileGroup)
297 }
298 }
299
300 private fun updateAnnexAndRazeCityButton() {
301 razeCityButtonHolder.clear()
…lines 302–406 unchanged (105 lines)
407 if (!canChangeState || city.isPuppet) return
408 val tile = tileGroup.tile
409
410 // Cycling as: Not-worked -> Worked -> Not-worked
411 if (tileGroup.tileState == CityTileState.WORKABLE) {
412 if (!tile.providesYield() && city.population.getFreePopulation() > 0) {
413 city.workedTiles.add(tile.position)
414 game.settings.addCompletedTutorialTask("Reassign worked tiles")
415 } else {
416 city.workedTiles.remove(tile.position)
417 city.lockedTiles.remove(tile.position)
418 }
419 city.cityStats.update()
420 update()
421
422 } else if (tileGroup.tileState == CityTileState.PURCHASABLE) {
423 askToBuyTile(tile)
…lines 424–460 unchanged (37 lines)
461 // Double-click should lead to locked tiles - both for unworked AND worked tiles
462
463 if (!tile.isWorked()) // If not worked, try to work it first
464 tileWorkedIconOnClick(tileGroup, city)
465
466 if (tile.isWorked())
467 city.lockedTiles.add(tile.position)
468
469 update()
470 }
471
472 private fun tileGroupOnClick(tileGroup: CityTileGroup, city: City) {
473 if (city.isPuppet) return
…lines 474–589 unchanged (116 lines)

Before

source_file
package_header
package "package"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "cityscreen"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "graphics"
. "."
identifier "Color"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "scenes"
. "."
identifier "scene2d"
. "."
identifier "ui"
. "."
identifier "Image"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "scenes"
. "."
identifier "scene2d"
. "."
identifier "ui"
. "."
identifier "Table"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "utils"
. "."
identifier "Align"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "GUI"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "UncivGame"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "automation"
. "."
identifier "Automation"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "city"
. "."
identifier "City"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "civilization"
. "."
identifier "Civilization"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "map"
. "."
identifier "tile"
. "."
identifier "Tile"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "map"
. "."
identifier "toHexCoord"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "TutorialTrigger"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "UncivSound"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "Building"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "IConstruction"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "tile"
. "."
identifier "TileImprovement"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "unique"
. "."
identifier "LocalUniqueCache"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "unique"
. "."
identifier "UniqueType"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "stats"
. "."
identifier "Stat"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "translations"
. "."
identifier "tr"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "audio"
. "."
identifier "CityAmbiencePlayer"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "audio"
. "."
identifier "SoundPlayer"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "ParticleEffectMapFireworks"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "colorFromRGB"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "disable"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "packIfNeeded"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "toTextButton"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "KeyCharAndCode"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "KeyShortcutDispatcherVeto"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "KeyboardBinding"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "keyShortcuts"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "onActivation"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "onClick"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "onDoubleClick"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "CityTileGroup"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "CityTileState"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "TileGroupMap"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "TileSetStrings"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "images"
. "."
identifier "ImageGetter"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "popups"
. "."
identifier "ConfirmPopup"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "popups"
. "."
identifier "ToastPopup"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "popups"
. "."
identifier "closeAllPopups"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "basescreen"
. "."
identifier "BaseScreen"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "basescreen"
. "."
identifier "RecreateOnResize"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "worldscreen"
. "."
identifier "WorldScreen"
import
import "import"
qualified_identifier
identifier "kotlin"
. "."
identifier "math"
. "."
identifier "max"
class_declaration
class "class"
identifier "CityScreen"
primary_constructor (+44 nodes collapsed)
: ":"
delegation_specifiers
delegation_specifier
constructor_invocation
user_type
identifier "BaseScreen"
value_arguments
( "("
) ")"
, ","
delegation_specifier
user_type
identifier "RecreateOnResize"
class_body
{ "{"
companion_object (+26 nodes collapsed)
property_declaration (+22 nodes collapsed)
property_declaration (+28 nodes collapsed)
block_comment "/**\n * This is the regular civ city list if we are not s"...
property_declaration (+54 nodes collapsed)
block_comment "/** Toggles or adds/removes all state changing buttons */"
property_declaration
val "val"
variable_declaration
identifier "canChangeState"
= "="
binary_expression
call_expression
navigation_expression
identifier "GUI"
. "."
identifier "isAllowedChangeState"
value_arguments
( "("
) ")"
&& "&&"
unary_expression
! "!"
identifier "isSpying"
line_comment "// Clockwise from the top-left"
block_comment "/** Displays current production, production queue and availa"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "constructionsTable"
= "="
call_expression
identifier "CityConstructionsTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays raze city button - sits on TOP CENTER */"
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "razeCityButtonHolder"
= "="
call_expression
identifier "Table"
value_arguments
( "("
) ")"
block_comment "/** Displays city stats, population management, religion, bu"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "cityStatsTable"
= "="
call_expression
identifier "CityStatsTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays tile info, alternate with selectedConstructionT"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "tileTable"
= "="
call_expression
identifier "CityScreenTileTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays selected construction info, alternate with tile"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "selectedConstructionTable"
= "="
call_expression
identifier "ConstructionInfoTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays city name, allows switching between cities - si"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "cityPickerTable"
= "="
call_expression
identifier "CityScreenCityPickerTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Button for exiting the city - sits on BOTTOM CENTER */"
property_declaration (+61 nodes collapsed)
block_comment "/** Holds City tiles group*/"
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "tileGroups"
= "="
call_expression
identifier "ArrayList"
type_arguments
< "<"
type_projection
user_type
identifier "CityTileGroup"
> ">"
value_arguments
( "("
) ")"
block_comment "/** The ScrollPane for the background map view of the city s"...
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "mapScrollPane"
= "="
call_expression
identifier "CityMapHolder"
value_arguments
( "("
) ")"
block_comment "/** Support for [UniqueType.CreatesOneImprovement] - need us"...
class_declaration (+34 nodes collapsed)
line_comment "// The following fields control what the user selects"
property_declaration
var "var"
variable_declaration
identifier "selectedConstruction"
: ":"
nullable_type
user_type
identifier "IConstruction"
? "?"
= "="
identifier "initSelectedConstruction"
setter
modifiers
visibility_modifier
private "private"
set "set"
property_declaration
var "var"
variable_declaration
identifier "selectedTile"
: ":"
nullable_type
user_type
identifier "Tile"
? "?"
= "="
identifier "initSelectedTile"
setter
modifiers
visibility_modifier
private "private"
set "set"
block_comment "/** If set, we are waiting for the user to pick a tile for ["...
property_declaration
var "var"
variable_declaration
identifier "pickTileData"
: ":"
nullable_type
user_type
identifier "PickTileForImprovementData"
? "?"
= "="
identifier "null"
block_comment "/** A [Building] with [UniqueType.CreatesOneImprovement] has"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "selectedQueueEntryTargetTile"
: ":"
nullable_type
user_type
identifier "Tile"
? "?"
= "="
identifier "null"
property_declaration (+30 nodes collapsed)
block_comment "/** Cached city.expansion.chooseNewTileToOwn() */"
line_comment "// val should be OK as buying tiles is what changes this, an"...
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "nextTileToOwn"
= "="
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "expansion"
. "."
identifier "chooseNewTileToOwn"
value_arguments
( "("
) ")"
property_declaration (+23 nodes collapsed)
block_comment "/** Particle effects for WLTK day decoration */"
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "isWLTKday"
= "="
call_expression
navigation_expression
identifier "city"
. "."
identifier "isWeLoveTheKingDayActive"
value_arguments
( "("
) ")"
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "fireworks"
: ":"
nullable_type
user_type
identifier "ParticleEffectMapFireworks"
? "?"
property_declaration
modifiers
visibility_modifier
internal "internal"
var "var"
variable_declaration
identifier "pauseFireworks"
= "="
identifier "false"
anonymous_initializer (+290 nodes collapsed)
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "getCivilopediaRuleset"
function_value_parameters
( "("
) ")"
function_body
= "="
navigation_expression
navigation_expression
identifier "selectedCiv"
. "."
identifier "gameInfo"
. "."
identifier "ruleset"
function_declaration (+55 nodes collapsed)
function_declaration (+268 nodes collapsed)
function_declaration (+105 nodes collapsed)
function_declaration (+24 nodes collapsed)
function_declaration
modifiers
visibility_modifier
private "private"
fun "fun"
identifier "updateTileGroups"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "cityUniqueCache"
= "="
call_expression
identifier "LocalUniqueCache"
value_arguments
( "("
) ")"
function_declaration (+96 nodes collapsed)
function_declaration (+150 nodes collapsed)
for_statement
for "for"
( "("
variable_declaration
identifier "tileGroup"
in "in"
identifier "tileGroups"
) ")"
block
{ "{"
call_expression
navigation_expression
identifier "tileGroup"
. "."
identifier "update"
value_arguments
( "("
value_argument
identifier "selectedCiv"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "tileGroup"
. "."
identifier "layerMisc"
. "."
identifier "removeHexOutline"
value_arguments
( "("
) ")"
if_expression
if "if"
( "("
identifier "isSpying"
) ")"
identifier "continue"
line_comment "// the rest is only for own cities"
if_expression (+24 nodes collapsed)
when_expression
when "when"
{ "{"
when_entry (+35 nodes collapsed)
when_entry (+25 nodes collapsed)
when_entry
binary_expression
binary_expression
identifier "pickTileData"
!= "!="
identifier "null"
&& "&&"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "tiles"
. "."
identifier "contains"
value_arguments
( "("
value_argument
call_expression
navigation_expression any 3:2
navigation_expression any 3:2
navigation_expression any 3:2
identifier "tileGroup"
. "."
identifier "tile"
. "."
identifier "position"
. "."
identifier "toVector2"
value_arguments
( "("
) ")"
) ")"
-> "->"
call_expression (+54 nodes collapsed)
} "}"
if_expression
if "if"
( "("
binary_expression
binary_expression
identifier "fireworks"
!= "!="
identifier "null"
&& "&&"
binary_expression
call_expression
navigation_expression any 3:2
navigation_expression any 3:2
navigation_expression any 3:2
identifier "tileGroup"
. "."
identifier "tile"
. "."
identifier "position"
. "."
identifier "toVector2"
value_arguments
( "("
) ")"
== "=="
navigation_expression
identifier "city"
. "."
identifier "location"
) ")"
call_expression
navigation_expression
identifier "fireworks"
. "."
identifier "setActorBounds"
value_arguments
( "("
value_argument
identifier "tileGroup"
) ")"
} "}"
} "}"
function_declaration (+781 nodes collapsed)
function_declaration (+438 nodes collapsed)
line_comment "// We contain a map..."
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "getShortcutDispatcherVetoer"
function_value_parameters
( "("
) ")"
function_body
= "="
call_expression
navigation_expression
identifier "KeyShortcutDispatcherVeto"
. "."
identifier "createTileGroupMapDispatcherVetoer"
value_arguments
( "("
) ")"
function_declaration
modifiers
visibility_modifier
private "private"
fun "fun"
identifier "tileWorkedIconOnClick"
function_value_parameters
( "("
parameter
identifier "tileGroup"
: ":"
user_type
identifier "CityTileGroup"
, ","
parameter
identifier "city"
: ":"
user_type
identifier "City"
) ")"
function_body
block
{ "{"
if_expression
if "if"
( "("
binary_expression
unary_expression
! "!"
identifier "canChangeState"
|| "||"
navigation_expression
identifier "city"
. "."
identifier "isPuppet"
) ")"
return_expression
return "return"
property_declaration
val "val"
variable_declaration
identifier "tile"
= "="
navigation_expression
identifier "tileGroup"
. "."
identifier "tile"
line_comment "// Cycling as: Not-worked -> Worked -> Not-worked"
if_expression
if "if"
( "("
binary_expression
navigation_expression
identifier "tileGroup"
. "."
identifier "tileState"
== "=="
navigation_expression
identifier "CityTileState"
. "."
identifier "WORKABLE"
) ")"
block
{ "{"
if_expression
if "if"
( "("
binary_expression (+26 nodes collapsed)
) ")"
block
{ "{"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "workedTiles"
. "."
identifier "add"
value_arguments
( "("
value_argument
call_expression
navigation_expression any 2:1
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
. "."
identifier "toVector2"
value_arguments
( "("
) ")"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "game"
. "."
identifier "settings"
. "."
identifier "addCompletedTutorialTask"
value_arguments
( "("
value_argument
string_literal
" "\""
string_content "Reassign worked tiles"
" "\""
) ")"
} "}"
else "else"
block
{ "{"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "workedTiles"
. "."
identifier "remove"
value_arguments
( "("
value_argument
call_expression
navigation_expression any 2:1
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
. "."
identifier "toVector2"
value_arguments
( "("
) ")"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "lockedTiles"
. "."
identifier "remove"
value_arguments
( "("
value_argument
call_expression
navigation_expression any 2:1
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
. "."
identifier "toVector2"
value_arguments
( "("
) ")"
) ")"
} "}"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "cityStats"
. "."
identifier "update"
value_arguments
( "("
) ")"
call_expression
identifier "update"
value_arguments
( "("
) ")"
} "}"
else "else"
if_expression (+24 nodes collapsed)
} "}"
block_comment "/** Ask whether user wants to buy [selectedTile] for gold.\n "...
function_declaration (+260 nodes collapsed)
function_declaration
modifiers
visibility_modifier
private "private"
fun "fun"
identifier "tileWorkedIconDoubleClick"
function_value_parameters
( "("
parameter
identifier "tileGroup"
: ":"
user_type
identifier "CityTileGroup"
, ","
parameter
identifier "city"
: ":"
user_type
identifier "City"
) ")"
function_body
block
{ "{"
if_expression (+27 nodes collapsed)
property_declaration
val "val"
variable_declaration
identifier "tile"
= "="
navigation_expression
identifier "tileGroup"
. "."
identifier "tile"
line_comment "// Double-click should lead to locked tiles - both for unwor"...
if_expression (+25 nodes collapsed)
if_expression
if "if"
( "("
call_expression
navigation_expression
identifier "tile"
. "."
identifier "isWorked"
value_arguments
( "("
) ")"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "lockedTiles"
. "."
identifier "add"
value_arguments
( "("
value_argument
call_expression
navigation_expression any 2:1
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
. "."
identifier "toVector2"
value_arguments
( "("
) ")"
) ")"
call_expression
identifier "update"
value_arguments
( "("
) ")"
} "}"
function_declaration (+224 nodes collapsed)
block_comment "/** Convenience shortcut to [CivConstructions.hasFreeBuildin"...
function_declaration (+35 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+34 nodes collapsed)
function_declaration (+114 nodes collapsed)
function_declaration (+36 nodes collapsed)
function_declaration
fun "fun"
identifier "clearSelection"
function_value_parameters
( "("
) ")"
function_body
= "="
call_expression
identifier "selectTile"
value_arguments
( "("
value_argument
identifier "null"
) ")"
function_declaration (+105 nodes collapsed)
function_declaration (+29 nodes collapsed)
function_declaration (+74 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+129 nodes collapsed)
line_comment "// Don't use passOnCityAmbiencePlayer here - continuing play"...
line_comment "// but the rapid firing of several resize events will get th"...
function_declaration (+27 nodes collapsed)
function_declaration (+38 nodes collapsed)
function_declaration (+49 nodes collapsed)
} "}"

After

source_file
package_header
package "package"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "cityscreen"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "graphics"
. "."
identifier "Color"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "scenes"
. "."
identifier "scene2d"
. "."
identifier "ui"
. "."
identifier "Image"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "scenes"
. "."
identifier "scene2d"
. "."
identifier "ui"
. "."
identifier "Table"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "badlogic"
. "."
identifier "gdx"
. "."
identifier "utils"
. "."
identifier "Align"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "GUI"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "UncivGame"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "automation"
. "."
identifier "Automation"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "city"
. "."
identifier "City"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "civilization"
. "."
identifier "Civilization"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "map"
. "."
identifier "tile"
. "."
identifier "Tile"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "logic"
. "."
identifier "map"
. "."
identifier "toHexCoord"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "TutorialTrigger"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "UncivSound"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "Building"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "IConstruction"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "tile"
. "."
identifier "TileImprovement"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "unique"
. "."
identifier "LocalUniqueCache"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "ruleset"
. "."
identifier "unique"
. "."
identifier "UniqueType"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "stats"
. "."
identifier "Stat"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "models"
. "."
identifier "translations"
. "."
identifier "tr"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "audio"
. "."
identifier "CityAmbiencePlayer"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "audio"
. "."
identifier "SoundPlayer"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "ParticleEffectMapFireworks"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "colorFromRGB"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "disable"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "packIfNeeded"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "extensions"
. "."
identifier "toTextButton"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "KeyCharAndCode"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "KeyShortcutDispatcherVeto"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "KeyboardBinding"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "keyShortcuts"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "onActivation"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "onClick"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "input"
. "."
identifier "onDoubleClick"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "CityTileGroup"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "CityTileState"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "TileGroupMap"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "components"
. "."
identifier "tilegroups"
. "."
identifier "TileSetStrings"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "images"
. "."
identifier "ImageGetter"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "popups"
. "."
identifier "ConfirmPopup"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "popups"
. "."
identifier "ToastPopup"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "popups"
. "."
identifier "closeAllPopups"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "basescreen"
. "."
identifier "BaseScreen"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "basescreen"
. "."
identifier "RecreateOnResize"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "unciv"
. "."
identifier "ui"
. "."
identifier "screens"
. "."
identifier "worldscreen"
. "."
identifier "WorldScreen"
import
import "import"
qualified_identifier
identifier "kotlin"
. "."
identifier "math"
. "."
identifier "max"
class_declaration
class "class"
identifier "CityScreen"
primary_constructor (+44 nodes collapsed)
: ":"
delegation_specifiers
delegation_specifier
constructor_invocation
user_type
identifier "BaseScreen"
value_arguments
( "("
) ")"
, ","
delegation_specifier
user_type
identifier "RecreateOnResize"
class_body
{ "{"
companion_object (+26 nodes collapsed)
property_declaration (+22 nodes collapsed)
property_declaration (+28 nodes collapsed)
block_comment "/**\n * This is the regular civ city list if we are not s"...
property_declaration (+54 nodes collapsed)
block_comment "/** Toggles or adds/removes all state changing buttons */"
property_declaration
val "val"
variable_declaration
identifier "canChangeState"
= "="
binary_expression
call_expression
navigation_expression
identifier "GUI"
. "."
identifier "isAllowedChangeState"
value_arguments
( "("
) ")"
&& "&&"
unary_expression
! "!"
identifier "isSpying"
line_comment "// Clockwise from the top-left"
block_comment "/** Displays current production, production queue and availa"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "constructionsTable"
= "="
call_expression
identifier "CityConstructionsTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays raze city button - sits on TOP CENTER */"
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "razeCityButtonHolder"
= "="
call_expression
identifier "Table"
value_arguments
( "("
) ")"
block_comment "/** Displays city stats, population management, religion, bu"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "cityStatsTable"
= "="
call_expression
identifier "CityStatsTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays tile info, alternate with selectedConstructionT"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "tileTable"
= "="
call_expression
identifier "CityScreenTileTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays selected construction info, alternate with tile"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "selectedConstructionTable"
= "="
call_expression
identifier "ConstructionInfoTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Displays city name, allows switching between cities - si"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "cityPickerTable"
= "="
call_expression
identifier "CityScreenCityPickerTable"
value_arguments
( "("
value_argument
this_expression
this "this"
) ")"
block_comment "/** Button for exiting the city - sits on BOTTOM CENTER */"
property_declaration (+61 nodes collapsed)
block_comment "/** Holds City tiles group*/"
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "tileGroups"
= "="
call_expression
identifier "ArrayList"
type_arguments
< "<"
type_projection
user_type
identifier "CityTileGroup"
> ">"
value_arguments
( "("
) ")"
block_comment "/** The ScrollPane for the background map view of the city s"...
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "mapScrollPane"
= "="
call_expression
identifier "CityMapHolder"
value_arguments
( "("
) ")"
block_comment "/** Support for [UniqueType.CreatesOneImprovement] - need us"...
class_declaration (+34 nodes collapsed)
line_comment "// The following fields control what the user selects"
property_declaration
var "var"
variable_declaration
identifier "selectedConstruction"
: ":"
nullable_type
user_type
identifier "IConstruction"
? "?"
= "="
identifier "initSelectedConstruction"
setter
modifiers
visibility_modifier
private "private"
set "set"
property_declaration
var "var"
variable_declaration
identifier "selectedTile"
: ":"
nullable_type
user_type
identifier "Tile"
? "?"
= "="
identifier "initSelectedTile"
setter
modifiers
visibility_modifier
private "private"
set "set"
block_comment "/** If set, we are waiting for the user to pick a tile for ["...
property_declaration
var "var"
variable_declaration
identifier "pickTileData"
: ":"
nullable_type
user_type
identifier "PickTileForImprovementData"
? "?"
= "="
identifier "null"
block_comment "/** A [Building] with [UniqueType.CreatesOneImprovement] has"...
property_declaration
modifiers
visibility_modifier
private "private"
var "var"
variable_declaration
identifier "selectedQueueEntryTargetTile"
: ":"
nullable_type
user_type
identifier "Tile"
? "?"
= "="
identifier "null"
property_declaration (+30 nodes collapsed)
block_comment "/** Cached city.expansion.chooseNewTileToOwn() */"
line_comment "// val should be OK as buying tiles is what changes this, an"...
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "nextTileToOwn"
= "="
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "expansion"
. "."
identifier "chooseNewTileToOwn"
value_arguments
( "("
) ")"
property_declaration (+23 nodes collapsed)
block_comment "/** Particle effects for WLTK day decoration */"
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "isWLTKday"
= "="
call_expression
navigation_expression
identifier "city"
. "."
identifier "isWeLoveTheKingDayActive"
value_arguments
( "("
) ")"
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "fireworks"
: ":"
nullable_type
user_type
identifier "ParticleEffectMapFireworks"
? "?"
property_declaration
modifiers
visibility_modifier
internal "internal"
var "var"
variable_declaration
identifier "pauseFireworks"
= "="
identifier "false"
anonymous_initializer (+290 nodes collapsed)
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "getCivilopediaRuleset"
function_value_parameters
( "("
) ")"
function_body
= "="
navigation_expression
navigation_expression
identifier "selectedCiv"
. "."
identifier "gameInfo"
. "."
identifier "ruleset"
function_declaration (+55 nodes collapsed)
function_declaration (+268 nodes collapsed)
function_declaration (+105 nodes collapsed)
function_declaration (+24 nodes collapsed)
function_declaration
modifiers
visibility_modifier
private "private"
fun "fun"
identifier "updateTileGroups"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "cityUniqueCache"
= "="
call_expression
identifier "LocalUniqueCache"
value_arguments
( "("
) ")"
function_declaration (+96 nodes collapsed)
function_declaration (+150 nodes collapsed)
for_statement
for "for"
( "("
variable_declaration
identifier "tileGroup"
in "in"
identifier "tileGroups"
) ")"
block
{ "{"
call_expression
navigation_expression
identifier "tileGroup"
. "."
identifier "update"
value_arguments
( "("
value_argument
identifier "selectedCiv"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "tileGroup"
. "."
identifier "layerMisc"
. "."
identifier "removeHexOutline"
value_arguments
( "("
) ")"
if_expression
if "if"
( "("
identifier "isSpying"
) ")"
identifier "continue"
line_comment "// the rest is only for own cities"
if_expression (+24 nodes collapsed)
when_expression
when "when"
{ "{"
when_entry (+35 nodes collapsed)
when_entry (+25 nodes collapsed)
when_entry
binary_expression
binary_expression
identifier "pickTileData"
!= "!="
identifier "null"
&& "&&"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "tiles"
. "."
identifier "contains"
value_arguments
( "("
value_argument
navigation_expression any 3:2
navigation_expression any 3:2
identifier "tileGroup"
. "."
identifier "tile"
. "."
identifier "position"
) ")"
-> "->"
call_expression (+54 nodes collapsed)
} "}"
if_expression
if "if"
( "("
binary_expression
binary_expression
identifier "fireworks"
!= "!="
identifier "null"
&& "&&"
binary_expression
navigation_expression any 3:2
navigation_expression any 3:2
identifier "tileGroup"
. "."
identifier "tile"
. "."
identifier "position"
== "=="
navigation_expression
identifier "city"
. "."
identifier "location"
) ")"
call_expression
navigation_expression
identifier "fireworks"
. "."
identifier "setActorBounds"
value_arguments
( "("
value_argument
identifier "tileGroup"
) ")"
} "}"
} "}"
function_declaration (+781 nodes collapsed)
function_declaration (+438 nodes collapsed)
line_comment "// We contain a map..."
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "getShortcutDispatcherVetoer"
function_value_parameters
( "("
) ")"
function_body
= "="
call_expression
navigation_expression
identifier "KeyShortcutDispatcherVeto"
. "."
identifier "createTileGroupMapDispatcherVetoer"
value_arguments
( "("
) ")"
function_declaration
modifiers
visibility_modifier
private "private"
fun "fun"
identifier "tileWorkedIconOnClick"
function_value_parameters
( "("
parameter
identifier "tileGroup"
: ":"
user_type
identifier "CityTileGroup"
, ","
parameter
identifier "city"
: ":"
user_type
identifier "City"
) ")"
function_body
block
{ "{"
if_expression
if "if"
( "("
binary_expression
unary_expression
! "!"
identifier "canChangeState"
|| "||"
navigation_expression
identifier "city"
. "."
identifier "isPuppet"
) ")"
return_expression
return "return"
property_declaration
val "val"
variable_declaration
identifier "tile"
= "="
navigation_expression
identifier "tileGroup"
. "."
identifier "tile"
line_comment "// Cycling as: Not-worked -> Worked -> Not-worked"
if_expression
if "if"
( "("
binary_expression
navigation_expression
identifier "tileGroup"
. "."
identifier "tileState"
== "=="
navigation_expression
identifier "CityTileState"
. "."
identifier "WORKABLE"
) ")"
block
{ "{"
if_expression
if "if"
( "("
binary_expression (+26 nodes collapsed)
) ")"
block
{ "{"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "workedTiles"
. "."
identifier "add"
value_arguments
( "("
value_argument
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "game"
. "."
identifier "settings"
. "."
identifier "addCompletedTutorialTask"
value_arguments
( "("
value_argument
string_literal
" "\""
string_content "Reassign worked tiles"
" "\""
) ")"
} "}"
else "else"
block
{ "{"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "workedTiles"
. "."
identifier "remove"
value_arguments
( "("
value_argument
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "lockedTiles"
. "."
identifier "remove"
value_arguments
( "("
value_argument
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
) ")"
} "}"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "cityStats"
. "."
identifier "update"
value_arguments
( "("
) ")"
call_expression
identifier "update"
value_arguments
( "("
) ")"
} "}"
else "else"
if_expression (+24 nodes collapsed)
} "}"
block_comment "/** Ask whether user wants to buy [selectedTile] for gold.\n "...
function_declaration (+260 nodes collapsed)
function_declaration
modifiers
visibility_modifier
private "private"
fun "fun"
identifier "tileWorkedIconDoubleClick"
function_value_parameters
( "("
parameter
identifier "tileGroup"
: ":"
user_type
identifier "CityTileGroup"
, ","
parameter
identifier "city"
: ":"
user_type
identifier "City"
) ")"
function_body
block
{ "{"
if_expression (+27 nodes collapsed)
property_declaration
val "val"
variable_declaration
identifier "tile"
= "="
navigation_expression
identifier "tileGroup"
. "."
identifier "tile"
line_comment "// Double-click should lead to locked tiles - both for unwor"...
if_expression (+25 nodes collapsed)
if_expression
if "if"
( "("
call_expression
navigation_expression
identifier "tile"
. "."
identifier "isWorked"
value_arguments
( "("
) ")"
) ")"
call_expression
navigation_expression
navigation_expression
identifier "city"
. "."
identifier "lockedTiles"
. "."
identifier "add"
value_arguments
( "("
value_argument
navigation_expression any 2:1
identifier "tile"
. "."
identifier "position"
) ")"
call_expression
identifier "update"
value_arguments
( "("
) ")"
} "}"
function_declaration (+224 nodes collapsed)
block_comment "/** Convenience shortcut to [CivConstructions.hasFreeBuildin"...
function_declaration (+35 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+34 nodes collapsed)
function_declaration (+114 nodes collapsed)
function_declaration (+36 nodes collapsed)
function_declaration
fun "fun"
identifier "clearSelection"
function_value_parameters
( "("
) ")"
function_body
= "="
call_expression
identifier "selectTile"
value_arguments
( "("
value_argument
identifier "null"
) ")"
function_declaration (+105 nodes collapsed)
function_declaration (+29 nodes collapsed)
function_declaration (+74 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+129 nodes collapsed)
line_comment "// Don't use passOnCityAmbiencePlayer here - continuing play"...
line_comment "// but the rapid firing of several resize events will get th"...
function_declaration (+27 nodes collapsed)
function_declaration (+38 nodes collapsed)
function_declaration (+49 nodes collapsed)
} "}"