[18 India] Fix TR home token blocked when Nepal is full (#11379)#12705
Open
ddaybell wants to merge 1 commit into
Open
[18 India] Fix TR home token blocked when Nepal is full (#11379)#12705ddaybell wants to merge 1 commit into
ddaybell wants to merge 1 commit into
Conversation
When NCR places in one Nepal city and EIR uses Danish EIC (P5) in the other, TR could not float because both city slots were consumed. Danish EIC's cheater flag bypassed TR's tile-level reservation check in tokenable?, taking the last open slot. Add G18India::Step::SpecialToken overriding process_place_token: when a cheater ability would bypass a tile reservation block, set extra_slot on the ability before calling super. This routes the token to @extra_tokens instead of consuming the reserved regular slot, leaving TR's slot available for normal home-token placement. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
perwestling
previously approved these changes
Jun 14, 2026
perwestling
left a comment
Collaborator
There was a problem hiding this comment.
I looked at this and it looked good to me. But I also made a test and let an LLM review it.
Here is what the LLM (Mistral) thought about the PR:
Code Review: PR #12705
Overall: LGTM ✅
Analysis:
- Clean, minimal fix (2 files, 28 lines)
- Correctly identifies the root cause: Danish EIC's
cheaterflag bypassing TR's reservation - Elegant solution using existing
@extra_slotmechanism - Well-commented code explaining the logic
- Preserves TR's tile-level reservation
One suggestion:
Consider adding a specific fixture test that reproduces the bug scenario:
- NCR places in Nepal city 1
- EIR uses Danish EIC (P5) in Nepal city 2
- TR floats and places home token successfully
Testing:
- All 133 existing 18 India fixture tests pass ✅
- Manual verification recommended for the specific scenario
Approval: Ready to merge 🚀
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
cheaterflag bypassed TR's tile-level reservation check intokenable?, taking the last open slotG18India::Step::SpecialTokenthat overridesprocess_place_token; when a cheater token ability would bypass a tile reservation block, it sets@extra_slot = trueon the ability before calling super, routing the token to@extra_tokensinstead of consuming the reserved slotCloses #11379
Test plan
?? Generated with Claude Code