Open Tleilaxu special Karama throughout Revival
Permit native Advanced quiet any-player declarations alongside the original target-bound pending request. Preserve completed returns and charges. Adopt explicit provisional Ghola inclusion during the remaining Revival and phase expiry; keep printed Emperor special immunity and the existing low-Homeworld guard. Connect persistent controls and minimal legal bots through the shared quote. Validation: 14 related files148/148, types/lint/build, six actual native control/engine/GameTable SSR journeys and four existing-profile continuations. Private-driver-only feedback reuses passed source-identical checks. Native111/113-action setup, paid shipment and battle sources earn originals. No saved-room/D1/restart/deployment operation; full modes and browser/deployed acceptance remain open.
This commit is contained in:
1 parent
6ea691255a
commit
1a505525a8
18 files changed
+977
-59
No files matched your search
+13
-2
@@ -2302,12 +2302,15 @@ function policyActions(g: GameView): Action[] {
|
||||
target.id !== me.ally &&
|
||||
(target.tanks >= [12, 8, 5, 3][level] ||
|
||||
(level > 0 && d.revival === 'leader' && noLeader));
|
||||
if (specialCard && shouldStop && !g.revival.specialKaramaBlock)
|
||||
const offer = g.tleilaxuSpecialKarama;
|
||||
const card = offer?.cards[0];
|
||||
const allowed = offer?.targets.some(choice => choice.player === target.id && !choice.blocked);
|
||||
if (card && offer && !offer.blocked && allowed && shouldStop)
|
||||
return [
|
||||
{
|
||||
type: 'card',
|
||||
mode: 'special',
|
||||
card: specialCard.id,
|
||||
card,
|
||||
target: target.id,
|
||||
},
|
||||
];
|
||||
@@ -3129,6 +3132,14 @@ function policyActions(g: GameView): Action[] {
|
||||
: [{ type: 'passBid' }];
|
||||
}
|
||||
if (g.phase === 4) {
|
||||
// Reuse the existing public-Tanks preference, with shared current permission.
|
||||
const prevention = g.tleilaxuSpecialKarama;
|
||||
if (prevention && !prevention.blocked && !prevention.pending && prevention.cards.length) {
|
||||
const target = g.players.find(player => player.id !== me.id && player.id !== me.ally &&
|
||||
player.tanks >= [12, 8, 5, 3][level] &&
|
||||
prevention.targets.some(choice => choice.player === player.id && !choice.blocked));
|
||||
if (target) return [{ type: 'card', mode: 'special', card: prevention.cards[0], target: target.id }];
|
||||
}
|
||||
if (g.revival.prevented)
|
||||
return g.ready.includes(me.id) ? [] : [{ type: 'ready' }];
|
||||
const actions: Action[] = [];
|
||||
|
||||
Reference in new issue
Block a user