Complete concealed No-Field allied separation endings
This commit is contained in:
1 parent
57a59c1663
commit
e41abdaf2e
17 files changed
+569
-30
No files matched your search
@@ -1,12 +1,23 @@
|
||||
import type { GameView } from '@/game/engine';
|
||||
|
||||
/** The engine quote carries public locations only, never concealed force values. */
|
||||
export function AdvancedAllySeparation({ quote }: {
|
||||
export function AdvancedAllySeparation({ quote, basic = false }: {
|
||||
quote: GameView['advancedAllySeparation'];
|
||||
basic?: boolean;
|
||||
}) {
|
||||
if (!quote?.territories.length) return null;
|
||||
return <output id="advanced-ally-separation" className="notice block">
|
||||
Finishing now sends your forces in{' '}
|
||||
{quote.territories.join(', ')} to Tanks under the Advanced alliance rule.
|
||||
return <output id={basic ? 'basic-ally-separation' : 'advanced-ally-separation'} className="notice block">
|
||||
{basic ? <>
|
||||
Your ally’s Shipment and Movement turn is finished. Ending your turn now sends your forces in{' '}
|
||||
{quote.territories.join(', ')} to Tanks under the Basic alliance rule.
|
||||
</> : <>
|
||||
Finishing now sends your forces in{' '}
|
||||
{quote.territories.join(', ')} to Tanks under the Advanced alliance rule.
|
||||
</>}
|
||||
{quote.noField && <span className="mt-2 block">
|
||||
Provisional No-Field consequence: at this ending deadline, reveal your marker and place its forces
|
||||
using only available reserves, then send the actual revealed forces to Tanks. A zero marker creates
|
||||
no counter. Your ally’s forces stay unchanged.
|
||||
</span>}
|
||||
</output>;
|
||||
}
|
||||
@@ -5196,7 +5196,7 @@ export function GameTable({
|
||||
{' '}and {g.basicAlliedShipment.elite} special visiting forces to Tanks, not your ally’s forces.
|
||||
</p>
|
||||
)}
|
||||
<AdvancedAllySeparation quote={g.advancedAllySeparation} />
|
||||
<AdvancedAllySeparation quote={g.advancedAllySeparation ?? g.basicAllySeparation} basic={!g.advanced} />
|
||||
{g.nexusGuildCunning?.offer && (
|
||||
<section className="notice">
|
||||
<p>Guild Cunning ends your ordinary shipment and movement, then offers one second shipment at normal Guild prices. Only an unused Hajr move can follow it. Provisional card combination: Ornithopter can replace that unused Hajr movement; declaring Cunning abandons any unfinished current card group.</p>
|
||||
@@ -5215,7 +5215,8 @@ export function GameTable({
|
||||
!nexusGuildSkipShipmentAction(g, guildCunning.event))}
|
||||
{actionButton(guildCunning?.stage === 'secondShipment' ? 'Decline second shipment and finish' :
|
||||
guildCunning ? 'Finish Guild turn' : 'Finish shipment & movement', {type: 'endMovement'}, false,
|
||||
g.advancedAllySeparation?.territories.length ? 'advanced-ally-separation' : undefined)}
|
||||
g.advancedAllySeparation?.territories.length ? 'advanced-ally-separation' :
|
||||
g.basicAllySeparation?.territories.length ? 'basic-ally-separation' : undefined)}
|
||||
</>
|
||||
) : (
|
||||
<p className="muted">
|
||||
|
||||
Reference in new issue
Block a user