Enum SpellArg

java.lang.Object
java.lang.Enum<SpellArg>
net.demilich.metastone.game.spells.desc.SpellArg
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<SpellArg>, java.lang.constant.Constable

public enum SpellArg
extends java.lang.Enum<SpellArg>
This enum describes the keys to the SpellDesc / the keys of the dictionaries in the CardDesc card JSON files for spells.}

To see how a particular argument is interpreted, refer to the Java Spell class written in the CLASS field of the SpellDesc. For example, if you see the spell:

   {
     "class": "DrawCardSpell",
     "value": 1
   }
 
Observe that VALUE corresponds to the key "value" in this JSON. All the fields in the JSON in camelCase have a corresponding field name in UPPER_CASE. To see what "value" / VALUE means in this context, visit DrawCardSpell.

Observe that every SpellArg enum value is a key in the JSON for spell effects, except camelCased and surrounded by quotation marks. When you read documentation for Spell subclasses and you see a SpellArg referred to there, assume the documentation is telling you to write a camelCased version of the SpellArg into the JSON to get the effect you want. For example, if the documentation says that EXCLUSIVE, when set to true, does something, you'll write something like this in the JSON:

   {
     ...
     "exclusive": true
   }
 
Whenever a new entry is added here, a corresponding deserialization instruction must be authoered in DescDeserializer.init(DescDeserializer.SerializationContext). If a new type is added (the right hand side of the JSON key/value pair), a new ParseValueType needs to be added.
See Also:
for the formal type of the values of these enum keys.