Base Game CardEffects - brandonandzeus/Trainworks2 GitHub Wiki

Base Game CardEffects Reference

Targeting Reference.

Targeting Characters

For all card effects targeting Characters. Here's an explanation of the targeting parameters.

At the very least you'll need.

  • TargetMode: TargetMode enum value
  • TargetTeamType: Enum flag setting. Can be Team.Type.None, Team.Type.Heroes, Team.Type.Monsters, or (Team.Type.Heroes | Team.Type.Monsters)

Now if the TargetMode is not one of (Self, LastAttackedCharacter, LastFeederCharacter, Pyre, LastTargetedCharacters, Tower, or LastAttackerCharacter) these additional parameters can be used.

  • IgnoreDead: Filters out dead characters.
  • TargetModeStatusEffectsFilter: Filter out characters without all of the status effects specified
  • TargetModeHealthFilter: Filter out characters not matching the health filter Can be Both (default), Damaged (HP != MaxHP), or Undamaged (Hp == MaxHP)
  • TargetIgnoreBosses: Filters out Enemies with IsMiniboss and IsOuterTrainBoss set.
  • TargetIgnorePyre: Filter out the Pyre
  • TargetSubtype: Filter out Characters without the given subtype.

Character TargetMode explanations.

  • Room - Combined with TargetTeamType targets all units in a room. (Ex TargetMode = Room, TargetTeamType = Monsters is target all monsters in the room)
  • RandomInRoom - A single random target is selected from those available.
  • FrontInRoom - The unit in front is selected.
  • RoomHealTargets - Like room, except filters out units that can't be healed. Currently only used by healing enemy units.
  • Self - Not valid if this is played from an effect that is not from a Characters trigger effect. If was called from within a CharacterTrigger Self will be the character who has been triggered.
  • LastAttackedCharacter - The last character who has been attacked. (Think: Coldcaelia's Strike: Apply Frosbite effect)
  • FrontWithStatus - (head scratch) This one is a little funky. You can do this with TargetModeStatusEffectsFilter + FrontInRoom. A statusId is given via ParamStr to indicate the status. I also note that no CardEffect in the base game uses this and the downsides of using ParamStr here is that this TargetMode can't be used with a CardEffect that uses ParamStr. So don't use this.
  • Tower - All characters on the Train. Note that this doesn't perform any filtering (other than Team.Type) using the above parameters. (Think: Shadowbox)
  • BackInRoom - The unit in the back is selected.
  • DropTargetCharacter - This one just means the character selected when the card was played. Only valid for non-monster cards.
  • Weakest - Targets the weakest character (the one with the least amount of HP)
  • LastAttackerCharacter - Target the last character who has attacked. (Think: Glugsider's Revenge effect).
  • LastFeederCharacter - Target the last character who ate a morsel
  • Pyre - Target the pyre. Using this TargetMode will scroll the camera to the Pyre room when the effect fires.
  • LastTargetedCharacters - Target the last characters targeted. Very useful for follow-up effects if the first CardEffect Targetted DropTargetCharacter. Can not be present as the target mode of the first CardEffect
  • LastDamagedCharacters - Target the characters who were last damaged. This TargetMode is unused by any effects in the game. This is slightly different from LastAttackedCharacters, as the code appears to check if the character was damaged by the last action.
  • LastSpawnedMorsel - Target the last spawned morsel unit. Seems to be unused by the game (Morselmaster has a RoomModifier for their effect)

Card Targeting modes

  • DrawPile - Target all cards in the DrawPile
  • Discard - Target all cards in the DiscardPile
  • Exhaust - Target all cards in the ConsumePile
  • Eaten - Target all cards in the EatenPile
  • Hand - Target all cards in your hand
  • LastDrawnCard - Target the last card drawn

All other target-related parameters are ignored if TargetMode is set to these types. Some of the card effects may use the target parameters to filter out cards from the targetCards list.

CardEffectAddBattleCard

Card effect that creates and add cards from a card pool to a Card Pile potentially applying a CardUpgrade to the cards added. The card lasts for the current combat.

  • ParamInt: CardPile enum value. Where to add the card. (Sensible values DeckPile = 0, DiscardPile = 1, ExhaustedPile = 2, HandPile = 3, DeckPileTop = 5, DeckPileRandom = 7, EatenPile = 8).
  • AdditionalParamInt: Number of cards to add (Default 1).
  • ParamCardPool: CardPool to pick cards from.
  • ParamCardUpgrade: Optional CardUpgrade to apply to generated cards.
  • ParamCardFilter: Optional CardUpgradeMaskData to filter out cards from the card pool.
  • [Optional] FilterBasedOnMainSubClass: Filter cards out of the card pool that don't match the current Clan Combo.
  • [Optional] CopyModifiersFromSource: Copy upgrades from the source card (The card played if it is a spell, or the current unit upgrades if triggered from a Character).
  • [Optional] IgnoreTempModifiersFromSource: If set only copies permanent upgrades from the card.

CardEffectAddPermanentCorruption

Adds a permanent Charged Echoes (Corruption) to the floor.

  • ParamInt: Number of permanent Charged Echoes to add to the floor.

CardEffectAddRunCard

Card effect that creates and adds a single card from a card pool to a Card Pile. Regardless of the "CardPile" ParamInt setting, the card is added to the deck permanently for the rest of the run.

  • ParamInt: CardPile enum value. Where to add the card. (Sensible values DeckPile = 0, DiscardPile = 1, ExhaustedPile = 2, HandPile = 3, DeckPileTop = 5, DeckPileRandom = 7, EatenPile = 8).
  • ParamCardPool: CardPool to pick cards from.
  • ParamCardFilter: CardUpgradeMaskData to filter out cards from the card pool.
  • [Optional] CopyModifiersFromSource: Copy upgrades from the source card (The card played if it is a spell, or the current unit upgrades if triggered from a Character).

CardEffectAddStatsAndStatusEffectsFromSelf

Primordium Superfood's route effect. Applies a CardUpgrade with the Triggered Character's (Primordium) stats and status effects. The stat upgrade is permanent for the fight. This CardEffect must be present in a Character Trigger.

CardEffectAddStatsFromSelf

Primordium non Superfood effect. Applies a CardUpgrade with the Triggered Character's stats to the targets. This CardEffect must be present in a Character Trigger.

CardEffectAddStatusEffect

Another basic CardEffect. Applies a status effect.

  1. Applies a status effect.
    • ParamStatusEffects: Must be size 1. Status Effect and number of stacks to apply
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  2. Applies a random status effect from a list
    • ParamStatusEffects: If size is > 1. The list of Status effects that can be applied at random. Each entry is equally likely.
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  • [Optional] Multiply Status Effect Stacks added based on status effects (Must be used part of a CharacterTrigger)
    • UseStatusEffectStackMultipler: True
    • StatusEffectStackMultiplier: Status effect stacks applied are multiplied by the triggered Character's number of status effects stacks of the status provided.

CardEffectAddStatusEffectNextMonster

Doesn't seem to be used. Similar to CardEffectAddStatusEffect except the next monster spawned gets the status effect.

  1. Applies a status effect to next monster spawned.
    • ParamStatusEffects: Must be size 1. Status Effect and number of stacks to apply
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  2. Applies a random status effect to next monster spawned from a list
    • ParamStatusEffects: If size is > 1. The list of Status effects that can be applied at random. Each entry is equally likely.
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  • [Optional] Multiply Status Effect Stacks added based on status effects (Must be used part of a CharacterTrigger)
    • UseStatusEffectStackMultipler: True
    • StatusEffectStackMultiplier: Status effect stacks applied are multiplied by the triggered Character's number of status effects stacks of the status provided.

CardEffectAddStatusEffectPerOtherEffect

Doesn't seem to be used in game. This seems to take a status effect, sums up the total number of stacks of that status in the room then gives the targets Sum * ParamInt stacks of another status. This effect is ineligible for Doublestack.

  • ParamStatusEffects: Must be size 2. Index 1 is the status to check. Index 0 is the status effect to give.
  • ParamInt: Multiplier.

CardEffectAddTempCardUpgradeToCardsInHand

A card effect that applies a CardUpgrade to all cards currently in your hand. Warning! This card effect can not be present in a Character's trigger effects.

Warning this CardEffect has a bug if used with a Scaling CardTrait. The effects from the scaling CardTrait will cascade and end up being applied multiple times See CardEffectAddCardUpgradeToTargetCards for a much-improved version of this card effect allowing you to upgrade cards from any location (or itself) and rather to apply the upgrade temporarily or permanently, and can be used within a Character trigger.

  • ParamCardUpgradeData: Card Upgrade to apply.

CardEffectAddTempCardUpgradeToDeckScreenChosenCard

Doesn't seem to be used. Opens the Deck screen and allows the user to choose a card. A CardUpgrade is applied to the chosen card.

  • ParamCardUpgradeData: Card Upgrade to apply.

CardEffectAddTempCardUpgradeToNextDrawnCard

A card effect that applies a CardUpgrade to the next drawn card. This effect must be paired with CardEffectDrawType or a similar card effect which draws cards.

  • ParamCardUpgradeData: Card Upgrade to apply.

CardEffectAddTempCardUpgradeToUnits

A Basic card effect that applies a CardUpgrade to Units. The CardUpgrade lasts the rest of battle.

  • ParamCardUpgradeData: Card Upgrade to apply. (Note that the integral fields and StatusEffectUpgrades should only be set). That is BonusDamage, BonusHP, CostReduction, XCostReduction, BonusHeal, BonusSize, and StatusEffectUpgrades. Specifically for this effect during combat, applying an upgrade with any other parameters set will break the game as those fields (ex. CharacterTriggers) aren't cached. A CustomEffect that sets ApplyInPreviewMode = false and applies the upgrade can be a workaround. *NOTE CardUpgradeData.Filters is ignored here.

CardEffectAddTempSwapStats

Applies a CardUpgrade to targets that swaps their Attack Damage (or Healing Amount) and Health.

CardEffectAddTrigger

This CardEffect is presumed to be bugged as it applies a Trigger to a unit (the trigger that gets added is defined in the CardData.EffectTriggers), however since the state of the Characters Triggers isn't cached for combat previews (and CanApplyInPreviewMode = true) it will duplicate the triggers applied to the target unfortunately. Don't use.

CardEffectAddUpgradedCopy

This CardEffect is specific to Heaven's Aid Spell Copy upgrade. Adds 1 copy of itself to some CardPile.

  • ParamInt: CardPile enum value. Where to add the card. (Sensible values DeckPile = 0, DiscardPile = 1, ExhaustedPile = 2, HandPile = 3, DeckPileTop = 5, DeckPileRandom = 7, EatenPile = 8).
  • ParamCardUpgrade: Optional CardUpgrade to apply to generated cards.
  • [Optional] CopyModifiersFromSource: Copy upgrades from the source card (The card played if it is a spell, or the current unit upgrades if triggered from a Character).
  • [Optional] IgnoreTempModifiersFromSource: If set only copies permanent upgrades from the card.

CardEffectAdjustCorruption

Sets the amount of Charged Echoes on the floor. Potentially adding or subtracting charged echoes.

  1. Fill the floor with Charged Echoes to the Maximum
    • ParamBool: True
    • ParamInt: any negative value
  2. Add Charged Echoes onto the floor
    • ParamBool: True
    • ParamInt: Amount of Charged Echoes to add.
  3. Remove all Charged Echoes from the floor
    • ParamBool: False
    • ParamInt: any negative value
  4. Remove Charged Echoes from the floor
    • ParamBool: False
    • ParamInt: Amount of Charged Echoes to remove.

CardEffectAdjustEnergy

Adjusts the amount of ember for the current turn (or next turn) depending on when this effect fires. If the current combat phase is MonsterTurn the ember is immediately given otherwise it is given the next turn.

  • ParamInt: Amount of energy to add or remove.

CardEffectAdjustMaxHealth

Card effect that adjusts the max hp of a unit. This is temporary so if the unit dies the max health is reset. To adjust the max health for the rest of the battle apply a CardUpgrade to the unit instead with CardEffectAddTempCardUpgradeToUnits.

Many awoken units that spawn with extra hp make use of this card effect.

  • ParamInt: Amount of maximum hp to add.

CardEffectAdjustRoomCapacity

Make a floor bigger or smaller with this card effect.

  • ParamInt: Amount of space to add if positive or remove if negative.

CardEffectAdjustRoomMaxCorruption

Increases (or decreases) the maximum amount of Charged Echoes that can be saved on a floor.

  • ParamInt: Amount to increase the maximum amount of Charged Echoes by.

CardEffectBuffDamage

This is a card effect that adjusts a unit's attack damage. It is a temporary buff. This card effect should not be used on Monsters since the effects are temporary and will reset when the unit dies. This effect is used mainly to adjust the stats of enemy units or the Pyre's stats. A good example is Living Armor's (Ring 7 boss) Revenge: +1 Attack trigger. If you need to buff a monster's attack, CardEffectAddTempCardUpgradeToUnits can be used.

  • ParamInt: Amount of attack damage to add (or subtract).

CardEffectBuffMaxHealth

Gives a unit a buff to max health and increasing their hp by the same amount. Again temporary buff to maxhp that is gone when the unit dies. This is only used for enemy units.

  • ParamInt: Must be positive Amount of maxhp to give.

CardEffectBump

Move units up and down floors with this card effect. This doesn't work on units with the immobile status effect.

  • ParamInt: Positive to move up num floors. Negative to move down num floors.

CardEffectChooseDiscard

Allows a player to choose and discard a card from their hand. No popup occurs if the user only has one card. Warning Since this effect blocks for user input, you won't be able to have any card effects that run after to query what the discarded card was. You will need a custom version of this effect if that's what you want.

CardEffectCopyCardUpgradesToUnits

Copies all CardUpgrades from the Triggered Character to the targets given. This effect must appear in a CharacterTriggerData's effects.

CardEffectCopyUnits

A card effect that only copies Monsters. The copied unit gains Cardless.

  • ParamInt: number of copies.

CardEffectDamage

The most basic of CardEffects. Deals damage.

  1. Deals ParamInt base damage
    • UseIntRange: False
    • ParamInt: Amount of damage
  2. Deals Random MinInt - MaxInt * Multiplier base Damage [Bugged Doesn't disable itself in PreviewMode]
    • UseIntRange: True
    • ParamMinInt: Minimum Random Damage
    • ParamMaxInt: Maximum Random Damage
    • ParamMultiplier: Multiplier
  • [Optional] Multiply Base Damage based on status effects (Must be used part of a CharacterTrigger)
    • UseStatusEffectStackMultipler: True
    • StatusEffectStackMultiplier: Base Damage is multiplied by the triggered Character's number of status effects stacks of the status provided.

CardEffectDamageByUnitsKilled

Card effect exclusive to Shardtail Queen's Imperialist route. Kills monsters matching a subtype then deals damage to all hero units equal to killed units times ParamInt. The killing step of this card effect will not kill Minibosses, Bosses, Champions, or the Pyre.

Warning Spell cards using this card effect are not eligible for Tethy's Conduit route's spell cost reduction for damaging spell cards

  • TargetMode: Must be set to Room
  • TargetTeamType: Must be set to Team.Type.Heroes | Team.Type.Monsters
  • ParamInt: Damage multiplier
  • ParamStr: Subtype Id

CardEffectDamagePerTargetAttack

Deals damage to target units equal to the sum of each target's attack times a multiplier. Unused by any cards/effects in the base game

Warning Spell cards using this card effect are not eligible for Tethy's Conduit route's spell cost reduction for damaging spell cards Warning interestingly enough cards using this card effect are eligible for Edge Prior's healing spell cost reduction effect

  • ParamInt: Damage multiplier

CardEffectDespawnCharacter

Despawns a character with a counter. Mainly used by Daedalus's Explosives, Archus's Darkshards, and the Collector. Removes the unit from the train silently. Note this effect doesn't reset itself so if intending to use multiple times the counter needs to be reset or the effect needs to be reset

  • ParamInt: Initial counter, each time this effect is run, it decreases the counter by 1. When it drops to below 0 the unit is despawned.

CardEffectDiscardHand

Discards your entire hand (potentially moving discarded cards to the Consume Pile). The implementation of this card effect discards each card in your hand one by one. This card effect also stores the number of cards consumed.

  • ParamInt: CardEffectDiscardHand.DiscardMode enum value. (Discard = 0, Consume = 1)

CardEffectDraw

A card effect that draws cards.

  • ParamInt: Number of cards to draw. Can be -1 to draw to maximum hand size.

CardEffectDrawAdditionalNextTurn

A card effect that increases card draw next turn.

  1. Increase or decrease card draw.
    • ParamInt: The adjustment value positive increases card draw, negative decreases card draw. (Note that you will still draw a banner unit if it is 0 if there are still banner units left in the deck).
  2. Randomly increase or decrease card draw with a range
    • UseIntRange: true
    • ParamMinInt: Minimum amount
    • ParamMaxInt: Maximum amount
    • ParamMultiplier: Multiplier

CardEffectDrawType

Like CardEffectDraw, it attempts to draw cards of a specific type. It will also pick a card out of the discard if no cards matching the type exist in the DrawPile.

  • ParamInt: Number of cards to draw.
  • TargetCardType: (Required) Type of card to draw (Must be one of Spell, Monster, Blight, Junk)

CardEffectEnchant

Sets up an Enchanter effect. An Enchanter is a unit that gives a temporary status effect to units on the same floor. If the unit is killed or the other units are moved from the floor, they lose the status effect given to them by the enchanter. Note that this effect should be placed in a CharacterTrigger of type AfterSpawnEnchant. Note that if the status effect given is stackable if additional units are spawned (moved) onto the floor all units will receive an additional stack of the enchanter's status effect (This may not be intended depending on your needs).

  1. Applies a status effect.
    • ParamStatusEffects: Must be size 1. Status Effect and number of stacks to apply
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  2. Applies a random status effect from a list
    • ParamStatusEffects: If size is > 1. The list of Status effects that can be applied at random. Each entry is equally likely.
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  • [Optional] Multiply Status Effect Stacks added based on status effects.
    • UseStatusEffectStackMultipler: True
    • StatusEffectStackMultiplier: Status effect stacks applied are multiplied by the triggered Character's number of status effects stacks of the status provided.

CardEffectFeederRules

Trigger morsel eating with this card effect. Special Ability of Morsel-Made

  • ParamBool: If true if this effect is in a CharacterTriggerData. the Triggered unit no matter the position on the floor will eat the morsels instead.

CardEffectFreezeCard

Allows the user to select a card. The card selected has CardTraitFreeze applied to it.

CardEffectFreezeRandomCard

Freezes a random card in your hand by applying CardTraitFreeze to the card. Note freezing a card is different from Permafrost. Freeze is temporary until the card is played. Permafrost is permanent for the rest of the fight (Permafrost adds Freeze when the card is drawn). This effect will not freeze Blights, Scourges, or an already Frozen card.

CardEffectFloorRearrange

This one used to be the signature effect of Railbeater, but now known as the Pushback Talos effect. Rearrange the target within the floor pulling them to the front or back with this card effect. This does not affect Flying Bosses or characters with the immobile status effect.

  • ParamInt: (if 0) - Push to front. (if 1) Push to back.

CardEffectGainEnergy

Gives ember immediately. Note that this effect can only give ember and not remove it.

  1. Gain a fixed about of ember
    • UseIntRange: False
    • ParamInt: Amount of ember to gain (non negative)
  2. Gives Random MinInt - MaxInt * Multiplier Ember
    • UseIntRange: True
    • ParamMinInt: Minimum Random Ember
    • ParamMaxInt: Maximum Random Ember
    • ParamMultiplier: Multiplier

CardEffectGainEnergyEveryTurn

Increases max ember for the rest of battle. Note that this effect can only give ember and not remove it.

  1. Gain a fixed about of ember
    • UseIntRange: False
    • ParamInt: Amount of ember to gain (non negative)
  2. Gives Random MinInt - MaxInt * Multiplier Ember
    • UseIntRange: True
    • ParamMinInt: Minimum Random Ember
    • ParamMaxInt: Maximum Random Ember
    • ParamMultiplier: Multiplier

CardEffectGainEnergyNextTurn

Increases max ember for the next turn. Note that this effect can only give ember and not remove it.

  1. Gain a fixed about of ember
    • UseIntRange: False
    • ParamInt: Amount of ember to gain next turn (non negative)
  2. Gives Random MinInt - MaxInt * Multiplier Ember next turn
    • UseIntRange: True
    • ParamMinInt: Minimum Random Ember
    • ParamMaxInt: Maximum Random Ember
    • ParamMultiplier: Multiplier

CardEffectHeal

The most basic of CardEffects. Heals a Character.

  1. Heals for ParamInt
    • UseIntRange: False
    • ParamInt: Amount of healing
  2. Heals Random MinInt - MaxInt * Multiplier base healing [Bugged Doesn't disable itself in PreviewMode]
    • UseIntRange: True
    • ParamMinInt: Minimum Random Damage
    • ParamMaxInt: Maximum Random Damage
    • ParamMultiplier: Multiplier

CardEffectHealAndDamageRelative

Restoration Detonation's effect: The target selected is healed. The amount healed is then multiplied by 5, and the front unit (Hardcoded) of the opposite team takes that amount of damage.

  1. Heals for ParamInt
    • UseIntRange: False
    • ParamInt: Amount of healing
  2. Heals Random MinInt - MaxInt * Multiplier base healing [Bugged Doesn't disable itself in PreviewMode]
    • UseIntRange: True
    • ParamMinInt: Minimum Random Damage
    • ParamMaxInt: Maximum Random Damage
    • ParamMultiplier: Multiplier

CardEffectHealTrain

Simply heals the Pyre.

  • ParamInt: Base amount of Pyre health to add.

CardEffectKill

Simply kills a unit. This is different from CardEffectSacrifice in that the latter requires a target sacrifice in order for the card to be playable. This card effect doesn't have any restrictions.

CardEffectModifyCardCost

Card effect that simply applies a CardUpgrade to reduce (or increase) the cost of cards matching card type in hand. This is the signature effect of Archus' Looming Darkshard.

  • ParamInt: Cost reduction amount (negative to increase cost).
  • TargetCardType: CardType enum value.

CardEffectModifyInkVariable

Card effect that modifies an Ink story (Cavern Event) variable. Signature effect of Good Ol' Wingmaker.

  • ParamStr: Ink variable name
  • ParamInt: Amount to increase or decrease variable by.

CardEffectMultiplyAllPositiveStatusEffects

Card effect that multiplies all positive status effects.

  • ParamInt: Multiplier.

CardEffectMutiplyAllStatusEffects

Card effect that multiplies all status effects.

  • ParamInt: Multiplier.

CardEffectMultiplyCorruption

  • Doesn't seem to be used* Multiplies the amount of Charged Echoes in a room

    • ParamInt: Multiplier.

CardEffectMultiplyStatusEffect

Card effect that multiplies the number of stacks of a singular status effect.

  1. Multiplies a status effect.
    • ParamStatusEffects: Must be size 1. Status Effect and count is the multiplier for status effect.
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  2. Multiplies a random status effect from a list
    • ParamStatusEffects: If size is > 1. The list of Status effects that can be multiplied at random. Each entry is equally likely. The count indicates the multiplier
    • ParamInt: Percent Chance to apply status effect (100% if ParamInt = 0)
  • [Optional] Multiply Status Effect Stacks added based on status effects (Must be used part of a CharacterTrigger)
    • UseStatusEffectStackMultipler: True
    • StatusEffectStackMultiplier: Status effect stacks applied are multiplied by the triggered Character's number of status effects stacks of the status provided.

CardEffectNULL

This is a placeholder effect. You shouldn't use this one. Used by Olde Magic and Nexus Spike.

CardEffectPlayUnitTrigger

This CardEffect automatically triggers a unit's ability or the unit's spawner card trigger,

  • ParamTrigger: CharacterTriggerData.Trigger type. Trigger to activate.

CardEffectRandomDiscard

This CardEffect discards cards from the hand at random.

  1. Discards a fixed amount of cards
    • UseIntRange: False
    • ParamInt: Number of cards to discard
  2. Discards a random amount of cards MinInt - MaxInt * Multiplier
    • UseIntRange: True
    • ParamMinInt: Minimum Amount
    • ParamMaxInt: Maximum Amount
    • ParamMultiplier: Multiplier

CardEffectRecruit

Effect specific to For the Greater Good. Spawns a random character to the front of the room.

  • ParamCharacterDataPool: Pool of Character Data. One will be selected at random.

CardEffectRecursion

Ugh... where to begin? The name is a misnomer nothing recursive about this. I can best describe this effect as a card mover with the potential to spawn the moved cards and/or apply an upgrade to moved cards. To describe how versatile this CardEffect is, here are a few examples of cards using this effect (Hallowed Halls, Primitive Mold, Wurmkin Etchings, Total Recall, Impish Scholar, Returned Soul, Formless Child, Retch).

This CardEffect is the implementation of the "Reform" mechanic, by passing in a CardUpgrade.

  • TargetMode: Must be one of (DrawPile, Discard, Exhaust, Eaten, or LastDrawnCard). This effect will operate on card(s) from the associated location.

  • TargetCardSelectionMode: Main parameter of this effect. It's worth describing each Enum value

    • ChooseToHand: You choose a card from some CardPile and it moves it to your hand.
    • RandomToHand: A random card is selected from some CardPile and it is added to your hand.
    • ChooseToDeck: You choose a card from some CardPile and it is added back to the Deck.
    • RandomToDeck: A random card is selected from some CardPile and it is added back to the deck.
    • RandomToRoom: Spawn random units from deck potentially with a subtype filter. Note ParamCardUpgrade is ignored with this option. (This one appears to be unused
    • RandomToHandWithUpgrades: Move a random card to hand (potentially with a subtype filter and card type filter) and Copy all upgrades from the played card to the cards chosen. This one appears to be unused
    • RandomToRoomUntilCapacityFull: The "Hallowed Halls" effect. Spawn monsters to the room (potentially with a subtype filter and CardUpgrade applied).
  • ParamStr: Localization key of the message to display to user if TargetCardSelectionMode is ChooseToHand or ChooseToDeck.

  • ParamInt: Number of cards to move/spawn if RandomToHand, RandomToDeck, or RandomToRoom.

  • ParamCardUpgradeData: CardUpgrade to apply. This is valid for any of the CardSelectionModes.

  • TargetCharacterSubtype: Only applies if RandomToRoom or RandomToRoomUntilCapacityFull. The subtype to filter out units. Defaults to the none subtype which matches all units.

  • TargetCardType: Only applies to ChooseTohand, RandomTohand, ChooseToDeck, RandomToDeck, and RandomToHandWithUpgrades. Target card type to filter out cards.

Might be worth looking at some examples of cards using this

CardEffectRemoveAllStatusEffects

Removes (or halves) all status effects matching a display category.

  • ParamInt: StatusEffectData.DisplayCategory enum to filter status effects. (0 = Positive, 1 = Negative, 2 = Persistent)
  • ParamBool: Halve status effects instead.

CardEffectRemoveStatusEffect

Removes stacks of a single status effect.

  • ParamStatusEffects: Must be size 1. The status effect and number of stacks to remove.
  • [Optional] TargetCharacterSubtype: Can restrict targets to those having the subtype given. (Defaults to the None Subtype which matches all targets).

CardEffectRemoveStatusEffectPerCorrupt

The egg card effect. This effect removes stacks of a specific status effect based on the number of Charged Echoes (named Corruption in the codebase) on the floor. This effect also removes Charged Echoes on the floor based on the number of Shell removed.

  • ParamStatusEffects: Must be sized 1. A Status Effect Stack Data containing the status to remove. The count param is ignored.

CardEffectReplayTrigger

Transcendimp's effect.

  • ParamTrigger: CharacterTriggerData.Trigger type to replay all effects from.

CardEffectRewardCards

This CardEffect appears to be unused It appears to be the same effect as CardEffectDraw.

CardEffectRewardGold

This CardEffect gives the player gold.

  1. Gives a fixed amount of gold
    • UseIntRange: False
    • ParamInt: Amount
  2. Gives a Random MinInt - MaxInt * Multiplier amount of gold.
    • UseIntRange: True
    • ParamMinInt: Minimum Random Amount
    • ParamMaxInt: Maximum Random Amount
    • ParamMultiplier: Multiplier

CardEffectSacrifice

When specified in a Card requires a valid sacrifice to play the card. This card effect kills one or more units. This CardEffect is a Fake CardTrait adding the text Sacrifice to the top of the card. (Note since this CardEffect is referenced a lot in the codebase, I should note that the base game only uses this effect with TargetMode.Self or TargetMode.DropTargetCharacter)

  • ParamBool: Do not fully remove the unit. (Seems to be set for Egg units' hatch effect).
  • ParamSubtype: Filter targets based on their subtype. If the unit's subtypes doesn't include the specified subtype it is removed from the list of targets.

CardEffectSpawnHero

Card effect that spawns an enemy unit. Note this spawns an enemy unit. If you wanted to spawn a friendly unit then CardEffectRecruit or CardEffectSpawnMonster should be used

  • ParamCharacterData: Hero data to spawn.

CardEffectSpawnMonster

Spawns a monster. If used as a Card's Effect it marks the card as a Monster Spawner Card. If present in a Character's Triggers the Monsters spawned will be given the Cardless status effect. If TargetMode set to DropTargetCharacter will spawn the Character in the front of the room unless this effect is in an Extinguish trigger in which case it will spawn in the same location as the Character dying.

  • ParamCharacterData: CharacterData to spawn.
  • ParamAdditionalCharacterData: Another CharacterData to spawn.
  • ParamInt: Number of the units specified to summon.
  • ParamBool: If true Do not copy the Card's upgrades onto spawned units (Bog Chrysalis / Legion of Wax Essence spawns a basic unit). If false Do copy the Card's upgrades onto spawned units (ex. Bog Chrysalis Hatch / Legion of Wax Extinguish).

CardEffectSynergizeStatusEffects

The Apex Imp effect. This card effect checks the number of stacks of a specific status that have been added. Then adds the same amount of another status effect. This effect can only synergize two status effects, if one wanted to synergize multiple status effects a custom effect must be written as this effect clears the internal bookkeeping that makes this card effect works.

  • ParamStatusEffects: Must be a list of size two. Entry 0 is the status effect to check. Entry 1 will be the status effect to give in response.

CardEffectTransferAllStatusEffects

CardEffect exclusive to Hoarfrost Effigy. Transfers all of a status effect to a target (or the average if there are multiple targets).

  1. Transfers a status effect
    • ParamStatusEffects: Must be size 1. Status Effect and number of stacks to apply
  2. Transfers a random status from a list
    • ParamStatusEffects: If size is > 1. The list of Status effects that can be applied at random. Each entry is equally likely.
⚠️ **GitHub.com Fallback** ⚠️