GEMP/Tech Doc/Effect Types

From LOTR-TCG Wiki
< GEMP‎ | Tech Doc
GEMP > Tech Doc > Effect Types

In the LotR-TCG, actions are made up of "activities", which manifest as either costs or effects.

The definitions for json hooks are located within /gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/EffectFieldProcessor.java

Such activities are the top-level definition of any type of card game text. Every card (that has non-keyword game text) will contain one or more of the following definitions within its costs and/or effects fields.


activated[edit]

Standard special abilities, usually indicated by bold text such as Skirmish:. See Gimli, Son of Gloin (1R13) .

Parameters:

  • phase
    • Required.
    • Array of one or more Phase strings representing which phase(s) the ability can be activated in.
  • condition
    • Optional.
    • Array of one or more Condition definitions further restricting when the ability can be used ("Spot an Elf to...").
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.
  • limitPerPhase
    • Optional.
    • Integer. Defaults to 0 (meaning no limit).
    • Limits how many times per phase the action can be invoked.
  • limitPerTurn
    • Optional.
    • Integer. Defaults to 0 (meaning no limit).
    • Limits how many times per turn the action can be invoked.
  • text
    • Optional.
    • String. Defaults to "".
    • This is only used in situations where a card has multiple actions in the same phase (such as the Gollum, Dark as Darkness (9R+28) Shadow and Regroup actions). The user will be prompted with a choice for each one to select, and the text here will be in the prompt.


"effects": {
  "type": "activated",
  "phase": ["fellowship"],
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "self"
    }
  ],
  "effect": [
    {
      "type": "heal",
      "filter": "choose(culture(elven),ally)"
    }
  ],
  "limitPerPhase": 1,
  "limitPerTurn": 2,
  "text": "Spot an elf and exert this to heal an [elven] ally."
}


activatedindiscard[edit]

Same as activated above, except the ability is available while the card is in the discard pile. Typically this effect is used to play the card itself, but this is only a convention. See Ordnance Grunt (13R117) .

Parameters:

  • phase
    • Required.
    • Array of one or more Phase strings representing which phase(s) the ability can be activated in.
  • condition
    • Optional.
    • Array of one or more Condition definitions further restricting when the ability can be used ("Spot an Elf to...").
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.
  • limitPerPhase
    • Optional.
    • Integer. Defaults to 0 (meaning no limit).
    • Limits how many times per phase the action can be invoked.
  • limitPerTurn
    • Optional.
    • Integer. Defaults to 0 (meaning no limit).
    • Limits how many times per turn the action can be invoked.
  • text
    • Optional.
    • String. Defaults to "".
    • This is only used in situations where a card has multiple actions in the same phase (such as the Gollum, Dark as Darkness (9R+28) Shadow and Regroup actions). The user will be prompted with a choice for each one to select, and the text here will be in the prompt.


"effects": {
  "type": "activatedindiscard",
  "phase": ["fellowship"],
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "self"
    }
  ],
  "effect": [
    {
      "type": "heal",
      "filter": "choose(culture(elven),ally)"
    }
  ],
  "limitPerPhase": 1,
  "limitPerTurn": 2,
  "text": "Spot an elf and exert this to heal an [elven] ally."
}

activatedtrigger[edit]

Used to represent Response actions where the timing is based on a trigger, yet the player has to choose to manually activate it as many times as they like as a response. Typically this will often result in something similar to a "Each time" trigger, especially if the effect self-discards or otherwise restricts itself to one activation, but not always. See The Pale Blade (1R221) .

Parameters:

  • trigger
    • Required.
    • Array of one or more Trigger definitions
  • condition
    • Optional.
    • Array of one or more Condition definitions restricting when the response ability can be used ("Spot an Elf to...").
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.


"effects": {
  "type": "trigger",
  "trigger": {
    "type": "winsSkirmish",
    "filter": "nazgul",
    "against": "hobbit",
    "memorize": "winner",
    "memorizeInvolving": "theHobbit"
  },
  "optional": true,
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "memory(winner)"
    }
  ],
  "effect": [
    {
      "type": "wound",
      "filter": "choose(culture(elven),ally)"
    }
  ],
}

aidcost[edit]

Used exclusively by Followers with the Aid keyword to store the cost of transferring that Follower to a Companion during the Maneuver phase. See Celebring, Elven-smith (18R7) .

Parameters:

  • cost
    • Required
    • Array of one or more Cost definitions that must be paid for the Follower to be transferred.


"effects": {
  "type": "aidcost",
  "cost": [
    {
      "type": "exert",
      "filter": "choose(companion)"
    }
  ],
}

copycard[edit]

Used when one card is copying the game text of another, such as Silinde, Elf of Mirkwood (1U60) .

Parameters:

  • filter
    • Required
    • String of a Filter definition for the card to copy.


"effects": {
  "type": "copycard",
  "filter": "your,site,siteNumber(3),siteBlock(fellowship)"
}

discardedfromplaytrigger[edit]

Used if a card is to self-trigger based on itself being discarded. This also triggers upon being killed, if the card in question is a minion (allies and companions of course go to the Dead Pile, and do not trigger this). If your card needs to trigger based on another card being discarded, make a standard trigger with a type of "discarded" or "aboutToDiscard". See Orc Footman (12C93) .

Parameters:

  • optional
    • Optional.
    • Boolean true/false value indicating whether the player is allowed to decline (usually represented in game text as "you may"). If false, the action is mandatory and cannot be passed. Default: false.
  • condition
    • Optional.
    • Array of one or more Condition definitions restricting when the response ability can be used ("Spot an Elf to...").
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.


"effects": {
  "type": "discardedfromplaytrigger",
  "optional": true,
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "choose(minion)"
    }
  ],
  "effect": [
    {
      "type": "wound",
      "filter": "choose(culture(elven),ally)"
    }
  ],
}

