Connect normal Spice Banker deferred bank income
Fresh classic banker-income profile preserves actual bank legs, physical once-phase use and original-faction atomic Mentat collection. Provisional earned custody stays explicit; public/old/combined modes unchanged. Final check: types/lint and 6487 offline cases; focused 140; guide 10; build; native18/four legal budgets; two original six-seat CLI/human390px rooms and82 saved seats25rooms. Final two reviews no findings. Local HTTP49/55 six known upstream503 failures, not green. No reset or deployed claim.
This commit is contained in:
1 parent
13c46450a9
commit
6785e622a7
18 files changed
+2767
-13
No files matched your search
@@ -190,6 +190,7 @@ import { HarassWithdrawGuide, harassWithdrawControlState } from './harass-withdr
|
||||
import { HarassWithdrawChoice } from './harass-withdraw-choice';
|
||||
import { PrivateBattlePlan } from './private-battle-plan';
|
||||
import { SpiceBankerControl, spiceBankerControlState } from './spice-banker';
|
||||
import { SpiceBankerIncome } from './spice-banker-income';
|
||||
import { canUsePlanetologistBattleSpecial } from '../game/leader-skill-combat';
|
||||
import type { Card } from '../game/cards';
|
||||
import { RevealedBattle } from './revealed-battle';
|
||||
@@ -1409,6 +1410,7 @@ export function GameTable({
|
||||
</div>
|
||||
</aside>
|
||||
<section className="board-column">
|
||||
<SpiceBankerIncome game={g} />
|
||||
<DrawPiles piles={g.drawPiles} />
|
||||
<div className="board-toolbar">
|
||||
<span>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import type { GameView } from '@/game/engine';
|
||||
|
||||
/** Only the projected physical front-shield piles are public, not their payment receipts. */
|
||||
export function SpiceBankerIncome({ game }: { game: GameView }) {
|
||||
const state = game.spiceBankerIncome;
|
||||
if (!state || state.deferred.length === 0) return null;
|
||||
const name = (owner: string) => game.players.find(player => player.id === owner)?.name ?? owner;
|
||||
return (
|
||||
<section className="notice block min-w-0 space-y-2 break-words" aria-label="Spice Banker front-shield income">
|
||||
<h3>Spice Banker · deferred income</h3>
|
||||
<ul className="m-0 list-none p-0">
|
||||
{state.deferred.map(pile => (
|
||||
<li key={pile.owner}>{name(pile.owner)}: {pile.amount} spice in front of the shield.</li>
|
||||
))}
|
||||
</ul>
|
||||
<p className="fine m-0">
|
||||
This earned spice is not spendable yet. The original gaining faction collects it automatically
|
||||
at the current Mentat opening; it cannot fund a bid, shipment, revival or Battle Plan beforehand.
|
||||
</p>
|
||||
<a href="/rules?topic=spice-banker-income#spice-banker-income">Income timing and preview limits</a>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user