Fund ordinary promises from native CHOAM opening income
This commit is contained in:
1 parent
38738eabac
commit
3abde581db
13 files changed
+663
-24
No files matched your search
@@ -60,6 +60,11 @@ export function BribePromiseGuideButton(props: BribePromiseProps) {
|
||||
export function BribePromises(props: BribePromiseProps) {
|
||||
const own = props.game.bribePromises.filter(promise => promise.player === props.game.me);
|
||||
if (!own.length) return null;
|
||||
const live = liveBribePromises(own, props.game.me, props.game.turn).length > 0;
|
||||
const pendingChoamIncome = live && props.game.status === 'playing' &&
|
||||
props.game.players.find(player => player.id === props.game.me)?.faction === 'choam' &&
|
||||
Number.isSafeInteger(props.game.phase) && props.game.phase >= 0 && props.game.phase <= 2 &&
|
||||
props.game.charity.incomePending && !props.game.charity.incomeCanceled && props.game.charity.multiplier > 0;
|
||||
const name = (id: string) => props.game.players.find(player => player.id === id)?.name ?? 'the named recipient';
|
||||
return <section className="notice space-y-3" aria-label="Your Truthtrance bribe promises" id="bribe-promise-guidance">
|
||||
<h3>Your bribe promises</h3>
|
||||
@@ -74,6 +79,10 @@ export function BribePromises(props: BribePromiseProps) {
|
||||
No forbids reaching that minimum during the rest of this turn. Smaller payments to the named recipient add together.
|
||||
Prior payments, gifts and ally aid do not count.
|
||||
</p>
|
||||
{pendingChoamIncome && <p className="fine" data-testid="choam-pending-payment-income">
|
||||
Automatic CHOAM income resolves at the Charity opening. It is not current spendable cash.
|
||||
Your ordinary Charity claim is separate. Karama or opposing claims can change the funding.
|
||||
Current payment guides may still offer legal prepayments.</p>}
|
||||
<p className="fine">
|
||||
The sender pays immediately. The recipient collects the payment at the start of Mentat Pause.
|
||||
Payments made during Mentat Pause wait until the start of next turn's Mentat Pause.
|
||||
@@ -82,6 +91,6 @@ export function BribePromises(props: BribePromiseProps) {
|
||||
The future claim is not current spendable spice; only actual payments add to the recorded total.
|
||||
{' '}<a href="/rules#truthtrance-bribe">Bribe promise rules</a>.
|
||||
</p>
|
||||
{liveBribePromises(own, props.game.me, props.game.turn).length > 0 && <BribePromiseGuideButton {...props} />}
|
||||
{live && <BribePromiseGuideButton {...props} />}
|
||||
</section>;
|
||||
}
|
||||
@@ -361,6 +361,10 @@ export function TurnActionPromises(props: TurnActionProps) {
|
||||
const game = props.game, own = game.turnActionPromises.filter(promise => promise.player === game.me);
|
||||
if (!own.length) return null;
|
||||
const live = own.some(promise => promise.turn === game.turn && !promise.fulfilled && !promise.released);
|
||||
const pendingChoamIncome = live && game.status === 'playing' &&
|
||||
game.players.find(player => player.id === game.me)?.faction === 'choam' &&
|
||||
Number.isSafeInteger(game.phase) && game.phase >= 0 && game.phase <= 2 &&
|
||||
game.charity.incomePending && !game.charity.incomeCanceled && game.charity.multiplier > 0;
|
||||
return <section className="notice space-y-3" aria-label="Your Truthtrance turn-action promises" id="turn-action-promise-guidance">
|
||||
<h3>Your battle and turn-action promises</h3>
|
||||
<ul>{own.map(promise => <li key={promise.event}>
|
||||
@@ -376,6 +380,10 @@ export function TurnActionPromises(props: TurnActionProps) {
|
||||
Separate No answers each create their own restriction. Legal alternatives remain available; no fixed branch is selected for you.
|
||||
Current facts freeze at the answer and create no promise to keep cards, spice or forces afterward.
|
||||
Only the aggregate answer is shared. Individual fact answers and any reduced future branch remain private.</p>
|
||||
{pendingChoamIncome && <p className="fine" data-testid="choam-pending-payment-income">
|
||||
Automatic CHOAM income resolves at the Charity opening. It is not current spendable cash.
|
||||
Your ordinary Charity claim is separate. Karama or opposing claims can change the funding.
|
||||
Current payment guides may still offer legal prepayments.</p>}
|
||||
<p className="fine">Count the sum of future real ordinary payments to each named recipient after the answer.
|
||||
Earlier payments, gifts and ally aid do not count. The sender pays immediately; the recipient collects at the next Mentat opening.
|
||||
Payments made during Mentat Pause wait until next turn's Mentat opening; collection never counts twice.
|
||||
|
||||
Reference in new issue
Block a user