103 lines
3.7 KiB
Markdown
103 lines
3.7 KiB
Markdown
# 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
|
|
- `drawDamage`: damage dealt when a card is drawn
|
|
- `shivDamageBonus`: bonus damage for all Shivs
|
|
- `firstShivDamageBonus`: bonus damage for the first Shiv each turn
|
|
- `attackDamageVsWeakMultiplier`: multiplier when the attack hits Weak targets
|
|
|
|
## 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
|
|
- `heal`: heal immediately
|
|
- `gainEnergy`: gain energy immediately
|
|
- `strength`: gain Strength
|
|
- `dex`: gain Dexterity
|
|
- `thorns`: gain Thorns
|
|
- `selfVuln`: apply Vulnerable to self
|
|
|
|
## Status
|
|
|
|
- `weak`: apply Weak
|
|
- `vuln`: apply Vulnerable
|
|
- `poison`: apply Poison
|
|
- `poisonHits`: apply poison multiple times
|
|
- `poisonRandomTargets`: spread poison applications across random alive enemies
|
|
|
|
`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.
|