Card Review Batch 3: Strength / Intuitive / Fun Outliers
Full manual pass across all 165 cards' descriptions, effect classes, and the
regenerated card_capital_report_v2.md (post-batch-2 rebalance), looking for
outliers on three axes instead of pure numeric power: strength (still
mispriced by the numbers), intuitive (the card doesn't work the way its
text or presentation implies), and fun (mechanically fine but a weak
player experience).
Strength
The "energy-for-Liquidity" family has two outliers, benchmarked against its own baseline
Five cards share the same shape (spend nothing, gain Energy, lose Liquidity):
| Card | Rarity | Energy gained | Liquidity lost | Reusable? |
|---|---|---|---|---|
| Overclock (Energy) | Common | 2 | 3 | Yes |
| Overclocked (AI) | Common | 1 | 3 | Yes |
| Overtime Shift (Healthcare) | Common | 1 | 3 | Yes |
| Server Overclock (Healthcare) | Uncommon | 2 | 10 | No (Exhaust — but its own description doesn't say so) |
| Backroom Deal (Healthcare) | Common | 2 | 15 | No (Exhaust, and its description does say so) |
Server Overclock and Backroom Deal give the same energy as the Common
baseline (Overclock) for 3-5x the Liquidity cost, and both exhaust on
top of that (corrected from an earlier draft of this report, which missed
that Server Overclock also has IsExhaust = true) — yet Backroom Deal is
priced below Server Overclock (Common vs. Uncommon) despite being the
worse of the two. This isn't a subtle misread: the static formula flags
Backroom Deal as the single worst card in the game (-4.56z) and Server
Overclock as the second-worst (-2.13z), and reading the numbers side by side
confirms it's a real gap, not a formula blind spot.
Recommendation: bring both down toward the Overclock baseline — e.g.
Server Overclock's Liquidity cost 10 -> 5, Backroom Deal's 15 -> 6. Also add
"Exhaust" to Server Overclock's description text — see the Intuitive section
below, it's currently a silent one-time-use card.
Intuitive (the card doesn't do what it looks like it does)
Six cards silently default to the Attack icon/type despite dealing zero damage
CardUI.cs picks the card's border color and icon directly from Type
(⚔️ Attack / 🛡️ Defend / ✨ Skill). Six cards never set Type in their
.tres at all, which means Godot silently defaults the field to 0
(CardType.Attack) even though none of them deal damage:
| Card | Actual effect | Displays as |
|---|---|---|
| Hedge Fund | Block + Retain | ⚔️ Attack |
| Risk Assessment | Block + Draw | ⚔️ Attack |
| Fortress Protocol | Double Block | ⚔️ Attack |
| PR Scandal | Remove Hype, gain Block per stack | ⚔️ Attack |
| Media Blackout | Deny enemy Hype, Draw 1 | ⚔️ Attack |
| Reality Check | Remove enemy Hype | ⚔️ Attack |
A player scanning their hand by icon for "which card can I use to survive
this turn" would misread all six. This reads as a straightforward authoring
oversight (a missing property), not intentional: every other non-damage card
in the game does set Type = 1 or Type = 2 explicitly (Transformer,
Distraction, Overtime Shift, etc. all correctly say Type = 2).
Made it worse: energy/Overclock.tres explicitly sets Type = 0
(Attack) despite also dealing zero damage — while its four sibling cards in
the exact same "energy-for-Liquidity" family (Overclocked, Overtime Shift,
Server Overclock, Backroom Deal) are all correctly Type = 2 (Skill). Same
card concept, inconsistent type across sectors.
Recommendation: set Type = 1 (Defend) on Hedge Fund, Risk Assessment,
Fortress Protocol, PR Scandal; Type = 2 (Skill) on Media Blackout, Reality
Check, and Overclock (Energy) to match its siblings.
Server Overclock exhausts without telling you
Server Overclock has IsExhaust = true, but its description is just "Gain
2 energy. Lose 10 Liquidity." — no mention of Exhaust. Compare to Backroom
Deal, which has the identical mechanical flag and spells it out ("...
Exhaust."). A player would have no way to know Server Overclock is a
one-time card from its text alone.
Recommendation: append "Exhaust." to Server Overclock's description.
Drill Site's "Last Turn" text describes the wrong condition
Drill Site (DepletionDamageEffect) actually checks "is your energy at 0
right now" — the identical mechanic three other cards use and correctly
label "Last energy:" (Refinery, Emergency Protocol, Spark Plug). Drill
Site alone says "Last Turn: Deal 16", which reads as "the final turn of
the fight" — a condition the player can't know in advance and isn't what the
card checks. This is a wording bug, not a balance one.
Recommendation: change the description to "Deal 8 Damage. Last energy:
Deal 16." to match its siblings' established phrasing.
Efficiency Filter's description tells you nothing
Every other card in the game states its numbers. Efficiency Filter's is
just "Apply Efficiency Filter." The actual effect
(EfficiencyFilterEffect, DamagePerCard = 2) makes the target take 2
damage for every card they play next turn — a real, legible effect that
the card text hides completely.
Recommendation: "Target takes 2 Damage for each card they play next
turn."
Reality Check references a status effect that doesn't exist
"Enemy loses 5 Hype (applying Weak if negative)" — there is no "Weak" status
anywhere in the codebase (confirmed by grep across game-engine/scripts and
game-engine/resources). The actual effect (HypeEffect, Stacks = -5)
just subtracts 5 Hype with nothing else attached. This reads as leftover
text from a cut mechanic.
Recommendation: drop the parenthetical, or actually implement a Weak
status if one was intended — worth asking which before touching it, since
this could be an intentional cut feature rather than a typo.
Fun (mechanically sound, but a weak player experience)
Zero-agency random-outcome cards, at a frequency where bad rolls sting
- Chaos Protocol (Common): "Randomly: 8 Damage, 8 Block, 4 Hype, or Draw
2" — a Common you'll see often, with zero player input on which of four
fairly different outcomes you get. - Stack Overflow (Uncommon): "Draw 1-5 randomly" — a card that costs the
same whether you whiff (1 card) or jackpot (5 cards); no way to mitigate
the low roll. - Deepfake (Rare, 2 cost): "Deal 10-25 Damage randomly" — the widest
swing in the game on a card you'll be relying on at Rare-level stakes; 10
damage for 2 cost at Rare is weak, 25 is great, and you have no lever to
pull either way.
None of these are unfair by the numbers (their average outcome is
reasonable) — the complaint is pure variance with no player decision
attached to it, which is a different problem from power level and usually
needs a design fix (partial mitigation, a choose-one-of-two, or a
consolation minimum) rather than a number tweak.
Volatile Surge's "risk" isn't really a risk
"80% Chance: Deal 15 Damage. 20% Chance: Lose 2 Liquidity" — losing 2
Liquidity is a minor inconvenience next to 15 damage for 1 cost. The
downside is too small to make this feel like a real gamble; it mostly just
reads as "15 damage for 1 cost, occasionally with an asterisk." Worth either
raising the downside's bite or accepting it's meant to feel safe (in which
case the "chance" framing on the card is doing more flavor work than
mechanical work).
Manual review by Claude. No .tres files changed in this pass — pending
direction on which of the above to act on.