Class DrawCardSpell
java.lang.Object
net.demilich.metastone.game.spells.Spell
net.demilich.metastone.game.spells.DrawCardSpell
- All Implemented Interfaces:
Serializable
,HasDesc<SpellDesc>
- Direct Known Subclasses:
DrawCardAndDoSomethingSpell
Draws
SpellArg.VALUE
cards from the top of the player's deck.
Casts the SpellArg.SPELL
sub-spell with the newly drawn card as the EntityReference.OUTPUT
.
The method used to draw cards from the deck will trigger fatigue damage if the deck is empty. If an effect puts a card into the deck on the (n-1)th sub spell just before attempting the n-th draw, this spell will draw it correctly.
For example, to draw a card and set its cost to 1:
{ "class": "DrawCardSpell", "spell": { "class": "CardCostModifierSpell", "target": "OUTPUT", "cardCostModifier": { "class": "CardCostModifier", "target": "SELF", "operation": "SET", "value": 1 } } }Observe that the target of the
"CardCostModifierSpell"
subspell is EntityReference.OUTPUT
, which is the card that you actually drew.-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class net.demilich.metastone.game.spells.Spell
cast, castForPlayer, checkArguments, getDesc, isNativeStateful, setDesc, toString
-
Constructor Details
-
DrawCardSpell
public DrawCardSpell()
-
-
Method Details
-
create
-
create
-
onCast
protected void onCast(GameContext context, Player player, SpellDesc desc, Entity source, Entity target) Description copied from class:Spell
Implementations ofonCast
are the meat-and-bones of a spell's effects. This should actually call a variety of methods inGameLogic
, generate cards usingSpellUtils.getCards(GameContext, Player, Entity, Entity, SpellDesc)
, interpretSpellArg
keys in thedesc
, etc.Observe that subclasses of
Spell
mostly just need to implement this function. Also, observe that instances ofSpell
are stateless: all the state is provided as arguments to this function.- Specified by:
onCast
in classSpell
- Parameters:
context
- The game contextplayer
- The casting playerdesc
- The collection ofSpellArg
keys and values that are interpreted by the implementation of this function to actually cause effects in a gamesource
- The entity from which this effect is happening (typically a card or a minion if it's a battlecry).target
- The particular target of this invocation of the spell. When a spell hits multiple targets, like an AoE damage effect, this method is called once for each target in the list of targets.- See Also:
-