Class OverkillSpell
java.lang.Object
net.demilich.metastone.game.spells.Spell
net.demilich.metastone.game.spells.DamageSpell
net.demilich.metastone.game.spells.OverkillSpell
- All Implemented Interfaces:
Serializable
,HasDesc<SpellDesc>
This spell implements the new Overkill mechanic introduced in Rastakhan's Rumble. It's meant to happen when something
kills a minion by dealing more damage than it has health.
The spell can serve both as a DamageSpell
if it has a SpellArg.VALUE
in its spelldesc, or just simply
as a way to simply check the state of a minion and fire the spell appropriately
Example: on a minion with "Overkill: Draw 2 Cards":
"trigger": { "eventTrigger": { "class": "DamageCausedTrigger", "hostTargetType": "IGNORE_OTHER_SOURCES" }, "spell": { "class": "OverkillSpell", "spell": { "class": "DrawCardSpell", "value": 2 } } }Example: on a Spell with "Deal 3 damage. Overkill: Summon a 5/5 Devilsaur."
"spell": { "class": "OverkillSpell", "value": 3, "spell": { "class": "SummonSpell", "card": "token_devilsaur" } }
If the desc has the SpellArg.EXCLUSIVE
arg set to true, the excess damage will be passed into the spell's
SpellArg.VALUE
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class net.demilich.metastone.game.spells.DamageSpell
cast, create, create, create, create, create, getDamage, getDamageType
Methods inherited from class net.demilich.metastone.game.spells.Spell
castForPlayer, checkArguments, getDesc, isNativeStateful, setDesc, toString
-
Constructor Details
-
OverkillSpell
public OverkillSpell()
-
-
Method Details
-
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.- Overrides:
onCast
in classDamageSpell
- 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:
-