Coordinate Fremen grants in ordered revival
Verify and publish checkpoint container / container (push) Canceled after 0s
Verify and publish checkpoint container / container (push) Canceled after 0s
This commit is contained in:
1 parent
64706cc7e0
commit
220d78c779
11 files changed
+429
-12
No files matched your search
@@ -16,6 +16,9 @@ export function FremenRevivalGrant({
|
||||
const grant = game.fremenRevivalGrant;
|
||||
const me = game.players.find((player) => player.id === game.me);
|
||||
const group = game.fremenGroupRevivalGrant;
|
||||
const orderedAutomatedAlly = (recipient: string) =>
|
||||
game.advanced && !!game.revivalOrder && game.revivalOrder.remaining.includes(recipient) &&
|
||||
game.players.some(player => player.id === recipient && (player.bot || player.autopilot));
|
||||
if (group && game.status === 'playing' && game.phase === 4 && me?.faction === 'fremen') {
|
||||
const busyWindow = busy || !!game.truthtrance || !!game.nexusTraitors?.pending;
|
||||
return (
|
||||
@@ -35,6 +38,18 @@ export function FremenRevivalGrant({
|
||||
onClick={() => act({type:'grantRevival', target:option.recipient})}>
|
||||
Grant {name} free revival <ArrowRight size={15} />
|
||||
</Button>
|
||||
{orderedAutomatedAlly(option.recipient) && !option.granted && !option.blocked && <>
|
||||
<p className="fine">An automated ally may wait for your grant when it would help. You can let it continue without waiting and may still grant later while Revival remains open.</p>
|
||||
<Button data-testid={`fremen-revival-wait-release-${option.recipient}`}
|
||||
className="game-action" disabled={busyWindow || !!option.waitReleased}
|
||||
onClick={() => {
|
||||
if (!busyWindow && !option.waitReleased)
|
||||
act({type:'releaseFremenRevivalWait', target:option.recipient});
|
||||
}}>
|
||||
Continue without waiting <ArrowRight size={15} />
|
||||
</Button>
|
||||
{option.waitReleased && <p className="fine">{name} can continue without waiting for your grant.</p>}
|
||||
</>}
|
||||
</div>;
|
||||
})}
|
||||
</section>
|
||||
@@ -58,6 +73,18 @@ export function FremenRevivalGrant({
|
||||
(automatedAlly?.bot || automatedAlly?.autopilot) && !grant.granted && !grant.blocked && (
|
||||
<p className="fine">When this grant would help your automated ally, it waits to revive forces until you grant it or select Ready for next phase.</p>
|
||||
)}
|
||||
{orderedAutomatedAlly(grant.recipient) && !grant.granted && !grant.blocked && <>
|
||||
<p className="fine">An automated ally may wait for your grant when it would help. You can let it continue without waiting and may still grant later while Revival remains open.</p>
|
||||
<Button data-testid={`fremen-revival-wait-release-${grant.recipient}`}
|
||||
className="game-action" disabled={disabled || !!grant.waitReleased}
|
||||
onClick={() => {
|
||||
if (!disabled && !grant.waitReleased)
|
||||
act({type:'releaseFremenRevivalWait', target:grant.recipient});
|
||||
}}>
|
||||
Continue without waiting <ArrowRight size={15} />
|
||||
</Button>
|
||||
{grant.waitReleased && <p className="fine">{recipient} can continue without waiting for your grant.</p>}
|
||||
</>}
|
||||
<p className="fine">
|
||||
Provisional current-rate policy: Recruits doubles the current granted rate, including applicable bonuses,
|
||||
before caps. Without other bonuses, three becomes six.
|
||||
|
||||
Reference in new issue
Block a user