Scope Advanced Kull to the attempted Karama effect
Adopt the supplied Advanced specific-effect wording, preserving Basic and legacy phase-wide semantics. Bind signed semantic purposes through ordinary/special activations, counters, feasibility and settlement; retain unrelated human controls and minimal bot actions. Phase expiry remains provisional; prior counter, BG and deferred-overbid choices stay. Validation: frozen12-file111/111, types/lint/build and two original-action/rendered-table programmes. Explicit unopened deal/auction/spice order supports real paid Baliset and shipments; Advanced retains Karama for Baliset cancellation while Basic stays blocked. Four minimal policies remain legal. Correct stale exchange/phase-market/Fremen fixture assumptions. Recovery schema expectations maintained without running deferred SQL assurance. No full modes, browser/deployed acceptance, saved-game/reset/restart or deployment operation.
This commit is contained in:
1 parent
b82441c834
commit
884a09fa92
24 files changed
+951
-64
No files matched your search
+4
-3
@@ -77,6 +77,7 @@ import {
|
||||
import { ownedTech } from './tech-tokens';
|
||||
import type { StrongholdProgress } from './victory-progress';
|
||||
import { canUseAsKarama } from './karama';
|
||||
import { kullPurposeBlock, kullSpecialPurpose } from './kull-purpose';
|
||||
import {
|
||||
canUseAsKaramaRole,
|
||||
shrineTruthtranceBotAction,
|
||||
@@ -1410,7 +1411,7 @@ function policyActions(g: GameView): Action[] {
|
||||
}
|
||||
if (
|
||||
!g.battle &&
|
||||
!g.karamaBlocked &&
|
||||
!kullPurposeBlock(g, kullSpecialPurpose(me.faction)) &&
|
||||
g.choamCashIn?.karamas.length &&
|
||||
(me.spice ?? 0) < (level === 0 ? 2 : 5)
|
||||
) {
|
||||
@@ -1457,7 +1458,7 @@ function policyActions(g: GameView): Action[] {
|
||||
const sapho = saphoAction(g);
|
||||
if (sapho) return [sapho];
|
||||
const specialCard =
|
||||
!g.karamaBlocked &&
|
||||
!kullPurposeBlock(g, kullSpecialPurpose(me.faction)) &&
|
||||
!g.choamMarket &&
|
||||
(!g.revival.pending ||
|
||||
(me.faction === 'tleilaxu' && g.decision?.kind === 'revivalStop')) &&
|
||||
@@ -2849,7 +2850,7 @@ function policyActions(g: GameView): Action[] {
|
||||
}
|
||||
if (d.kind === 'auctionPayment') {
|
||||
const karama = me.hand?.find((c) =>
|
||||
!g.karamaBlocked && canUseAsKaramaRole(g, me, c),
|
||||
!kullPurposeBlock(g, 'auction-free-purchase') && canUseAsKaramaRole(g, me, c),
|
||||
);
|
||||
const use =
|
||||
!!karama &&
|
||||
|
||||
Reference in new issue
Block a user