Offer Karama against mandatory advisor ground conversions
Keep completed moves while allowing native advisor-to-fighter conversion to be prevented after empty arrival or the last outsider's ground departure. Bind each queued response to its actual whole group and movement. Shared settlement honors the explicit provisional continuously-alone cancellation duration; setup remains automatic and non-ground producers remain open. Validation: 16 related files199/199, types/lint/build, five native move/response/GameTable SSR journeys and eight legal existing-profile paths. Native34/36-action public Advanced sources earn original setup/counters/Karama. Existing standard controls render; no new component-callback, browser/deployed or full-mode certificate. No saved-room/D1/restart/deployment operation.
This commit is contained in:
1 parent
1a505525a8
commit
3aca64412f
15 files changed
+874
-34
No files matched your search
@@ -2471,6 +2471,14 @@ export function GameTable({
|
||||
{' '}leaves {g.paymentIncome.bank} spice in the bank. The payer’s cost stays the same.
|
||||
</p>
|
||||
)}
|
||||
{g.response.automaticAdvisorFlip && (
|
||||
<p className="notice">
|
||||
The ground movement is complete. These advisors are now alone and must become fighters.
|
||||
{' '}Karama prevents only this conversion; it does not undo the move.
|
||||
{' '}Provisional rule: a prevented group stays advisors while continuously alone,
|
||||
until another faction returns or the group leaves.
|
||||
</p>
|
||||
)}
|
||||
{g.response.kind === 'advisor' && (
|
||||
<p className="notice">
|
||||
{g.players.find((player) => player.id === g.response?.owner)?.name} declared {g.response.amount ?? 1} free {(g.response.amount ?? 1) === 1 ? 'force' : 'forces'} to {territory(splitLocation(g.response.location ?? 'polar_sink:0').territory).name}.
|
||||
|
||||
Reference in new issue
Block a user