Files
maplecontest/docs/card-effect-fields.md

5.3 KiB

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.