mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -04:00
* College requires Phylosophy * "Police State" influences the courthouses, not culture borders * "Autocracy complete" has +20 attack effect * Translations updates
This commit is contained in:
parent
f769d60826
commit
13def8739e
@ -356,7 +356,7 @@
|
|||||||
"isNationalWonder": true,
|
"isNationalWonder": true,
|
||||||
"percentStatBonus": {"science": 50},
|
"percentStatBonus": {"science": 50},
|
||||||
"requiredBuildingInAllCities": "Library",
|
"requiredBuildingInAllCities": "Library",
|
||||||
"requiredTech": "Civil Service"
|
"requiredTech": "Philosophy"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Manhattan Project",
|
"name": "Manhattan Project",
|
||||||
|
@ -416,7 +416,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Police State",
|
"name": "Police State",
|
||||||
"description": "Captured cities retain their previous borders",
|
"description": "+3 Happiness from every Courthouse. Build Courthouses in half the usual time.",
|
||||||
"requires": ["Militarism"],
|
"requires": ["Militarism"],
|
||||||
"row": 2,
|
"row": 2,
|
||||||
"column": 5
|
"column": 5
|
||||||
@ -430,7 +430,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Autocracy Complete",
|
"name": "Autocracy Complete",
|
||||||
"description": "+1 happiness from each Walls, Castle and Arsenal"
|
"description": "+20% attack bonus to all Military Units for 30 turns"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1203,11 +1203,11 @@ Gold cost of purchasing units -33% = Стоимость покупки юнит
|
|||||||
Fascism = Фашизм
|
Fascism = Фашизм
|
||||||
Quantity of strategic resources produced by the empire increased by 100% = Количество стратегических ресурсов обрабатываемых империей, удваивается
|
Quantity of strategic resources produced by the empire increased by 100% = Количество стратегических ресурсов обрабатываемых империей, удваивается
|
||||||
Police State = Полицейский участок
|
Police State = Полицейский участок
|
||||||
Captured cities retain their previous borders = Захваченные города сохраняют свои прежние границы
|
+3 Happiness from every Courthouse. Build Courthouses in half the usual time. = +3 счастья за каждый Суд. Суды строятся в 2 раза быстрее.
|
||||||
Total War = Тотальная война
|
Total War = Тотальная война
|
||||||
+15% production when building military units and new military units start with 15 Experience = +15% К производству военных юнитов, Военные юниты создаются с 15 опыта
|
+15% production when building military units and new military units start with 15 Experience = +15% К производству военных юнитов, Военные юниты создаются с 15 опыта
|
||||||
Autocracy Complete = Автократия Завершена
|
Autocracy Complete = Автократия Завершена
|
||||||
+1 happiness from each Walls, Castle and Arsenal = +1 счастье за каждую стену, замок и арсенал
|
+20% attack bonus to all Military Units for 30 turns = +20% к силе атаки для всех военных подразделений на 30 ходов
|
||||||
|
|
||||||
# Technologies
|
# Technologies
|
||||||
|
|
||||||
|
@ -1224,11 +1224,11 @@ Gold cost of purchasing units -33% = Ціна купівлі підрозділ
|
|||||||
Fascism = Фашизм
|
Fascism = Фашизм
|
||||||
Quantity of strategic resources produced by the empire increased by 100% = Кількість вироблених імперією стратегічних ресурсів зростає на 100%
|
Quantity of strategic resources produced by the empire increased by 100% = Кількість вироблених імперією стратегічних ресурсів зростає на 100%
|
||||||
Police State = Поліційна держава
|
Police State = Поліційна держава
|
||||||
Captured cities retain their previous borders = Захоплені міста зберігають свої попередні кордони
|
+3 Happiness from every Courthouse. Build Courthouses in half the usual time. = +3 щастя від кожного Суду. Суди будуються вдвійчі швидше.
|
||||||
Total War = Тотальна війна
|
Total War = Тотальна війна
|
||||||
+15% production when building military units and new military units start with 15 Experience = +15 виробництва при будівництві військових підрозділів і нові військові підрозділи розпочинають з 15-ма од. досвіду
|
+15% production when building military units and new military units start with 15 Experience = +15 виробництва при будівництві військових підрозділів і нові військові підрозділи розпочинають з 15-ма од. досвіду
|
||||||
Autocracy Complete = Автократія завершена
|
Autocracy Complete = Автократія завершена
|
||||||
+1 happiness from each Walls, Castle and Arsenal = +1 щастя за кожні мури, замок та арсенал
|
+20% attack bonus to all Military Units for 30 turns = +20% до сили атаки для всіх військових підрозділів на 30 ходів
|
||||||
|
|
||||||
# Technologies
|
# Technologies
|
||||||
|
|
||||||
|
@ -1203,11 +1203,11 @@ Gold cost of purchasing units -33% =
|
|||||||
Fascism =
|
Fascism =
|
||||||
Quantity of strategic resources produced by the empire increased by 100% =
|
Quantity of strategic resources produced by the empire increased by 100% =
|
||||||
Police State =
|
Police State =
|
||||||
Captured cities retain their previous borders =
|
+3 Happiness from every Courthouse. Build Courthouses in half the usual time. =
|
||||||
Total War =
|
Total War =
|
||||||
+15% production when building military units and new military units start with 15 Experience =
|
+15% production when building military units and new military units start with 15 Experience =
|
||||||
Autocracy Complete =
|
Autocracy Complete =
|
||||||
+1 happiness from each Walls, Castle and Arsenal =
|
+20% attack bonus to all Military Units for 30 turns =
|
||||||
|
|
||||||
# Technologies
|
# Technologies
|
||||||
|
|
||||||
|
@ -107,6 +107,7 @@ class BattleDamage{
|
|||||||
|
|
||||||
fun getAttackModifiers(attacker: ICombatant, defender: ICombatant): HashMap<String, Float> {
|
fun getAttackModifiers(attacker: ICombatant, defender: ICombatant): HashMap<String, Float> {
|
||||||
val modifiers = getGeneralModifiers(attacker, defender)
|
val modifiers = getGeneralModifiers(attacker, defender)
|
||||||
|
val policies = attacker.getCivInfo().policies
|
||||||
|
|
||||||
if(attacker is MapUnitCombatant) {
|
if(attacker is MapUnitCombatant) {
|
||||||
modifiers.putAll(getTileSpecificModifiers(attacker,defender.getTile()))
|
modifiers.putAll(getTileSpecificModifiers(attacker,defender.getTile()))
|
||||||
@ -132,10 +133,13 @@ class BattleDamage{
|
|||||||
if (numberOfAttackersSurroundingDefender > 1)
|
if (numberOfAttackersSurroundingDefender > 1)
|
||||||
modifiers["Flanking"] = 0.1f * (numberOfAttackersSurroundingDefender-1) //https://www.carlsguides.com/strategy/civilization5/war/combatbonuses.php
|
modifiers["Flanking"] = 0.1f * (numberOfAttackersSurroundingDefender-1) //https://www.carlsguides.com/strategy/civilization5/war/combatbonuses.php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (policies.isAdopted("Autocracy Complete") && (policies.autocracyCompletedTurns > 0))
|
||||||
|
modifiers["Autocracy Complete"] = 0.2f
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (attacker is CityCombatant) {
|
else if (attacker is CityCombatant) {
|
||||||
if (attacker.getCivInfo().policies.isAdopted("Oligarchy") && attacker.city.getCenterTile().militaryUnit != null)
|
if (policies.isAdopted("Oligarchy") && attacker.city.getCenterTile().militaryUnit != null)
|
||||||
modifiers["Oligarchy"] = 0.5f
|
modifiers["Oligarchy"] = 0.5f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,16 +360,10 @@ class CityInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun annexCity() {
|
fun annexCity() {
|
||||||
if(!civInfo.policies.isAdopted("Police State")) {
|
isPuppet = false
|
||||||
expansion.cultureStored = 0
|
|
||||||
expansion.reset()
|
|
||||||
reassignWorkers()
|
|
||||||
}
|
|
||||||
|
|
||||||
isPuppet=false
|
|
||||||
cityConstructions.inProgressConstructions.clear() // undo all progress of the previous civ on units etc.
|
cityConstructions.inProgressConstructions.clear() // undo all progress of the previous civ on units etc.
|
||||||
cityStats.update()
|
cityStats.update()
|
||||||
UncivGame.Current.worldScreen.shouldUpdate=true
|
UncivGame.Current.worldScreen.shouldUpdate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
/** This happens when we either puppet OR annex, basically whenever we conquer a city and don't liberate it */
|
/** This happens when we either puppet OR annex, basically whenever we conquer a city and don't liberate it */
|
||||||
|
@ -19,6 +19,7 @@ class PolicyManager {
|
|||||||
var shouldOpenPolicyPicker = false
|
var shouldOpenPolicyPicker = false
|
||||||
get() = field && canAdoptPolicy()
|
get() = field && canAdoptPolicy()
|
||||||
var legalismState = HashMap<String, String>()
|
var legalismState = HashMap<String, String>()
|
||||||
|
var autocracyCompletedTurns = 0
|
||||||
|
|
||||||
fun clone(): PolicyManager {
|
fun clone(): PolicyManager {
|
||||||
val toReturn = PolicyManager()
|
val toReturn = PolicyManager()
|
||||||
@ -28,6 +29,7 @@ class PolicyManager {
|
|||||||
toReturn.shouldOpenPolicyPicker = shouldOpenPolicyPicker
|
toReturn.shouldOpenPolicyPicker = shouldOpenPolicyPicker
|
||||||
toReturn.storedCulture = storedCulture
|
toReturn.storedCulture = storedCulture
|
||||||
toReturn.legalismState.putAll(legalismState)
|
toReturn.legalismState.putAll(legalismState)
|
||||||
|
toReturn.autocracyCompletedTurns = autocracyCompletedTurns
|
||||||
return toReturn
|
return toReturn
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,6 +43,8 @@ class PolicyManager {
|
|||||||
storedCulture += culture
|
storedCulture += culture
|
||||||
if (!couldAdoptPolicyBefore && canAdoptPolicy())
|
if (!couldAdoptPolicyBefore && canAdoptPolicy())
|
||||||
shouldOpenPolicyPicker = true
|
shouldOpenPolicyPicker = true
|
||||||
|
if (autocracyCompletedTurns > 0)
|
||||||
|
autocracyCompletedTurns -= 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// from https://forums.civfanatics.com/threads/the-number-crunching-thread.389702/
|
// from https://forums.civfanatics.com/threads/the-number-crunching-thread.389702/
|
||||||
@ -125,6 +129,7 @@ class PolicyManager {
|
|||||||
civInfo.addGreatPerson(greatPerson)
|
civInfo.addGreatPerson(greatPerson)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
"Autocracy Complete" -> autocracyCompletedTurns = 30
|
||||||
}
|
}
|
||||||
|
|
||||||
// This ALSO has the side-effect of updating the CivInfo statForNextTurn so we don't need to call it explicitly
|
// This ALSO has the side-effect of updating the CivInfo statForNextTurn so we don't need to call it explicitly
|
||||||
|
@ -153,15 +153,16 @@ class Building : NamedStats(), IConstruction{
|
|||||||
if (adoptedPolicies.contains("Constitution") && isWonder)
|
if (adoptedPolicies.contains("Constitution") && isWonder)
|
||||||
stats.culture += 2f
|
stats.culture += 2f
|
||||||
|
|
||||||
if (adoptedPolicies.contains("Autocracy Complete") && cityStrength > 0)
|
|
||||||
stats.happiness += 1
|
|
||||||
|
|
||||||
if (baseBuildingName == "Castle"
|
if (baseBuildingName == "Castle"
|
||||||
&& civInfo.containsBuildingUnique("+1 happiness, +2 culture and +3 gold from every Castle")){
|
&& civInfo.containsBuildingUnique("+1 happiness, +2 culture and +3 gold from every Castle")){
|
||||||
stats.happiness+=1
|
stats.happiness+=1
|
||||||
stats.culture+=2
|
stats.culture+=2
|
||||||
stats.gold+=3
|
stats.gold+=3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (adoptedPolicies.contains("Police State") && baseBuildingName == "Courthouse")
|
||||||
|
stats.happiness += 3
|
||||||
|
|
||||||
}
|
}
|
||||||
return stats
|
return stats
|
||||||
}
|
}
|
||||||
@ -192,19 +193,23 @@ class Building : NamedStats(), IConstruction{
|
|||||||
|
|
||||||
override fun getProductionCost(civInfo: CivilizationInfo): Int {
|
override fun getProductionCost(civInfo: CivilizationInfo): Int {
|
||||||
var productionCost = cost.toFloat()
|
var productionCost = cost.toFloat()
|
||||||
|
|
||||||
if (!isWonder && culture != 0f && civInfo.policies.isAdopted("Piety"))
|
if (!isWonder && culture != 0f && civInfo.policies.isAdopted("Piety"))
|
||||||
productionCost *= 0.85f
|
productionCost *= 0.85f
|
||||||
|
|
||||||
|
if (name == "Courthouse" && civInfo.policies.isAdopted("Police State"))
|
||||||
|
productionCost *= 0.5f
|
||||||
|
|
||||||
if (civInfo.isPlayerCivilization()) {
|
if (civInfo.isPlayerCivilization()) {
|
||||||
if(!isWonder) {
|
if (!isWonder)
|
||||||
productionCost *= civInfo.getDifficulty().buildingCostModifier
|
productionCost *= civInfo.getDifficulty().buildingCostModifier
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if(isWonder) {
|
productionCost *= if(isWonder)
|
||||||
productionCost *= civInfo.gameInfo.getDifficulty().aiWonderCostModifier
|
civInfo.gameInfo.getDifficulty().aiWonderCostModifier
|
||||||
} else {
|
else
|
||||||
productionCost *= civInfo.gameInfo.getDifficulty().aiBuildingCostModifier
|
civInfo.gameInfo.getDifficulty().aiBuildingCostModifier
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
productionCost *= civInfo.gameInfo.gameParameters.gameSpeed.modifier
|
productionCost *= civInfo.gameInfo.gameParameters.gameSpeed.modifier
|
||||||
return productionCost.toInt()
|
return productionCost.toInt()
|
||||||
}
|
}
|
||||||
|
@ -38,25 +38,25 @@ import kotlin.concurrent.thread
|
|||||||
class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
||||||
val gameInfo = game.gameInfo
|
val gameInfo = game.gameInfo
|
||||||
var isPlayersTurn = viewingCiv == gameInfo.currentPlayerCiv // todo this should be updated when passing turns
|
var isPlayersTurn = viewingCiv == gameInfo.currentPlayerCiv // todo this should be updated when passing turns
|
||||||
var waitingForAutosave = false
|
private var waitingForAutosave = false
|
||||||
|
|
||||||
val mapHolder = WorldMapHolder(this, gameInfo.tileMap)
|
val mapHolder = WorldMapHolder(this, gameInfo.tileMap)
|
||||||
val minimapWrapper = MinimapHolder(mapHolder)
|
private val minimapWrapper = MinimapHolder(mapHolder)
|
||||||
|
|
||||||
private val topBar = WorldScreenTopBar(this)
|
private val topBar = WorldScreenTopBar(this)
|
||||||
val bottomUnitTable = UnitTable(this)
|
val bottomUnitTable = UnitTable(this)
|
||||||
val bottomTileInfoTable = TileInfoTable(viewingCiv)
|
private val bottomTileInfoTable = TileInfoTable(viewingCiv)
|
||||||
val battleTable = BattleTable(this)
|
private val battleTable = BattleTable(this)
|
||||||
val unitActionsTable = UnitActionsTable(this)
|
private val unitActionsTable = UnitActionsTable(this)
|
||||||
|
|
||||||
private val techPolicyAndVictoryHolder = Table()
|
private val techPolicyAndVictoryHolder = Table()
|
||||||
private val techButtonHolder = Table()
|
private val techButtonHolder = Table()
|
||||||
private val diplomacyButtonWrapper = Table()
|
private val diplomacyButtonWrapper = Table()
|
||||||
private val nextTurnButton = createNextTurnButton()
|
private val nextTurnButton = createNextTurnButton()
|
||||||
private val tutorialTaskTable=Table().apply { background=ImageGetter.getBackground(ImageGetter.getBlue().lerp(Color.BLACK, 0.5f)) }
|
private val tutorialTaskTable = Table().apply { background=ImageGetter.getBackground(ImageGetter.getBlue().lerp(Color.BLACK, 0.5f)) }
|
||||||
|
|
||||||
private val notificationsScroll: NotificationsScroll
|
private val notificationsScroll: NotificationsScroll
|
||||||
var shouldUpdate=false
|
var shouldUpdate = false
|
||||||
|
|
||||||
private var backButtonListener : InputListener
|
private var backButtonListener : InputListener
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user