Prototype Fremen Nexus free Revival for base factions

This commit is contained in:
Quintine committed 2026-09-27 14:48:31 +10:00
1 parent 5c1c944a4f
commit 1e690b7062
10 files changed
+350 -7

No files matched your search

+10
View File
@@ -76,6 +76,7 @@ import { quoteSmugglerNoField } from './smuggler-no-field';
import { spiceBankerBattleMaximum, spiceBankerModeSupported } from './spice-banker';
import { nexusGuildSecretAllyAction, nexusGuildSecretAllyCanAct, nexusGuildSecretAllyQuote } from './nexus-guild-secret-ally-options';
import { nexusEmperorRevivalAction } from './nexus-emperor-secret-ally-options';
import { nexusFremenRevivalAction } from './nexus-fremen-revival-options';
import { nexusRicheseAction, nexusRicheseQuote } from './nexus-richese-options';
import { liveShipmentPromises, matchesShipment } from './shipment-promises';
import {
@@ -3712,6 +3713,15 @@ function standaloneGholaAction(g: GameView, ordinary: Action[]): Action | null {
/** Obligations apply across policy branches, including choosing to move first. */
export function botActions(g: GameView): Action[] {
const fremenRevival = g.nexusFremenRevival;
if (fremenRevival && !fremenRevival.blocked && fremenRevival.eliteOptions.length) {
const own = g.players.find(player => player.id === g.me);
const elite = own?.bot === 'Easy'
? Math.min(...fremenRevival.eliteOptions)
: Math.max(...fremenRevival.eliteOptions);
const action = nexusFremenRevivalAction(g, elite);
if (action) return [action];
}
const emperorRevival = g.nexusEmperorSecretAlly?.revival;
if (emperorRevival && !emperorRevival.blocked && emperorRevival.eliteOptions.length) {
const own = g.players.find((player) => player.id === g.me);