mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 13:02:06 -08:00
[VIS] Implement Matopi Golem (#11323)
fix Skeleton Scavengers & Soldevi Sentry, and refactor a common effect for all 3.
This commit is contained in:
parent
a37fc0589a
commit
5b58ff242b
7 changed files with 200 additions and 78 deletions
|
|
@ -0,0 +1,49 @@
|
|||
package mage.abilities.effects.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
|
||||
import mage.game.Game;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
* @author Susucr
|
||||
*/
|
||||
public class RegenerateSourceWithReflexiveEffect extends RegenerateSourceEffect {
|
||||
|
||||
private final ReflexiveTriggeredAbility reflexive;
|
||||
private final boolean setReflexiveTarget;
|
||||
|
||||
public RegenerateSourceWithReflexiveEffect(ReflexiveTriggeredAbility reflexive, boolean setReflexiveTarget) {
|
||||
super();
|
||||
this.reflexive = reflexive;
|
||||
this.reflexive.setTriggerPhrase("When it regenerates this way, ");
|
||||
this.setReflexiveTarget = setReflexiveTarget;
|
||||
this.staticText = "regenerate {this}. " + reflexive.getRule();
|
||||
}
|
||||
|
||||
protected RegenerateSourceWithReflexiveEffect(final RegenerateSourceWithReflexiveEffect effect) {
|
||||
super(effect);
|
||||
this.reflexive = effect.reflexive.copy();
|
||||
this.setReflexiveTarget = effect.setReflexiveTarget;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegenerateSourceWithReflexiveEffect copy() {
|
||||
return new RegenerateSourceWithReflexiveEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
if (super.apply(game, source)) {
|
||||
if (this.setReflexiveTarget) {
|
||||
reflexive.getEffects().setTargetPointer(
|
||||
new FixedTarget(targetPointer.getFirst(game, source), game)
|
||||
);
|
||||
}
|
||||
game.fireReflexiveTriggeredAbility(reflexive, source);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue