* Remove Transform requirement checks
* Add back in requirement for OnlyAvailable
New BuildableOnly unique
* Instead of a new unique, expand CanOnlyBeBuiltInCertainCities to instead take conditionals
* Rename to notMetRejections and copy to BaseUnit
Add CanOnlyBeBuiltInSpecificCities to constructionRejectionReasonType
* Setup CanOnlyBeBuiltInCertainCities as depreciated (renamed CanOnlyBeBuiltInCertainCities_dep)
* Redirect Depreciation
* Quick Camel Case rename
* Function renaming and moving Unique to general Construction Uniques
* spelling
* Move Unique. Update Error message
* version
* Added a next turn menu to skip all the next unit actions
* Added a move automated units button
* Added whitespace
* Added unique NextTurnMenu KeyboardBindings
* Minor Quest/QuestManager linting
* Cache Quest and QuestName references and use them
* Nicer randomWeighted and fix UniqueType.ResourceWeighting
* Integrate @soggerr's #10739 - show tied leaders and your position if you aren't leading
* One more lint
* Added ConditionalWhenBetweenStatResource unique
* Currently the ConditionalBetweenHappiness function only applies to Happiness. Wouldn't it be more better if it could also be extended to other stats and resources. 😊
* Resolved the issue with ConditionalWhenAboveStatResource, ConditionalWhenBelowStatResource, and their modified speed versions not functioning properly on city-level stats (food & production).
This new unique has been tested using the following examples:
1. In GlobalUniques.json:
- "[+12]% [Gold] [in all cities] <when between [1] to [100] [Gold]>",
- "[+24]% [Gold] [in all cities] <when between [1] to [100] [Gold] (modified by game speed)>",
2. In Buildings.json:
- "[+12]% [Production] [in this city] <when between [1] to [5] [Production]>",
- "[+12]% [Food] [in this city] <when between [1] to [5] [Food]>",
* Update uniques.md
* Correct english mistake of the new unique
* Refactor checkResourceOrStatAmount function
* Unified all related functions into one
* Avoid using folder listing for tileset sanity checks for builtin rulesets from jar
* Remove an unnecessary java import
* Revert the builtin-tileset-within-jar special check, not necessary for a release
* Make source object available to RulesetErrorList.add
* Make ruleset available to RulesetErrorList
* Introduce UniqueTarget.MetaModifier - ModifierHiddenFromUsers won't stay alone
* There was no use of prefix without the unique name - fold
* Introduce UniqueTarget.MetaModifier - doc
* Pass context down even inside UniqueValidator, convenience factory for limited RulesetErrorList's
* Clean up RulesetErrorList.of factory
* Reorder parameters of RulesetErrorList.add
* Suppression Unique and implementation
* Remove logging
* Remove unused "Closing page" feature from TabbedPager
* Minor linting
* Ensure Popup's innerTable doesn't exceed its Cell within Popup
* Change a few defaults and remove a misguided comment
* Move OptionPopup's close button to top right - another Red X
* Fix double-count of civ-wide resources, while allowing propagation of city-wide resources via uniques
* Added test to ensure civ-wide resources propagate between cities (they do)
GetResourceAmount -> GetAvailableResourceAmount
* Extra clarity in function names! Better than possible confusion.
* Bump version and create initial changelog entry
* Update French.properties (#11214)
* Update Italian.properties (#11211)
* Update Brazilian_Portuguese.properties (#11210)
* Update Indonesian.properties (#11209)
* Update Indonesian.properties
Fixed and added translation to some words.
* Update Indonesian.properties
* Update Indonesian.properties
* Added a Russian translation for the introductory text of Queen Elizabeth (#11206)
This is a translation close to the text. However, I have tried to keep the solemn style in translation, so there is a slight departure from the original.
---------
Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: Vitor Gabriel <59321138+Ranbut@users.noreply.github.com>
Co-authored-by: M792003 <158552928+M792003@users.noreply.github.com>
Co-authored-by: NoobTutorial <142553623+NoobTutorial@users.noreply.github.com>
* ScrollableAnimatedMenuPopup widget and base UnitUpgradeMenu off it
* More lack of resources info in UnitUpgradeMenu
* Make UnitUpgradeMenu available even if you can't afford any upgrade
* Military units prioritize healing more
* Military units try to pillage tiles when attacking
* tryHeal() now tries to pillage multiple times if a unit have more movement
* Barbarians now pillage more
* Units stay healing on its tile if it can heal in two turns
* Units will heal when no enemies are around in their territory
* TryHealUnit returns false after pillaging to full health
* Refactored canUnitHealInTurnsOnCurrentTile
* Refactored movePreparingAttack pillaging
* City buttons support right-click / long-press to enter CityScreen directly
* City r-click: Rename helper and UI tips
* City capitalization follows getCurrentTutorialTask precedent
* City capitalization change applied to existing translation keys
* Revert "City capitalization change applied to existing translation keys"
This reverts commit c3638a0daf.
* Revert "City capitalization follows getCurrentTutorialTask precedent"
This reverts commit b618f4cae3.
* City capitalization in new text follows getCurrentTutorialTask precedent
* Added escort button
* Added basic escort movement
* Improved escort movement
* Swapping breaks escorting
* Added stop escorting button
* Added link icon to unit
* getDistanceToTiles() now automatically includes escorting
* Multi-turn movement with different units works somewhat
* Escorting units persist to escort across saves
* Escorting units are only idle if their partner unit is idle as well
* Fixed multi-turn escort movement where one unit has more movement points left over
* Added basic tests
* Added a test for formation idle units
* Added some basic movement tests
* Added some canMoveTo tests
* getDistanceToTiles only caches when includeEscort is true
* added getDistanceToTiles test
* An entire commit to remove one line of white space just for you! And yes, there are no semi-colons;
* Added translations
* Added more stopEscorting() calls when the unit is removed
* Added extra comments and refactoring
* Refactored removeAllTilesNotInSet to use a mutableIterator
* Refactored code based on review
* Refactored removing tiles in PathsToTilesWithinTurn that aren't in another PathsToTilesWithinTurn
Allow Barbarians to create units that must set up to ranged attack, unless specifically forbidden by the relevant unique
Since we have a unique for this explicit purpose, we no longer need this extra prevention for Barbarian unit types.
* Respect hidden modifier in a nation's unique improvements display
* Respect hidden modifier in the Unhappiness stat overview
* No auto-icons for an ExpanderTab title
* Terraforming!
* comment
* whoops
* And better tests, that actually output text.
* SomeTrog caught this doc error :)
* Fix natural wonder placement, it better belongs with base terrain
Also, normalize tiles to ruleset after plonking a new terrain
* Out Of Cheese Error, Redo From Start
- Only terrains, no improvements - one problem at a time
- Fit new functional trigger format
- Respect occursOn
- Teleport units out of tiles if they can't pass through (nat wonders for example)
- No need for terrainFeature unique parameter
- Tested with "Turn this tile into a [Grand Mesa] tile <for [0] movement>", "Turn this tile into a [Forest] tile <for [0] movement>" uniques
* Don't allow city tiles to turn into water/wonders etc kudos @SomeTrog
* Right-click external links to copy url
* Add hint about right-clicking links to UI Tips tutorial
* Add wiki link to about and centralize repo/wiki external link bases
Tested with "Adopt [Legalism] <for [0] movement>" - it allows me to click once, adopting the policy, but not a second time since the policy is already adopted thus the trigger function is null
* Properly Calculate Population based on Food Conversion to Prod
Trigger properly when Queue is changed
* Remove triggers
* Missed a trigger
* Add triggers in CityConstructionsTable so we can call cityScreen.update()
* Properly Calculate Population based on Food Conversion to Prod
Trigger properly when Queue is changed
* Remove triggers
* Missed a trigger
* Add triggers in CityConstructionsTable so we can call cityScreen.update()
* Minor style cleanups
* Properly Calculate Population based on Food Conversion to Prod
Trigger properly when Queue is changed
* Remove triggers
* Missed a trigger
* Properly Calculate Population based on Food Conversion to Prod
Trigger properly when Queue is changed
* Remove triggers
* Missed a trigger
* Minor style cleanups
* GreatPersonPointsBreakdown class and logic use
* Minor comment
* Fix untrue wiki claim that civilopediaText color accepts names
* GreatPersonPointsBreakdown UI available by clicking in the CityStatsTable GPP section
* Two separate assembly lines for two different products of the factory
* One more code-deduplication
* Fix rounding - rounds *up* on x.5
* Clearer display code (but output unchanged)
* Minor comment clarification
* Documentation for Personality json
* whoops, bad link
* Fix inaccurate "double focus" comment
* Fix accidental copy-paste error
* Edit priority text to maybe be clearer
* Properly Calculate Population based on Food Conversion to Prod
Trigger properly when Queue is changed
* Remove triggers
* Missed a trigger
* Add triggers in CityConstructionsTable so we can call cityScreen.update()
* Properly Calculate Population based on Food Conversion to Prod
Trigger properly when Queue is changed
* Remove triggers
* Missed a trigger
* Add triggers in CityConstructionsTable so we can call cityScreen.update()
* Make source object available to RulesetErrorList.add
* Make ruleset available to RulesetErrorList
* Introduce UniqueTarget.MetaModifier - ModifierHiddenFromUsers won't stay alone
* There was no use of prefix without the unique name - fold
* Introduce UniqueTarget.MetaModifier - doc
* Pass context down even inside UniqueValidator, convenience factory for limited RulesetErrorList's
* Clean up RulesetErrorList.of factory
* Reorder parameters of RulesetErrorList.add
* Conditional for building in amount of cities
* fix order of operations
* Deprecate old require in amount cities uniques
* import
* Fix referring to the unique instead of the conditional
* Fix yield message
* I have no clue how this isn't imported, but I'mma assume this translates fine anyways
* Rename text for unique
* revert unique text
* Whoops
* Remove unnecessary puppet check
* Move additional description to it own function
* Split missing city text into its own function
* Move ToDo comment
* flip to be easier to read
* Move onlyAvailable rejections to its own function to be easier to work with
* Add in the word "of"
* Barebones implementation
* Personality Policy branch
* Initial addtions to Victory.Focus based changes
* Have no focus or personality if human
* Add getter/setter for easier access to focuses
* Add scaled value to various areas
* Make getPersonality non null to simplify checks
* Forgot to add in changes to the base class
* Ugly code to add in Personality preferred victory type. Not sure how to make it cleaner
* Fix typo
* Early return Faith building choice
* Change set concatination to listOf
* fix missing equal sign
* vals for getPersonality
* Remove unnecessary parenthesis
* Early return the other buildings as well
* Some linting and renames
* Minor linting and fix folder-package mismatch
* Actually make AnimatedMenuPopup stay inside the stage in all directions (was done for bottom left only before)
* Proper keyboard bindings for AutoPlay and -menu
* Testing translations
* AutoPlay as widely used term
* Added getSpiesInCity method in EspionageManager
* Expanded stealing technology code
* Spies can now die and revive
* Added basic rigging elections
* Spies rigging elections can now be caught
* Added spy rank
* Players can now move spies to city-states
* Spies at a higher rank steal tech quicker
* EspionageAutomation now sends spies to city-states and to do counter intelligence
* Fixed some EspionageAutomation logic
* Fixed EspionageAutomation error
* Spy.location is now stored as a vector2
* Accounted for the only able to be one spy of a civ in each city
* Spies level up when successfully stealing tech.
* Increased tech steal rate by spy rank
* Increased influence gained by rigging elections
* Added a spy level cap
* Spies no longer get stuck on counter-intelligence action
* Spy automation no longer tries to rig elections in city states that it is at war with
* canMoveTo now checks if the city tile is visible
* Added espionage translations
* Changed automateSpySteal/Rig/Counter intelligence return types
* Simplifies automateSpies in EspionageAutomation
* Added blank lines before titles
* Improved spy being found and killed message phrasing
* Adapt Overview Politics diagram view to show a defeated player a little more intuitively
* Fix lines to defeated civ - each is drawn twice, one for each direction
* Defeated civ has no relations on the table view as well
* Fix captured civilian liberation in the had-to-be-teleported case
* Refactor captureOrConvertToWorker to return where the unit ended up, if at all - and harden the captureCivilianUnit else branch a bit
* Minor lint
* Reworked ThreatManager to be optimised for getTilesWithEnemyUnitsInDistance
* Refactored and added an exception
* doesTileHaveMilitaryEnemy now searches all military units on the tile and not just the unit in the military slot
* Fixed some errors
* Refactored getTilesWithEnemyUnitsInDistance to use a mutableIterator
* Added some more comments
* Players can't move spies when it is not their turn
* Inversed the statement to have the proper behavior.
* Update core/src/com/unciv/ui/screens/overviewscreen/EspionageOverviewScreen.kt
---------
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Add additional cityFilters
* Maybe viewingCiv shouldn't be null
* Studio complains it is unnecessary now
* I'm doomed to forget imports
* Ignore this
* typo
* Fix gain stat modifier by speed unique action text
* Whoops, should be toInt toString
* I can't escape forgetting imports
* OneTimeGainStatRange also uses modifiers
* As discussed - we currently update on every happiness change, we can limit this to only update all cities if we pass a happiness threshold that is relevant to *some* unique
* Forgot a conditional, and uniqueified results