Class SetAttackSpell
- All Implemented Interfaces:
Serializable
,HasDesc<SpellDesc>
target
's attack-related attributes such that the result of Actor.getAttack()
or Card.getAttack()
is equal to the SpellArg.VALUE
.
When SpellArg.EXCLUSIVE
is true
(default), temporary and conditional attack bonuses are removed. This
means that minions with conditional attack bonuses like Tar Creeper (+2 Attack during the opponent's turn) will be
lost by this effect.
When SpellArg.EXCLUSIVE
is false
, the Attribute.BASE_ATTACK
of the target
is changed.
This makes it immune to silencing. This may be an appropriate way to implement a Jade Golem effect of increasing base
stats, but is not currently used anywhere.
The Attribute.ATTACK_BONUS
of the target is always removed.
For example, to create a one-one copy of all friendly minions, SetAttackSpell
is commonly used with
SetHpSpell
:
{ "class": "SummonSpell", "target": "FRIENDLY_MINIONS", "spell": { "class": "MetaSpell", "target": "OUTPUT", "spells": [ { "class": "SetAttackSpell", "value": 1 }, { "class": "SetHpSpell", "value": 1 } ] } }To set a target's attack to its current health:
{ "class": "SetAttackSpell", "value": { "class": "AttributeValueProvider", "attribute": "HP" } }To implement "Enrage: +2 Attack", do not use
SetAttackSpell
.- See Also:
-
for the corresponding effect for hitpoints.
to make a temporary attack bonus.
to add a permanent attack bonus.
to implement Enrage effects related to attack bonuses.
to enforce a Lightspawn-like effect where the minion's attack always equals its hitpoints after damage effects have been resolved.
- Serialized Form
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class net.demilich.metastone.game.spells.Spell
cast, castForPlayer, checkArguments, getDesc, isNativeStateful, setDesc, toString
-
Constructor Details
-
SetAttackSpell
public SetAttackSpell()
-
-
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:
-