Unciv/core/src/com/unciv/Constants.kt
Oskar Niesen 548b536818
Add Defensive pact (#9900)
* Defensive Pacts can now be offered.

* Signing a defensive pact now makes the Civs join all defensive wars. Any future defensive wars will force the other civ to join.

* Removed Popup Alert Defensive Pact.

* Defensive pact and Research pact now are only on the trade screen.

* AI now offers defensive pacts.

* Added AI evaluating sending and receiving Defensive Pact offers.

* Reverted some temporary changes

* Reduced the chance an AI offers a defensive pact

* Starting an offensive war now cancels all Defensive Pacts with other civilisations.

* Removed extra requirements before an AI will sign or offer a defensive pact.

* Added Defensive Pacts to the Civilopedia.

* Fixed the AI counter offering with treaties.

* Fixed a test using the old method of checking if a civ is at war.

* Fixed a previous refactor error.

* Deleted commented out Research Agreement button code.

* Fixed some spelling errors and remnant debugging code.

* Removed signing a defensive pact brings both Civ's into each others previous defensive wars.

* Refactored setFriendshipBasedModifier to look better

* Starting an offensive war now removes the defensive pact form both sides.

* Reverted changes to DiplomaticStatus

* Removed extra technology check to sign a defensive pact.

* Removed DiplomacyManager.isAtWar() completely.

* Moved setting defensivePact flags from  TradeLogic.transferTrade() to DiplomacyManager.signDefensivePact.

* Changed diplomatic modifiers related to Defensive Pacts to be less extreme.

* Fixed canceling Defensive Pacts when declaring war and notifying other Civs.

* Updated the Defensive Pact entry in the Civilopedia and fixed some spelling.

* Fixed Defensive Pact behavior while attacking and defending.

* Changed a variable to a more readable name.

* Improved readability of setFriendshipBasedModifier().

* Moved the important onWarDeclared functionality to their own functions.

* Added a notification for the attacking Civ when a Civ joins war through a Defensive Pact.

* Refactored setDefensivePactBasedModifier() to be more readable.

* Increased DeclinedDefensivePact time.

* Deleted old commented code that removed the research agreement button.

* Fixed having reverting changes errors in UnitMovementTests.

* Refactored breaking treaties when declaring war.

* Removed unnecessary semicolons.
2023-08-16 17:59:41 +03:00

110 lines
3.7 KiB
Kotlin

package com.unciv
object Constants {
const val settler = "Settler"
const val eraSpecificUnit = "Era Starting Unit"
const val spreadReligion = "Spread Religion"
const val removeHeresy = "Remove Foreign religions from your own cities"
const val english = "English"
const val impassable = "Impassable"
const val ocean = "Ocean"
/** The "Coast" _terrain_ */
const val coast = "Coast"
/** The "Coastal" terrain _filter_ */
const val coastal = "Coastal"
const val mountain = "Mountain"
const val hill = "Hill"
const val plains = "Plains"
const val lakes = "Lakes"
const val desert = "Desert"
const val grassland = "Grassland"
const val tundra = "Tundra"
const val snow = "Snow"
const val forest = "Forest"
const val jungle = "Jungle"
const val ice = "Ice"
val vegetation = arrayOf(forest, jungle)
// Note the difference in case. **Not** interchangeable!
// TODO this is very opaque behaviour to modders
/** The "Fresh water" terrain _unique_ */
const val freshWater = "Fresh water"
/** The "Fresh Water" terrain _filter_ */
const val freshWaterFilter = "Fresh Water"
const val barbarianEncampment = "Barbarian encampment"
const val cityCenter = "City center"
const val peaceTreaty = "Peace Treaty"
const val researchAgreement = "Research Agreement"
const val openBorders = "Open Borders"
const val defensivePact = "Defensive Pact"
/** Used as origin in StatMap or ResourceSupplyList, or the toggle button in DiplomacyOverviewTab */
const val cityStates = "City-States"
/** Used as origin in ResourceSupplyList */
const val tradable = "Tradable"
const val random = "Random"
const val unknownNationName = "???"
const val unknownCityName = "???"
const val fort = "Fort"
const val futureTech = "Future Tech"
// Easter egg name. Is to avoid conflicts when players name their own religions.
// This religion name should never be displayed.
const val noReligionName = "The religion of TheLegend27"
const val spyHideout = "Spy Hideout"
const val neutralVictoryType = "Neutral"
const val cancelImprovementOrder = "Cancel improvement order"
const val tutorialPopupNamePrefix = "Tutorial: "
const val OK = "OK"
const val close = "Close"
const val yes = "Yes"
const val no = "No"
const val loading = "Loading..."
const val working = "Working..."
const val barbarians = "Barbarians"
const val spectator = "Spectator"
const val embarked = "Embarked"
const val wounded = "Wounded"
const val rising = "Rising"
const val lowering = "Lowering"
const val remove = "Remove "
const val repair = "Repair"
const val uniqueOrDelimiter = "\" OR \""
const val dropboxMultiplayerServer = "Dropbox"
const val uncivXyzServer = "https://uncivserver.xyz"
const val defaultTileset = "HexaRealm"
/** Default for TileSetConfig.fallbackTileSet - Don't change unless you've also moved the crosshatch, borders, and arrows as well */
const val defaultFallbackTileset = "FantasyHex"
const val defaultUnitset = "AbsoluteUnits"
const val defaultSkin = "Minimal"
/**
* Use this to determine whether a [MapUnit][com.unciv.logic.map.MapUnit]'s movement is exhausted
* (currentMovement <= this) if and only if a fuzzy comparison is needed to account for Float rounding errors.
* _Most_ checks do compare to 0!
*/
const val minimumMovementEpsilon = 0.05f // 0.1f was used previously, too - here for global searches
const val aiPreferInquisitorOverMissionaryPressureDifference = 3000f
const val defaultFontSize = 18
const val headingFontSize = 24
}