Compose independent utility cards with classic Leader Skills

This commit is contained in:
Quintine committed 2026-10-17 14:17:24 +11:00
1 parent 40a5e51229
commit 5a32c1ac85
23 files changed
+1845 -87

No files matched your search

+5 -1
View File
@@ -2,6 +2,7 @@ import type { GameView } from '@/game/engine';
import { faction } from '@/game/catalog';
import { leaderStrengthLabel } from '@/game/cards';
import { isStoneBurner } from '@/game/battle-cards';
import { usesNativeBattleSpecial } from '@/game/battle-card-slots';
import { stoneBurnerComparison, stoneBurnerWithdrawalContext } from '@/game/stone-burner';
import { RevealedPlanPieces } from './revealed-plan-pieces';
import { KwisatzInspector } from './kwisatz-inspector';
@@ -13,7 +14,7 @@ export function RevealedBattle({ game }: { game: GameView }) {
let stoneContext = battle.stoneBurnerContext?.occupy;
const withdrawing = [battle.attacker, battle.defender].filter(id => {
const plan = battle.plans[id];
return plan && [plan.weapon, plan.defense].includes('ecaz-harass-withdraw');
return plan && usesNativeBattleSpecial(plan, 'ecaz-harass-withdraw');
});
for (const id of withdrawing) {
const occupy = battle.ecazOccupy?.lead === id ? {
@@ -84,6 +85,9 @@ export function RevealedBattle({ game }: { game: GameView }) {
{!!plan.bankerSpice && (
<span className="revealed-plan-detail">Spice Banker: {plan.bankerSpice} spice committed</span>
)}
{plan.planetologistSpecial && (
<span className="revealed-plan-detail">Planetologist alternate Special · +2 if leader survives · no normal card effect</span>
)}
{battle.native === id && !battle.cards.some(isStoneBurner) && (
<span className="revealed-plan-detail">
Native Homeworld bonus: +{battle.nativeBattleStrength} to the