[18SJ] Corrects edge case nationalization calculation #11205
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before clicking "Create"
master
pins
orarchive_alpha_games
label if this change will break existing gamesdocker compose exec rack rubocop -a
docker compose exec rack rake
Implementation Notes
Explanation of Change
Currently, the nationalization method uses this code to determine which corp of the eligible candidates will be nationalized:
The problem is that the second sorting criteria uses the initial round order, meaning that if one corp runs and withholds, and moves into the same space as another corp, and they then are both eligible for nationalization, the corp that withheld will be nationalized, even though its token is under the other corp. This issue was reported on boardgamegeek here: https://boardgamegeek.com/thread/3366312/nationalisation-the-first-corporation-in-descendin
I've replaced this with the sorting used by
def sort_order_key
in lib/engine/corporation.rb:which produces the desired result.
This will require pins for any games that have done the wrong nationalization, of course.
Screenshots
Any Assumptions / Hacks