Merge 2646127c173af2e2e3d82a22a36ae36a4a715c53 into d51ef24c205b6b05330b3c4d7ce79c402db44447

This commit is contained in:
Rob Loach 2025-09-21 14:13:25 +00:00 committed by GitHub
commit 032dcf76ce
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 18 additions and 20 deletions

View File

@ -1112,7 +1112,10 @@
"isNationalWonder": true,
"uniques": ["Enables construction of Spaceship parts", "Triggers a global alert upon completion",
"Only available <when [Scientific] Victory is enabled>", "Cannot be hurried"],
"requiredTech": "Rocketry"
"requiredTech": "Rocketry",
"civilopediaText": [
{ "text": "Once you have completed the Apollo Program, you can start constructing spaceship parts in your cities\n (with the relevant technologies) to win a Scientific Victory!" }
]
},
{
"name": "Great Firewall",

View File

@ -33,7 +33,10 @@
},
{
"name": "Siege",
"movementType": "Land"
"movementType": "Land",
"civilopediaText": [
{ "text": "Siege units are extremely powerful against cities, but need to be Set Up before they can attack.\nOnce your siege unit is set up, it can attack from the current tile,\n but once moved to another tile, it will need to be set up again." }
]
},
{
"name": "Civilian Water",

View File

@ -937,7 +937,10 @@
"isNationalWonder": true,
"uniques": ["Enables construction of Spaceship parts", "Triggers a global alert upon completion",
"Only available <when [Scientific] Victory is enabled>", "Cannot be hurried"],
"requiredTech": "Rocketry"
"requiredTech": "Rocketry",
"civilopediaText": [
{ "text": "Once you have completed the Apollo Program, you can start constructing spaceship parts in your cities\n (with the relevant technologies) to win a Scientific Victory!" }
]
},
// Information Era

View File

@ -33,7 +33,10 @@
},
{
"name": "Siege",
"movementType": "Land"
"movementType": "Land",
"civilopediaText": [
{ "text": "Siege units are extremely powerful against cities, but need to be Set Up before they can attack.\nOnce your siege unit is set up, it can attack from the current tile,\n but once moved to another tile, it will need to be set up again." }
]
},
{
"name": "Civilian Water",

View File

@ -206,12 +206,6 @@
],
"uniques": ["Will not be displayed in Civilopedia"]
},
{
"name": "Apollo Program",
"steps": [
"Once you have completed the Apollo Program, you can start constructing spaceship parts in your cities\n (with the relevant technologies) to win a Scientific Victory!"
]
},
{
"name": "Injured Units",
"steps": [
@ -224,12 +218,6 @@
"Workers are vital to your cities' growth, since only they can construct improvements on tiles.\nImprovements raise the yield of your tiles, allowing your city to produce more and grow faster while working the same amount of tiles!"
]
},
{
"name": "Siege Units",
"steps": [
"Siege units are extremely powerful against cities, but need to be Set Up before they can attack.\nOnce your siege unit is set up, it can attack from the current tile,\n but once moved to another tile, it will need to be set up again."
]
},
{
"name": "Embarking",
"steps": [

View File

@ -24,10 +24,8 @@ enum class TutorialTrigger(val value: String, val isCivilopedia: Boolean = !valu
AfterConquering("After_Conquering"),
BarbarianEncountered("_BarbarianEncountered"),
OtherCivEncountered("_OtherCivEncountered"),
ApolloProgram("Apollo_Program"),
InjuredUnits("Injured_Units"),
Workers("Workers"),
SiegeUnits("Siege_Units"),
Embarking("Embarking"),
IdleUnits("Idle_Units"),
ContactMe("Contact_Me"),

View File

@ -298,6 +298,7 @@ class WorldScreen(
globalShortcuts.add(KeyboardBinding.DeveloperConsole, action = ::openDeveloperConsole)
}
@Readonly
fun openDeveloperConsole() {
// No cheating unless you're by yourself
if (gameInfo.civilizations.count { it.isHuman() } > 1) return
@ -767,8 +768,6 @@ class WorldScreen(
viewingCiv.getKnownCivs().filter { viewingCiv.isAtWarWith(it) }
.flatMap { it.cities.asSequence() }.any { viewingCiv.hasExplored(it.getCenterTile()) }
}
displayTutorial(TutorialTrigger.ApolloProgram) { viewingCiv.hasUnique(UniqueType.EnablesConstructionOfSpaceshipParts) }
displayTutorial(TutorialTrigger.SiegeUnits) { viewingCiv.units.getCivUnits().any { it.baseUnit.isProbablySiegeUnit() } }
displayTutorial(TutorialTrigger.Embarking) { viewingCiv.hasUnique(UniqueType.LandUnitEmbarkation) }
displayTutorial(TutorialTrigger.NaturalWonders) { viewingCiv.naturalWonders.size > 0 }
displayTutorial(TutorialTrigger.WeLoveTheKingDay) { viewingCiv.cities.any { it.demandedResource != "" } }

View File

@ -71,3 +71,4 @@ Each unit type has the following structure:
| name | String | Required | |
| movementType | Enum | Required | The domain through which the unit moves. Allowed values: "Water", "Land", "Air" |
| uniques | List of String | none | List of [unique abilities](../uniques.md) this promotion grants to units of this type |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |