Class CardDesc
- All Implemented Interfaces:
- Serializable,- Cloneable,- HasEntrySet<CardDescArg,,- Object> - AbstractEnchantmentDesc<Enchantment>
 All types of cards are encoded as a CardDesc; spells, secrets, hero cards, hero powers, minions, etc. This
 class should only store the data related to the card, not card functionality itself.
 
 Each of the fields in this class correspond exactly to the fields in a .json file located in the 
 cards directory. A card JSON looks like:
 
           {
             "name": "Angry Primate",
             "baseManaCost": 1,
             "type": "MINION",
             "heroClass": "ANY",
             "baseAttack": 1,
             "baseHp": 2,
             "rarity": "COMMON",
             "race": "BEAST",
             "description": "Battlecry: Add a Banana to your hand.",
  line 63:   "battlecry": {
               "targetSelection": "NONE",
               "spell": {
                 "class": "ReceiveCardSpell",
  line 67:       "cards": [
                   "spell_bananas"
                 ]
               }
             },
  line 72:   "attributes": {
               "BATTLECRY": true
             },
             "collectible": true,
             "set": "CUSTOM",
             "fileFormatVersion": 1
           }
 
 Observe that each of the keys in the JSON, or the text matching the quotation marks, matches a field in this class.
 So "name" corresponds to the name field, "battlecry" corresponds to the battlecry
 field, etc.
 
 To figure out the format of the value of complex objects like "battlecry" on line 63 in the example above, look at
 the type of the field in this class. In the case of battlecry, the type is a OpenerDesc, and it
 appears to also have fields that exactly correspond to the keys that appear in the JSON object that is the value of
 "battlecry."
 
 Some objects, like "spell", are Desc classes: these use a corresponding "argument" enumeration to
 determine the names and types of the fields. In the case of SpellDesc, the keys are SpellArg names,
 except written in camelCase. In the example of Angry Primate above, the "cards" key on line 67 inside
 the SpellDesc corresponds to the SpellArg.CARDS enum name. Observe that "cards" is just
 SpellArg.CARDS except lowercase.
 
 The only exception to this rule is the AttributeMap object located on line 72 in the example above. The keys
 (left hand part in quotation marks of the JSON object) should always be capitalized, and correspond exactly to the
 names in Attribute.
