# Card Effect Fields This file tracks the shared data fields used by `data/cards.json`. The goal is to keep card behavior reusable instead of hardcoding one-off card names. ## Damage - `damage`: base attack damage - `damagePerOtherHandCard`: bonus damage per other card in hand - `damagePerAttackPlayedThisTurn`: bonus damage per attack played this turn - `damagePerDiscardedThisTurn`: bonus damage per card discarded this turn - `damagePerSkillInHand`: bonus damage per skill card in hand - `damagePerCardDrawnThisCombat`: bonus damage per card drawn this combat - `damagePerTurn`: damage applied at turn start - `cardPlayedDamage`: damage when the card is played - `cardPlayedRandomDamage`: random damage when the card is played - `rewardOnKill`: gain bonus reward screens when the card kills - `randomTargetEachHit`: choose a random alive enemy for each hit - `repeatOnKill`: repeat the attack when it kills at least one enemy - `firstCardDamageBonus`: bonus damage for the first card played this turn - `drawDamage`: damage dealt when a card is drawn - `blockPerDamageDealtThisTurn`: gain block equal to damage dealt this turn - `shivDamageBonus`: bonus damage for all Shivs - `firstShivDamageBonus`: bonus damage for the first Shiv each turn - `attackDamageVsWeakMultiplier`: multiplier when the attack hits Weak targets - `useAllEnergy`: treat the card as spending all available energy - `xDamagePerEnergy`: scale attack damage by energy spent - `xWeakPerEnergy`: scale Weak applied by energy spent ## Block and utility - `block`: gain block - `cardPlayedBlock`: gain block whenever a card is played - `blockGainMultiplier`: multiplier for block gained this turn - `hits`: multi-hit count - `aoe`: hit all enemies - `pierce`: ignore block - `draw`: draw cards immediately - `drawUntilHandSize`: draw until hand reaches a target size - `drawSkillBlock`: gain block for each Skill drawn - `drawPoison`: apply poison when a card is drawn - `handCostZeroThisTurn`: make hand cards cost 0 this turn - `drawDisabledThisTurn`: disable draw for the rest of the turn - `heal`: heal immediately - `gainEnergy`: gain energy immediately - `strength`: gain Strength - `dex`: gain Dexterity - `thorns`: gain Thorns - `selfVuln`: apply Vulnerable to self - `extraPoisonTicks`: add extra poison ticks at enemy turn start ## Status - `weak`: apply Weak - `vuln`: apply Vulnerable - `poison`: apply Poison - `poisonHits`: apply poison multiple times - `poisonRandomTargets`: spread poison applications across random alive enemies - `poisonIfTargetPoisoned`: apply poison only if the target is already poisoned - `poisonApplicationBurstEvery`: trigger a burst every N poison applications - `poisonApplicationBurstDamage`: burst damage when the poison application threshold is reached - `skillSlyOnPlay`: make a played Skill card count as sly when it is later discarded - `turnHandSlyCount`: mark up to N other Skill cards in hand as sly for this turn - `attackPoison`: apply poison when attack damage is dealt - `intangible`: reduce incoming damage to 1 for the duration - `endTurnDexLoss`: lose Dexterity at end of turn - `combatCostReductionOnPlay`: reduce this card's cost each time it is played this combat - `enemyStrengthLossThisTurn`: reduce enemy Strength for the rest of the turn - `affectsAllEnemies`: apply the card's debuffs to every alive enemy - `removeEnemyBlock`: clear enemy block when the card resolves - `removeEnemyArtifact`: consume enemy Artifact when the card resolves `poison` deals damage at enemy turn start and then decreases by 1. ## Shivs and discard - `discard`: discard a chosen number of cards from hand - `discardAll`: discard the whole hand - `drawPerDiscarded`: draw one extra card per discarded card - `addShiv`: create Shiv cards - `addShivPerDiscard`: create one Shiv per discarded card - `shivRetain`: Shiv cards are retained at end of turn - `shivAoe`: Shiv cards hit all enemies for the turn - `sly`: trigger on discard - `retain`: keep the card at end of turn ## Powers and turn effects - `powerEffect: "strengthPerTurn"` - `powerEffect: "energyPerTurn"` - `powerEffect: "blockPerTurn"` - `powerEffect: "poisonPerTurn"` - `powerEffect: "damagePerTurn"` - `powerEffect: "retainOne"` - `turnStartShiv`: create Shivs at turn start - `turnStartDraw`: draw cards at turn start - `turnStartDiscard`: discard cards at turn start ## Next turn planning - `nextTurnBlock`: gain block next turn - `nextTurnDraw`: draw extra cards next turn - `nextTurnKeepBlock`: keep block next turn - `nextTurnAttackMultiplier`: attack multiplier next turn - `nextTurnCopies`: copy a chosen card next turn - `nextTurnSelectHandCard`: choose a card from the current hand for next turn copies - `nextTurnSelectPrompt`: prompt text for selection UI - `nextSkillRepeatCount`: repeat the next Skill's effect - `nextSkillCostZero`: make the next Skill cost 0 - `skillCostReductionThisTurn`: reduce Skill costs this turn ## Misc - `innate`: place the card in the opening hand - `playableWhenDrawPileEmpty`: only playable when the draw pile is empty - `exhaust`: exhaust after use - `unplayable`: cannot be played - `curse`: curse card - `token`: token card - `endTurnDamage`: damage if the card remains in hand at end of turn ## Rules - Prefer shared fields over card-specific branches. - Reuse the same field name for the same behavior. - Add a new shared field before adding more special-case card logic.