discount[edit]

A mostly-disused effect type that was developed for the aborted Second Edition cards. The effect defines a one-time discount which is performed based on actions taken, similar to Toil but with broader effects. This effect type is designed in such a way that multiple kinds of discount actions might be defined, but only one was ever completed.

Parameters:

  • amount
    • Required.
    • Value definition that defines the maximum discount that might be applied (if the card's cost - the maximum discount is greater than the current twilight pool, the card of course cannot be played).
  • discount
    • Required.
    • String switch used to define different types of discounts. Must be one of the following values:
      • discardFromHand (case-sensitive).
  • filter
    • Required for discardFromHand discount types.
    • String of a Filter definition for which types of card may be discarded from hand to discount the card. Defaults to "any".


"effects": {
  "type": "discount",
  "amount": {
    "type": "forEachInHand",
    "filter": "culture(moria),goblin"
  },
  "discount": {
    "type": "discardFromHand",
    "filter": "culture(moria),goblin"
  }
}

event[edit]

Used if the card in question is an event, and so should have this effect triggered immediately upon playing. See Defiance (1C37) .

Parameters:

  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.
  • requiresRanger


"effects": {
  "type": "event",
  "cost": [
    {
      "type": "exert",
      "filter": "ranger"
    }
  ],
  "effect": [
    {
      "type": "wound",
      "filter": "choose(minion)"
    }
  ],
  "requiresRanger": true
}

extracost[edit]

Used in any situation where a card has a "To play" clause that does not involve passively spotting (in such cases, add a CanSpot condition to the top level of the card itself instead). See Wizard Storm (2U48)

Parameters:

  • cost
    • Required
    • Array of one or more Cost definitions.


"effects": {
  "type": "extracost",
  "cost": [
    {
      "type": "exert",
      "filter": "ranger"
    }
  ]
}

extrapossessionclass[edit]

Used for implementing "this possession may be borne in addition to 1 other hand weapon". See Hand Axe (2C10)

Parameters:

  • attachedTo
    • Optional
    • String of a Filter definition for which types of bearer can hold the extra item; if the bearer does not meet this filter then it must be the only item of that class held by the bearer. Defaults to "any".


"effects": {
  "type": "extrapossessionclass",
  "attachedTo": "any"
}

inhandtrigger[edit]

Used if the card is not a response event and yet needs to be able to react to triggers in play as if it were one. See The Witch-king, Black Lord (12R183) .

Parameters:

  • trigger
    • Required.
    • Array of one or more Trigger definitions that this card will react to while in hand.
  • condition
    • Optional.
    • Array of one or more Condition definitions that must be met for this effect to trigger.
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions that must be fulfilled for the rest of the effect to be used.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.


"effects": {
  "type": "inhandtrigger",
  "trigger": {
    "type": "winsSkirmish",
    "filter": "nazgul",
    "against": "hobbit",
    "memorize": "winner",
    "memorizeInvolving": "theHobbit"
  },
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "memory(winner)"
    }
  ],
  "effect": [
    {
      "type": "wound",
      "filter": "choose(culture(elven),ally)"
    }
  ],
}

killedtrigger[edit]

Used if a card is to self-trigger based on itself being killed. If your card needs to trigger based on another card being discarded, make a standard trigger with a type of "killed" or "aboutToBeKilled". See Freca, Hungry Savage (9R+2) .

Parameters:

  • optional
    • Optional.
    • Boolean true/false value indicating whether the player is allowed to decline (usually represented in game text as "you may"). If false, the action is mandatory and cannot be passed. Default: false.
  • condition
    • Optional.
    • Array of one or more Condition definitions restricting when the response ability can be used ("Spot an Elf to...").
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.


"effects": {
  "type": "killedtrigger",
  "optional": true,
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "choose(minion)"
    }
  ],
  "effect": [
    {
      "type": "wound",
      "filter": "choose(culture(elven),ally)"
    }
  ],
}

modifier[edit]

modifyowncost[edit]

playedinotherphase[edit]

responseevent[edit]

trigger[edit]

Used to represent arbitrary triggers, usually game text in the form of "When" or "Each Time". These actions respond to specific types of game effects, and so their timing is quite variable. See The Witch-king, Lord of the Nazgul (2R85) .

Parameters:

  • trigger
    • Required.
    • Array of one or more Trigger definitions
  • optional
    • Optional.
    • Boolean true/false value indicating whether the player is allowed to decline (usually represented in game text as "you may"). If false, the action is mandatory and cannot be passed. Default: false.
  • condition
    • Optional.
    • Array of one or more Condition definitions.
  • cost
    • Required, unless effect is defined.
    • Array of one or more Cost definitions.
  • effect
    • Required, unless cost is defined.
    • Array of one or more Effect definitions.
  • text
    • Optional.
    • String. Defaults to "".
    • This is only used in situations where a card has multiple triggers keying off of the same stimulus. The user will be prompted with a choice for which one to select, and the text here will be in the prompt.


"effects": {
  "type": "trigger",
  "trigger": {
    "type": "winsSkirmish",
    "filter": "nazgul",
    "against": "hobbit",
    "memorize": "winner",
    "memorizeInvolving": "theHobbit"
  },
  "optional": true,
  "condition": [
    {
      "type": "canSpot",
      "filter": "elf",
      "count": 1
    }
  ],
  "cost": [
    {
      "type": "exert",
      "filter": "memory(winner)"
    }
  ],
  "effect": [
    {
      "type": "wound",
      "filter": "choose(culture(elven),ally)"
    }
  ],
  "text": "Exert the winning Nazgul to wound an [elven] ally?"
}