Added Drama and Poetry tech and replaced Temples with Amphitheaters (#4254)

* Added Drama and Poetry tech

* Moved not-in-ruleset check to building replacement function

* Updated a version number
This commit is contained in:
Arthur van der Staaij
2021-06-26 22:36:39 +02:00
committed by GitHub
parent b628c4238d
commit 784092c56c
9 changed files with 744 additions and 675 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -11,780 +11,787 @@ Alhambra
orig: 100, 100
offset: 0, 0
index: -1
Angkor Wat
Amphitheater
rotate: false
xy: 4, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Apollo Program
Angkor Wat
rotate: false
xy: 112, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Aqueduct
Apollo Program
rotate: false
xy: 4, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Armory
Aqueduct
rotate: false
xy: 112, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Arsenal
Armory
rotate: false
xy: 220, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Bank
Arsenal
rotate: false
xy: 4, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Barracks
Bank
rotate: false
xy: 112, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Bazaar
Barracks
rotate: false
xy: 220, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Big Ben
Bazaar
rotate: false
xy: 328, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Bomb Shelter
Big Ben
rotate: false
xy: 4, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Brandenburg Gate
Bomb Shelter
rotate: false
xy: 112, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Broadcast Tower
Brandenburg Gate
rotate: false
xy: 220, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Burial Tomb
Broadcast Tower
rotate: false
xy: 328, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
CN Tower
Burial Tomb
rotate: false
xy: 436, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Castle
CN Tower
rotate: false
xy: 4, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Chichen Itza
Castle
rotate: false
xy: 112, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Circus
Chichen Itza
rotate: false
xy: 220, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Circus Maximus
Circus
rotate: false
xy: 328, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Colosseum
Circus Maximus
rotate: false
xy: 436, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Colossus
Colosseum
rotate: false
xy: 544, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Courthouse
Colossus
rotate: false
xy: 4, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Cristo Redentor
Courthouse
rotate: false
xy: 112, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Eiffel Tower
Cristo Redentor
rotate: false
xy: 220, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Factory
Eiffel Tower
rotate: false
xy: 328, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Floating Gardens
Factory
rotate: false
xy: 436, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Forbidden Palace
Floating Gardens
rotate: false
xy: 544, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Forge
Forbidden Palace
rotate: false
xy: 652, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Garden
Forge
rotate: false
xy: 4, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Granary
Garden
rotate: false
xy: 112, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Great Wall
Granary
rotate: false
xy: 220, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hagia Sophia
Great Wall
rotate: false
xy: 328, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hanging Gardens
Hagia Sophia
rotate: false
xy: 436, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hanse
Hanging Gardens
rotate: false
xy: 544, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Harbor
Hanse
rotate: false
xy: 652, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hermitage
Harbor
rotate: false
xy: 760, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Heroic Epic
Hermitage
rotate: false
xy: 4, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Himeji Castle
Heroic Epic
rotate: false
xy: 112, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hospital
Himeji Castle
rotate: false
xy: 220, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hubble Space Telescope
Hospital
rotate: false
xy: 328, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Hydro Plant
Hubble Space Telescope
rotate: false
xy: 436, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Ironworks
Hydro Plant
rotate: false
xy: 544, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Kremlin
Ironworks
rotate: false
xy: 652, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Krepost
Kremlin
rotate: false
xy: 760, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Leaning Tower of Pisa
Krepost
rotate: false
xy: 868, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Library
Leaning Tower of Pisa
rotate: false
xy: 112, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Lighthouse
Library
rotate: false
xy: 220, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Longhouse
Lighthouse
rotate: false
xy: 328, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Machu Picchu
Longhouse
rotate: false
xy: 436, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Manhattan Project
Machu Picchu
rotate: false
xy: 544, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Market
Manhattan Project
rotate: false
xy: 652, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Mausoleum of Halicarnassus
Market
rotate: false
xy: 760, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Medical Lab
Mausoleum of Halicarnassus
rotate: false
xy: 868, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Military Academy
Medical Lab
rotate: false
xy: 976, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Military Base
Military Academy
rotate: false
xy: 220, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Mint
Military Base
rotate: false
xy: 328, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Monastery
Mint
rotate: false
xy: 436, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Monument
Monastery
rotate: false
xy: 544, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Mud Pyramid Mosque
Monument
rotate: false
xy: 652, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Mughal Fort
Mud Pyramid Mosque
rotate: false
xy: 760, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Museum
Mughal Fort
rotate: false
xy: 868, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
National College
Museum
rotate: false
xy: 976, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
National Epic
National College
rotate: false
xy: 1084, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
National Treasury
National Epic
rotate: false
xy: 328, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Neuschwanstein
National Treasury
rotate: false
xy: 436, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Notre Dame
Neuschwanstein
rotate: false
xy: 544, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Nuclear Plant
Notre Dame
rotate: false
xy: 652, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Observatory
Nuclear Plant
rotate: false
xy: 760, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Opera House
Observatory
rotate: false
xy: 868, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Oxford University
Opera House
rotate: false
xy: 976, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Palace
Oxford University
rotate: false
xy: 1084, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Paper Maker
Palace
rotate: false
xy: 1192, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Pentagon
Paper Maker
rotate: false
xy: 436, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Petra
Pentagon
rotate: false
xy: 544, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Porcelain Tower
Petra
rotate: false
xy: 652, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Public School
Porcelain Tower
rotate: false
xy: 760, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Research Lab
Public School
rotate: false
xy: 868, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
SS Booster
Research Lab
rotate: false
xy: 976, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
SS Cockpit
SS Booster
rotate: false
xy: 1084, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
SS Engine
SS Cockpit
rotate: false
xy: 1192, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
SS Stasis Chamber
SS Engine
rotate: false
xy: 1300, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Satrap's Court
SS Stasis Chamber
rotate: false
xy: 544, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Seaport
Satrap's Court
rotate: false
xy: 652, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Sistine Chapel
Seaport
rotate: false
xy: 760, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Solar Plant
Sistine Chapel
rotate: false
xy: 868, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Spaceship Factory
Solar Plant
rotate: false
xy: 976, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Stable
Spaceship Factory
rotate: false
xy: 1084, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Stadium
Stable
rotate: false
xy: 1192, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Statue of Liberty
Stadium
rotate: false
xy: 1300, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Statue of Zeus
Statue of Liberty
rotate: false
xy: 1408, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Stock Exchange
Statue of Zeus
rotate: false
xy: 652, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Stone Works
Stock Exchange
rotate: false
xy: 760, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Stonehenge
Stone Works
rotate: false
xy: 868, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Sydney Opera House
Stonehenge
rotate: false
xy: 976, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Taj Mahal
Sydney Opera House
rotate: false
xy: 1084, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Temple
Taj Mahal
rotate: false
xy: 1192, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Temple of Artemis
Temple
rotate: false
xy: 1300, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Terracotta Army
Temple of Artemis
rotate: false
xy: 1408, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
The Great Library
Terracotta Army
rotate: false
xy: 1516, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
The Great Lighthouse
The Great Library
rotate: false
xy: 760, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
The Louvre
The Great Lighthouse
rotate: false
xy: 868, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
The Oracle
The Louvre
rotate: false
xy: 976, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
The Pyramids
The Oracle
rotate: false
xy: 1084, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Theatre
The Pyramids
rotate: false
xy: 1192, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
University
Theatre
rotate: false
xy: 1300, 544
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Utopia Project
University
rotate: false
xy: 1408, 652
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Walls
Utopia Project
rotate: false
xy: 1516, 760
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Walls of Babylon
Walls
rotate: false
xy: 1624, 868
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Wat
Walls of Babylon
rotate: false
xy: 868, 4
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Water Mill
Wat
rotate: false
xy: 976, 112
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Windmill
Water Mill
rotate: false
xy: 1084, 220
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Workshop
Windmill
rotate: false
xy: 1192, 328
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
Workshop
rotate: false
xy: 1300, 436
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

After

Width:  |  Height:  |  Size: 255 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 KiB

After

Width:  |  Height:  |  Size: 1010 KiB

View File

@ -257,38 +257,18 @@
"quote": "'Regard your soldiers as your children, and they will follow you into the deepest valleys; look on them as your own beloved sons, and they will stand by you even unto death.' - Sun Tzu"
},
// Column 4
/*
// Temple and its replacements are religious buildings in G&K
{
"name": "Temple",
"culture": 3,
"specialistSlots": {"Artist": 1},
"requiredBuilding": "Monument",
"faith": 2,
"requiredBuilding": "Shrine",
"maintenance": 2,
"hurryCostModifier": 25,
"requiredTech": "Philosophy"
},
{
"name": "Burial Tomb",
"replaces": "Temple",
"uniqueTo": "Egypt",
"uniques": ["Doubles Gold given to enemy if city is captured"],
"culture": 2,
"happiness": 2,
"specialistSlots": {"Artist": 1},
"requiredBuilding": "Monument",
"hurryCostModifier": 25,
"requiredTech": "Philosophy"
},
{
"name": "Mud Pyramid Mosque",
"replaces": "Temple",
"uniqueTo": "Songhai",
"maintenance": 0,
"specialistSlots": {"Artist": 1},
"hurryCostModifier": 25,
"culture": 4,
"requiredBuilding": "Monument",
"requiredTech": "Philosophy"
"requiredTech": "Philosophy",
"uniques": ""
},
*/
{
"name": "National College",
"cost": 125,
@ -299,14 +279,6 @@
"uniques": ["Requires a [Library] in all cities", "Cost increases by [30] per owned city"],
"requiredTech": "Philosophy"
},
{
"name": "National Epic",
"cost": 125,
"culture": 1,
"isNationalWonder": true,
"uniques": ["Requires a [Monument] in all cities", "+[25]% great person generation in this city", "Cost increases by [30] per owned city"],
"requiredTech": "Philosophy"
},
{
"name": "The Oracle",
"culture": 3,
@ -316,6 +288,62 @@
"requiredTech": "Philosophy",
"quote": "'The ancient Oracle said that I was the wisest of all the Greeks. It is because I alone, of all the Greeks, know that I know nothing' - Socrates"
},
{
"name": "Amphitheater",
"culture": 3,
"specialistSlots": {"Artist": 1},
"requiredBuilding": "Monument",
"maintenance": 2,
"hurryCostModifier": 25,
"requiredTech": "Drama and Poetry"
},
{
"name": "Burial Tomb",
"replaces": "Amphitheater",
"uniqueTo": "Egypt",
"uniques": ["Doubles Gold given to enemy if city is captured"],
"culture": 2,
"happiness": 2,
"specialistSlots": {"Artist": 1},
"requiredBuilding": "Monument",
"hurryCostModifier": 25,
"requiredTech": "Drama and Poetry"
// In Vanilla, this replaces Temple and requires Philosophy and a Monument.
// In G&K, this still replaces Temple and requires Philosophy, but becomes a faith building
// (alongside Temple) and thus requires a Shrine instead of a Monument.
// Since faith is not yet implemented, but G&K's Drama and Poetry (which provides the
// Amphiteater, a building with the properties of the vanilla Temple) is, this building
// temporarily replaces Drama and Poetry and requires a Monument while having its Vanilla
// stats, so it's a mish-mash of vanilla and G&K. It should be changed when faith is
// implemented.
},
{
"name": "Mud Pyramid Mosque",
"replaces": "Amphitheater",
"uniqueTo": "Songhai",
"maintenance": 0,
"specialistSlots": {"Artist": 1},
"hurryCostModifier": 25,
"culture": 4,
"requiredBuilding": "Monument",
"requiredTech": "Drama and Poetry"
// In Vanilla, this replaces Temple and requires Philosophy and a Monument.
// In G&K, this still replaces Temple and requires Philosophy, but becomes a faith building
// (alongside Temple) and thus requires a Shrine instead of a Monument.
// Since faith is not yet implemented, but G&K's Drama and Poetry (which provides the
// Amphiteater, a building with the properties of the vanilla Temple) is, this building
// temporarily replaces Drama and Poetry and requires a Monument while having its Vanilla
// stats, so it's a mish-mash of vanilla and G&K. It should be changed when faith is
// implemented.
},
{
"name": "National Epic",
"cost": 125,
"culture": 1,
"isNationalWonder": true,
"uniques": ["Requires a [Monument] in all cities", "+[25]% great person generation in this city", "Cost increases by [30] per owned city"],
"requiredTech": "Drama and Poetry"
},
{
"name": "Market",
"gold": 2,
@ -608,7 +636,7 @@
"culture": 4,
"specialistSlots": {"Artist": 1},
"hurryCostModifier": 10,
"requiredBuilding": "Temple",
"requiredBuilding": "Amphitheater",
"maintenance": 2,
"requiredTech": "Acoustics"
},