- 
Nested Class SummaryNested classes/interfaces inherited from interface net.demilich.metastone.game.cards.desc.HasEntrySetHasEntrySet.BfsEnum, HasEntrySet.BfsNode<T extends Enum,V> 
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionclone()create()entrySet()This makes it possible to iterate through a CardDesc.com.hiddenswitch.spellsource.rpc.Spellsource.ArtgetArt()Represents a key-value collection ofAttribute.getAura()The aura that is active whenever the actor is in a in-play zone (Spellsource.ZonesMessage.Zones.BATTLEFIELD,Spellsource.ZonesMessage.Zones.WEAPON,Spellsource.ZonesMessage.Zones.HERO).AuraDesc[]getAuras()The auras that are active whenever the actor is in play.Indicates the author of this card.intThe base attack of the minion.intThe base HP of the minion.intThe base mana cost of the card.Specifies the minion, hero or weapon's battlecry.A card cost modifier that is active whenever the actor is in play.Indicates the battlecry that will be played when Fandral Staghelm is in play, if thisSpellsource.CardTypeMessage.CardType.MINIONhaschooseOneBattlecriesspecified.Indicates the spell card that will be cast when Fandral Staghelm is in play, if this is aSpellsource.CardTypeMessage.CardType.CHOOSE_ONEcard.Whenever aSpellsource.CardTypeMessage.CardType.MINIONhas choose one battlecries, the player will be given an option of which battlecry will be played for the minion.String[]Whenever the card is aSpellsource.CardTypeMessage.CardType.CHOOSE_ONEand this field is specified, the player will get to choose between these two cards for their effects.booleanTheConditionthat must be met in order for thisSpellsource.CardTypeMessage.CardType.SPELLto be playable.intIndicates the number of times thequesttrigger needs to fire until this quest'sspellis cast.intIndicates the amount of damage thisSpellsource.CardTypeMessage.CardType.WEAPONwill deal (add to the attack of the equippingHero).Specifies the minion, hero or weapon's deathrattle.Indiciates anEnchantmentthat is active while the card is in the player'sSpellsource.ZonesMessage.Zones.DECK.A description of the card that should be rendered in the client.intIndicates the durability of thisSpellsource.CardTypeMessage.CardType.WEAPON.intIndicates the version of this card description.Stores flavor text provided by the author.Indicates anEnchantmentthat is active as soon as the game begins (just afterGameLogic.handleMulligan(Player, boolean, List), in theGameLogic.startGameForPlayer(Player)phase.Iterates through the most important conditions on the card, heuristically.getGroup()Indicates the subspells/subcards of thisSpellsource.CardTypeMessage.CardType.GROUP.getHero()The hero class this card belongs to.String[]For tri-class cards from the MSOG Hearthstone expansion, this field contains their three classes.Indicates aSpellsource.CardTypeMessage.CardType.HERO_POWERthat thisSpellsource.CardTypeMessage.CardType.HEROshould put into play for the player.getId()The ID of the card when referred to by other cards and other places in the game engine.Indicates whether this card will participate in the determination of legacy mechanics, the storing of data about cards across all matches.Indicates an amount the card's cost should be subtracted by while the card is in the player's hand.getName()The name of the card that should be rendered in the client.Indicates a spell that should be cast when the weapon enters the battlefield/an in-play zone, regardless of how it is put into play (i.e., unlike a battlecry, which is only activated by cards played from the hand).Indicates a spell taht shoudl be cast when the weapon exits the battlefield/an in-play zone, regardless of how it is removed.Describes anEnchantmentthat is active while the card is in the player'sSpellsource.ZonesMessage.Zones.HAND.Describes an array ofEnchantments that are active while the card is in the player'sSpellsource.ZonesMessage.Zones.HAND.getQuest()Indicates theEventTriggerthat will increase the number of fires of the quest by one.getRace()The actor's race, or "tribe."com.hiddenswitch.spellsource.rpc.Spellsource.RarityMessage.RarityThe rarity of the card.String[]Indicates theEventTriggerfor this secret.getSet()The set this card belongs to.String[]getSets()getSpell()Indicates the spell that thisSpellsource.CardTypeMessage.CardType.SPELLorSpellsource.CardTypeMessage.CardType.HERO_POWERshould cast whenCard.play().Indicates what kind of target selection thisSpellsource.CardTypeMessage.CardType.SPELLorSpellsource.CardTypeMessage.CardType.HERO_POWERhas.com.hiddenswitch.spellsource.rpc.Spellsource.Tooltip[]Specifies tooltips for this card.Specifies the minion, hero, or weapon'sEnchantmentthat become active when the actor goes into an in-play zone (Spellsource.ZonesMessage.Zones.BATTLEFIELD,Spellsource.ZonesMessage.Zones.WEAPON,Spellsource.ZonesMessage.Zones.HERO).Multipletriggerobjects that should come into play whenever the actor comes into an in-play zone.com.hiddenswitch.spellsource.rpc.Spellsource.CardTypeMessage.CardTypegetType()The type of card this instance describes.getWiki()Stores notes about the card's implementation or behaviour.booleanIndicates whether or not the card should appear in discovers and in the collection browser.booleanbooleanIndicates whether, based on the code written on this card, this card ever reveals itself.setArt(com.hiddenswitch.spellsource.rpc.Spellsource.Art art) voidsetAttributes(AttributeMap attributes) voidvoidvoidvoidsetBaseAttack(int baseAttack) voidsetBaseHp(int baseHp) voidsetBaseManaCost(int baseManaCost) voidsetBattlecry(OpenerDesc battlecry) voidsetCardCostModifier(CardCostModifierDesc cardCostModifier) voidsetChooseBothBattlecry(OpenerDesc chooseBothBattlecry) voidsetChooseBothCardId(String chooseBothCardId) voidsetChooseOneBattlecries(OpenerDesc[] chooseOneBattlecries) voidsetChooseOneCardIds(String[] chooseOneCardIds) voidsetCollectible(boolean collectible) voidsetCondition(ConditionDesc condition) voidsetCountByValue(boolean countByValue) voidsetCountUntilCast(int countUntilCast) voidsetDamage(int damage) voidsetDeathrattle(SpellDesc deathrattle) voidsetDeckTrigger(EnchantmentDesc deckTrigger) voidsetDeckTriggers(EnchantmentDesc[] deckTriggers) voidsetDescription(String description) voidsetDurability(int durability) voidsetDynamicDescription(DynamicDescriptionDesc[] dynamicDescription) voidsetFileFormatVersion(int fileFormatVersion) voidvoidsetGameTriggers(EnchantmentDesc[] gameTriggers) setGlowConditions(List<Condition> glowConditions) voidvoidvoidsetHeroClass(String heroClass) voidsetHeroClasses(String[] heroClasses) voidsetHeroPower(String heroPower) voidvoidvoidsetManaCostModifier(ValueProviderDesc manaCostModifier) voidvoidsetOnEquip(SpellDesc onEquip) voidsetOnUnequip(SpellDesc onUnequip) voidsetPassiveTrigger(EnchantmentDesc passiveTrigger) voidsetPassiveTriggers(EnchantmentDesc[] passiveTriggers) voidsetQuest(EventTriggerDesc quest) voidvoidsetRarity(com.hiddenswitch.spellsource.rpc.Spellsource.RarityMessage.Rarity rarity) voidsetSecondPlayerBonusCards(String[] secondPlayerBonusCards) voidsetSecret(EventTriggerDesc secret) voidvoidvoidvoidsetTargetSelection(TargetSelection targetSelection) voidsetTargetSelectionCondition(ConditionDesc targetSelectionCondition) voidsetTargetSelectionOverride(TargetSelection targetSelectionOverride) setTooltips(com.hiddenswitch.spellsource.rpc.Spellsource.Tooltip[] tooltips) voidsetTrigger(EnchantmentDesc trigger) voidsetTriggers(EnchantmentDesc[] triggers) voidsetType(com.hiddenswitch.spellsource.rpc.Spellsource.CardTypeMessage.CardType type) voidtryCreate(GameContext context, Player player, Entity effectSource, Card enchantmentSource, Entity host, boolean force) Methods inherited from class java.lang.Objectequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.demilich.metastone.game.cards.desc.HasEntrySetbfs
- 
Constructor Details- 
CardDescpublic CardDesc()
 
- 
- 
Method Details- 
create- Returns:
- A card.
 
- 
getCollectiblepublic boolean getCollectible()
- 
clone
- 
getIdThe ID of the card when referred to by other cards and other places in the game engine.Typically, the ID is not specified inside the card file. It is assumed to be the file name of the card file, minus the JSON extension. For example, the card minion_bloodfen_raptor.jsonwill have its ID field assigned tominion_bloodfen_raptor.IDs should not be changed after a public server release is made, even when there is a misspelling or other issue. Player's inventories store references to the underlying cards using the IDs, and changing the IDs will damage those references. The Spellsourcemigrations system provides a mechanism for changing IDs of cards after they have been given to players; see thenetmodule'sSpellsourceclass for details.
- 
setId
- 
getNameThe name of the card that should be rendered in the client. The name is also used for some card mechanics, like The Caverns Below. The name can be overridden byAttribute.NAMEon the card entity.
- 
setName
- 
getDescriptionA description of the card that should be rendered in the client. This field does not support formatting specifiers like bolding, italics, etc.
- 
setDescription
- 
getLegacyIndicates whether this card will participate in the determination of legacy mechanics, the storing of data about cards across all matches.- See Also:
 
- 
setLegacy
- 
getTypepublic com.hiddenswitch.spellsource.rpc.Spellsource.CardTypeMessage.CardType getType()The type of card this instance describes.
- 
getHeroClassThe hero class this card belongs to.Choose HeroClass.ANYfor a neutral card.
- 
setHeroClass
- 
getHeroClassesFor tri-class cards from the MSOG Hearthstone expansion, this field contains their three classes. Typically uninteresting to use for custom cards.
- 
setHeroClasses
- 
getRaritypublic com.hiddenswitch.spellsource.rpc.Spellsource.RarityMessage.Rarity getRarity()The rarity of the card. UseSpellsource.RarityMessage.Rarity.FREEfor tokens, andSpellsource.RarityMessage.Rarity.ALLIANCEforlegacycards.
- 
getSetThe set this card belongs to. Unless the card's author designed this card in the context of a greater set, useCardSet.CUSTOMfor community cards.Eventually, a set will be immutable and represent a particular release or expansion, while a DeckFormatwill represent a certain set of rules of play.
- 
getSets
- 
setSet
- 
getBaseManaCostpublic int getBaseManaCost()The base mana cost of the card. All cards should have this field set, even if they are virtual / non-acting cards. Use0as the cost of those cards.Choice cards for Spellsource.CardTypeMessage.CardType.CHOOSE_ONEcards andSpellsource.CardTypeMessage.CardType.MINIONcards with choose-one battlecries that transform into anotherMinionshould have the same cost as the parent card. For example, the choice card of Wrath should still have Wrath's cost, not0.
- 
setBaseManaCostpublic void setBaseManaCost(int baseManaCost) 
- 
isCollectiblepublic boolean isCollectible()Indicates whether or not the card should appear in discovers and in the collection browser. Choose one choice cards, virtual choice cards, tokens, base heroes, and previous versions of other cards ("unnerfed" cards) should not be collectible.
- 
setCollectiblepublic void setCollectible(boolean collectible) 
- 
getAttributesRepresents a key-value collection ofAttribute.AttributeMapis aMaptype, so in JSON, it will be represented by a bracketed object.For example, a spell with lifesteal will have a field "attributes"that looks like:"attributes": { "LIFESTEAL": true }Not all attributes areBoolean. For example, anAttribute.OVERLOADcard that reads, "Overload: 3" will have a value equal to amount of overload the card will give:"attributes": { "OVERLOAD": 3 }
- 
setAttributes
- 
getFileFormatVersionpublic int getFileFormatVersion()Indicates the version of this card description. Defaults to1. When new expansions are released, this number should be incremented for the new cards to help the game record traces and reproduce bugs (only the cards that were around for a particular release of the code should participate in a game trace's lookup of cards in theCardCatalogue, for example).
- 
setFileFormatVersionpublic void setFileFormatVersion(int fileFormatVersion) 
- 
getManaCostModifierIndicates an amount the card's cost should be subtracted by while the card is in the player's hand.For example, to decrease the card's cost for each other card in the player's hand, the "manaCostModifier"field in theCardDescwould look like:"manaCostModifier": { "class": "PlayerAttributeValueProvider", "offset": -1, "playerAttribute": "HAND_COUNT", "targetPlayer": "SELF" }
- 
setManaCostModifier
- 
getPassiveTriggerDescribes anEnchantmentthat is active while the card is in the player'sSpellsource.ZonesMessage.Zones.HAND.For example, to reduce the cost of a card each turn the card is in the player's hand, the "passiveTrigger"field should look like:"passiveTrigger": { "eventTrigger": { "class": "TurnStartTrigger", "targetPlayer": "SELF" }, "spell": { "class": "CardCostModifierSpell", "target": "SELF", "cardCostModifier": { "class": "CardCostModifier", "target": "SELF", "value": 1, "operation": "SUBTRACT" } } }- See Also:
 
- 
setPassiveTrigger
- 
getPassiveTriggersDescribes an array ofEnchantments that are active while the card is in the player'sSpellsource.ZonesMessage.Zones.HAND.Arrays in JSON are specified using []. Place what you would ordinarily put in the value part (to the right of the colon) forpassiveTriggerinto the brackets here. For example:"passiveTriggers": [ { ... }, { ... } ]
- 
setPassiveTriggers
- 
getDeckTriggerIndiciates anEnchantmentthat is active while the card is in the player'sSpellsource.ZonesMessage.Zones.DECK.
- 
setDeckTrigger
- 
getGameTriggersIndicates anEnchantmentthat is active as soon as the game begins (just afterGameLogic.handleMulligan(Player, boolean, List), in theGameLogic.startGameForPlayer(Player)phase.Note that the GameStartEventis raised twice, once for each player, so yourEventTriggerDescshould specify aEventTriggerArg.TARGET_PLAYER.For example, consider the text, "Passive: You draw an extra card at the start of every turn." A passive is implemented as a game trigger, and typically it puts another enchantment into play. Observe that the GameStartTriggeris used to do something when the game starts, while the actual effect is implemented by a different enchantment:"gameTriggers": [{ "eventTrigger": { "class": "GameStartTrigger", "targetPlayer": "SELF" }, "spell": { "class": "AddEnchantmentSpell", "trigger": { "eventTrigger": { "class": "TurnStartTrigger", "targetPlayer": "SELF" }, "spell": { "class": "DrawCardSpell" } } } }]
- 
setGameTriggers
- 
getAuthorIndicates the author of this card.This field will be migrated to indicate where this username originated from (e.g., Discord versus Reddit versus Spellsource). 
- 
setAuthor
- 
getFlavorStores flavor text provided by the author.
- 
setFlavor
- 
getWikiStores notes about the card's implementation or behaviour. Use this field to explain surprising rules or to do a FAQ.This field will be migrated to support Markdown syntax in the future for better rendering controls in the client. 
- 
getHero
- 
setWiki
- 
getBattlecrySpecifies the minion, hero or weapon's battlecry.Battlecries are always executed whenever the Cardis played from the hand.In order to be counted as a "Battlecry" minion, the card's attributesmust contain aAttribute.BATTLECRYkey withtrue.- See Also:
 
- 
setBattlecry
- 
getDeathrattleSpecifies the minion, hero or weapon's deathrattle.- See Also:
 
- 
setDeathrattle
- 
getTriggerSpecifies the minion, hero, or weapon'sEnchantmentthat become active when the actor goes into an in-play zone (Spellsource.ZonesMessage.Zones.BATTLEFIELD,Spellsource.ZonesMessage.Zones.WEAPON,Spellsource.ZonesMessage.Zones.HERO).Spellsource.CardTypeMessage.CardType.HERO_POWERshould have itspassiveTriggerorpassiveTriggersfields set instead of this one, because hero powers behave like an extension of your hand and not like a place in the battlefield.
- 
setTrigger
- 
getTriggersMultipletriggerobjects that should come into play whenever the actor comes into an in-play zone.
- 
setTriggers
- 
getAuraThe aura that is active whenever the actor is in a in-play zone (Spellsource.ZonesMessage.Zones.BATTLEFIELD,Spellsource.ZonesMessage.Zones.WEAPON,Spellsource.ZonesMessage.Zones.HERO).Cardentities do not support auras, since they are not in play.Auras describe ongoing effects on other cards. They are updated at the end of a sequence (i.e., when actors are removed from the battlefield) and whenever the "board" (the three in-play zones) change. Updated means the affected actors are recalculated. Auras are appropriate for effects like Ironwood Golem, which reads "Taunt. Can only attack if you have 3 or more Armor.": "aura": { "class": "AttributeAura", "target": "SELF", "condition": { "class": "AttributeCondition", "target": "FRIENDLY_HERO", "value": 3, "attribute": "ARMOR", "operation": "LESS" }, "attribute": "AURA_CANNOT_ATTACK", "secondaryTrigger": { "class": "ArmorChangedTrigger", "targetPlayer": "SELF" } }Observe that this aura, anAttributeAura, has a condition to indicate when the specified attribute should or should not be present on the target (EntityReference.SELF). Also observe that the attribute is prefixed withAURA_indicating that, as opposed to an effect that is applied once (e.gAttribute.CANNOT_ATTACK), it is an "aura" effect, and it won't be removed by a silence.- See Also:
 
- 
setAura
- 
getAurasThe auras that are active whenever the actor is in play.
- 
setAuras
- 
getRaceThe actor's race, or "tribe."
- 
setRace
- 
getCardCostModifierA card cost modifier that is active whenever the actor is in play.
- 
setCardCostModifier
- 
getBaseAttackpublic int getBaseAttack()The base attack of the minion. This will be theActor.getBaseAttack()value.
- 
setBaseAttackpublic void setBaseAttack(int baseAttack) 
- 
getBaseHppublic int getBaseHp()The base HP of the minion. This will be theActor.getBaseHp()value.
- 
setBaseHppublic void setBaseHp(int baseHp) 
- 
getChooseOneBattlecriesWhenever aSpellsource.CardTypeMessage.CardType.MINIONhas choose one battlecries, the player will be given an option of which battlecry will be played for the minion.Typically, choose one battlecries that put a "different" minion into play will be implemented using a TransformMinionSpell. In this common situation, the client will render the choice card as theSpellArg.CARDargument of the spell, i.e., the minion the base minion will transform into.The SpellArg.CARDspecified by the transform spell should not becollectible.
- 
setChooseOneBattlecries
- 
getChooseBothBattlecryIndicates the battlecry that will be played when Fandral Staghelm is in play, if thisSpellsource.CardTypeMessage.CardType.MINIONhaschooseOneBattlecriesspecified.
- 
setChooseBothBattlecry
- 
getChooseOneCardIdsWhenever the card is aSpellsource.CardTypeMessage.CardType.CHOOSE_ONEand this field is specified, the player will get to choose between these two cards for their effects. The choice card is put into theSpellsource.ZonesMessage.Zones.SET_ASIDE_ZONE, cast, and then put intoSpellsource.ZonesMessage.Zones.REMOVED_FROM_PLAY, while the base card is moved to theSpellsource.ZonesMessage.Zones.GRAVEYARD.These choice cards should not be collectible.
- 
setChooseOneCardIds
- 
getChooseBothCardIdIndicates the spell card that will be cast when Fandral Staghelm is in play, if this is aSpellsource.CardTypeMessage.CardType.CHOOSE_ONEcard.
- 
setChooseBothCardId
- 
getDamagepublic int getDamage()Indicates the amount of damage thisSpellsource.CardTypeMessage.CardType.WEAPONwill deal (add to the attack of the equippingHero).
- 
setDamagepublic void setDamage(int damage) 
- 
getDurabilitypublic int getDurability()Indicates the durability of thisSpellsource.CardTypeMessage.CardType.WEAPON.
- 
setDurabilitypublic void setDurability(int durability) 
- 
getOnEquipIndicates a spell that should be cast when the weapon enters the battlefield/an in-play zone, regardless of how it is put into play (i.e., unlike a battlecry, which is only activated by cards played from the hand).Contemporaneously, such effects are better implemented by aura.
- 
setOnEquip
- 
getOnUnequipIndicates a spell taht shoudl be cast when the weapon exits the battlefield/an in-play zone, regardless of how it is removed.Contemporaneously, such effects are better implemented by aura.
- 
setOnUnequip
- 
getHeroPowerIndicates aSpellsource.CardTypeMessage.CardType.HERO_POWERthat thisSpellsource.CardTypeMessage.CardType.HEROshould put into play for the player.
- 
setHeroPower
- 
getTargetSelectionIndicates what kind of target selection thisSpellsource.CardTypeMessage.CardType.SPELLorSpellsource.CardTypeMessage.CardType.HERO_POWERhas. Any choice other thanTargetSelection.NONEwill prompt the user to pick a target as filtered by thespellfield'sSpellArg.FILTERfield.For example, to indicate a spell should prompt the user to choose any Murloc on the battlefield: "targetSelection": "MINIONS", "spell": { "class": "...", "filter": { "class": "RaceFilter", "race": "MURLOC" }, "..." }Observe that a"target"ofEntityReference.ALL_MINIONSis not specified on the"spell"field; the target is set to the player's choice, as filtered by"filter".
- 
setTargetSelection
- 
getSpellIndicates the spell that thisSpellsource.CardTypeMessage.CardType.SPELLorSpellsource.CardTypeMessage.CardType.HERO_POWERshould cast whenCard.play().For Spellsource.CardTypeMessage.CardType.SPELLthat contain asecretorquestfield set, this spell is cast when the secret or quest is activated.
- 
setSpell
- 
getConditionTheConditionthat must be met in order for thisSpellsource.CardTypeMessage.CardType.SPELLto be playable.
- 
setCondition
- 
getGroupIndicates the subspells/subcards of thisSpellsource.CardTypeMessage.CardType.GROUP.Used for Adaptation effects. 
- 
setGroup
- 
getSecretIndicates theEventTriggerfor this secret.
- 
setSecret
- 
getQuestIndicates theEventTriggerthat will increase the number of fires of the quest by one.
- 
setQuest
- 
getCountUntilCastpublic int getCountUntilCast()Indicates the number of times thequesttrigger needs to fire until this quest'sspellis cast.
- 
isCountByValuepublic boolean isCountByValue()
- 
setCountUntilCastpublic void setCountUntilCast(int countUntilCast) 
- 
getTooltipspublic com.hiddenswitch.spellsource.rpc.Spellsource.Tooltip[] getTooltips()Specifies tooltips for this card.If Spellsource.Tooltip.getKeywordsList()is written on a card's tooltip, the game will make the tooltip appear wherever the keyword appears in any card'sgetDescription().
- 
setGlowConditions
- 
entrySetThis makes it possible to iterate through a CardDesc.- Specified by:
- entrySetin interface- HasEntrySet<CardDescArg,- Object> 
- Returns:
- An entry set for this instance.
 
- 
getDeckTriggers
- 
getGlowConditionsIterates through the most important conditions on the card, heuristically.This includes spell conditions ( getCondition(), opener conditionsOpenerDesc.getCondition(),ComboSpelland condition arguments specified on subspells.- Returns:
- A stream.
 
- 
revealsSelfpublic boolean revealsSelf()Indicates whether, based on the code written on this card, this card ever reveals itself.- Returns:
- trueif any spell written on the card is a- RevealCardSpellwith target- EntityReference.SELF
 
- 
getDynamicDescription
- 
getSecondPlayerBonusCards
- 
setSecondPlayerBonusCards
- 
getTargetSelectionCondition
- 
getTargetSelectionOverride
- 
setTargetSelectionCondition
- 
setTargetSelectionOverride
- 
setCountByValuepublic void setCountByValue(boolean countByValue) 
- 
setDeckTriggers
- 
setSets
- 
setDynamicDescription
- 
setHero
- 
getEnchantmentDescs
- 
tryCreatepublic Optional<Enchantment> tryCreate(GameContext context, Player player, Entity effectSource, Card enchantmentSource, Entity host, boolean force) - Specified by:
- tryCreatein interface- AbstractEnchantmentDesc<Enchantment>
 
- 
getArtpublic com.hiddenswitch.spellsource.rpc.Spellsource.Art getArt()
 
-