Support immediate payments in group travel deals
Verify and publish checkpoint container / container (push) Successful in 10m49s
Verify and publish checkpoint container / container (push) Successful in 10m49s
This commit is contained in:
1 parent
3987c5c16b
commit
6c1530382d
10 files changed
+207
-24
No files matched your search
@@ -190,9 +190,9 @@ export function validatePublicDeals(value: unknown, players: readonly PublicDeal
|
||||
requireDeal(travel.dueTurn === undefined || travel.dueTurn >= (deal.turn as number),
|
||||
'Choose a travel turn no earlier than the offer turn.');
|
||||
requireDeal(!Object.hasOwn(deal, 'paymentStatus') && (multi
|
||||
? !!travel.actor && travel.actor !== deal.from && parties.includes(travel.actor) && !payment
|
||||
? !!travel.actor && travel.actor !== deal.from && parties.includes(travel.actor) && (!payment || payment.kind === 'immediateBribe')
|
||||
: !Object.hasOwn(travel, 'actor') && (!payment || payment.kind === 'immediateBribe')),
|
||||
'Choose an invited traveler; payment is available only as a two-party immediate bribe.');
|
||||
'Choose an invited traveler and an optional immediate bribe between participants.');
|
||||
// The actor's final acceptance is checked privately. An unfinished offer
|
||||
// cannot already contain that vote, even after a decline or withdrawal.
|
||||
if (multi && deal.status !== 'active' && deal.status !== 'released')
|
||||
@@ -253,7 +253,8 @@ export function setPublicDealTravel(deal: PublicDeal, value: unknown, players: r
|
||||
validatePublicDeals([deal], players);
|
||||
requireDeal(deal.status === 'offered' && !Object.hasOwn(deal, 'travel') &&
|
||||
!Object.hasOwn(deal, 'paymentStatus') && (deal.participants
|
||||
? !!deal.acceptVotes && deal.acceptVotes.length === 1 && deal.acceptVotes[0] === deal.from && !deal.payment
|
||||
? !!deal.acceptVotes && deal.acceptVotes.length === 1 && deal.acceptVotes[0] === deal.from &&
|
||||
(!deal.payment || deal.payment.kind === 'immediateBribe')
|
||||
: !Object.hasOwn(deal, 'acceptVotes') && (!deal.payment ||
|
||||
deal.payment.kind === 'immediateBribe')),
|
||||
'Only a fresh offer may add a travel term with a supported payment.');
|
||||
|
||||
Reference in new issue
Block a user