View File

@ -142,10 +142,16 @@
"techs": [
{
"name": "Philosophy",
"row": 3,
"row": 2,
"prerequisites": ["Writing","Calendar"],
"quote": "'There is only one good, knowledge, and one evil, ignorance.' - Socrates"
},
{
"name": "Drama and Poetry",
"row": 3,
"prerequisites": ["Writing"],
"quote": "'What is drama but life with the dull bits cut out.' - Alfred Hitchcock"
},
{
"name": "Currency",
"row": 7,
@ -177,13 +183,13 @@
{
"name": "Theology",
"row": 2,
"prerequisites": ["Philosophy"],
"prerequisites": ["Philosophy", "Drama and Poetry"],
"quote": "'Three things are necessary for the salvation of man: to know what he ought to believe; to know what he ought to desire; and to know what he ought to do' - St. Thomas Aquinas"
},
{
"name": "Civil Service",
"row": 5,
"prerequisites": ["Currency","Horseback Riding","Philosophy"],
"prerequisites": ["Currency","Horseback Riding","Drama and Poetry"],
"uniques": ["Enables Open Borders agreements"],
"quote": "'The only thing that saves us from the bureaucracy is its inefficiency' - Eugene McCarthy"
},

View File

@ -346,6 +346,12 @@ class GameInfo {
}
for (city in civilizations.asSequence().flatMap { it.cities.asSequence() }) {
// Temple was replaced by Amphitheater in 3.15.6. For backwards compatibility, we
// replace existing temples with amphitheaters. This replacement should be removed
// when temples are reintroduced as faith buildings.
changeBuildingNameIfNotInRuleset(city.cityConstructions, "Temple", "Amphitheater")
for (building in city.cityConstructions.builtBuildings.toHashSet())
if (!ruleSet.buildings.containsKey(building))
city.cityConstructions.builtBuildings.remove(building)
@ -379,13 +385,28 @@ class GameInfo {
}
}
private fun changeBuildingName(cityConstructions: CityConstructions, oldBuildingName: String, newBuildingName: String) {
/**
* Replaces all occurrences of [oldBuildingName] in [cityConstructions] with [newBuildingName]
* if the former is not contained in the ruleset.
* This function can be used for backwards compatibility with older save files when a building
* name is changed.
*/
private fun changeBuildingNameIfNotInRuleset(cityConstructions: CityConstructions, oldBuildingName: String, newBuildingName: String) {
if (ruleSet.buildings.containsKey(oldBuildingName))
return
// Replace in built buildings
if (cityConstructions.builtBuildings.contains(oldBuildingName)) {
cityConstructions.builtBuildings.remove(oldBuildingName)
cityConstructions.builtBuildings.add(newBuildingName)
}
cityConstructions.constructionQueue.replaceAll { if (it == oldBuildingName) newBuildingName else it }
// Replace in construction queue
if (!cityConstructions.builtBuildings.contains(newBuildingName) && !cityConstructions.constructionQueue.contains(newBuildingName))
cityConstructions.constructionQueue = cityConstructions.constructionQueue.map{ if (it == oldBuildingName) newBuildingName else it }.toMutableList()
else
cityConstructions.constructionQueue.remove(oldBuildingName)
// Replace in in-progress constructions
if (cityConstructions.inProgressConstructions.containsKey(oldBuildingName)) {
if (!cityConstructions.builtBuildings.contains(newBuildingName) && !cityConstructions.inProgressConstructions.containsKey(newBuildingName))
cityConstructions.inProgressConstructions[newBuildingName] = cityConstructions.inProgressConstructions[oldBuildingName]!!
cityConstructions.inProgressConstructions.remove(oldBuildingName)
}