mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
fixed issue 38
This commit is contained in:
parent
5c39d9e884
commit
658c4fc236
2 changed files with 16 additions and 20 deletions
|
|
@ -53,11 +53,13 @@ public class RegenerateSourceEffect extends ReplacementEffectImpl<RegenerateSour
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
//20110204 - 701.11
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (permanent != null) {
|
||||
permanent.setTapped(true);
|
||||
permanent.removeFromCombat(game);
|
||||
permanent.removeAllDamage(game);
|
||||
this.used = true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -75,7 +77,8 @@ public class RegenerateSourceEffect extends ReplacementEffectImpl<RegenerateSour
|
|||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
if (event.getType() == EventType.DESTROY_PERMANENT && event.getAmount() == 0 && event.getTargetId().equals(source.getSourceId())) {
|
||||
//20110204 - 701.11c - event.getAmount() is used to signal if regeneration is allowed
|
||||
if (event.getType() == EventType.DESTROY_PERMANENT && event.getAmount() == 0 && event.getTargetId().equals(source.getSourceId()) && !this.used) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,15 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl<RegenerateTar
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
//20110204 - 701.11
|
||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
permanent.setTapped(true);
|
||||
permanent.removeFromCombat(game);
|
||||
permanent.removeAllDamage(game);
|
||||
this.used = true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -63,29 +72,13 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl<RegenerateTar
|
|||
|
||||
@Override
|
||||
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
|
||||
if ( source.getFirstTarget().equals(event.getTargetId())) {
|
||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
permanent.setTapped(true);
|
||||
permanent.removeFromCombat(game);
|
||||
permanent.removeAllDamage(game);
|
||||
this.used = true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return apply(game, source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
boolean eventApplies = (event.getType() == EventType.DAMAGE_CREATURE ||
|
||||
event.getType() == EventType.DAMAGED_CREATURE ||
|
||||
event.getType() == EventType.DESTROYED_PERMANENT ||
|
||||
event.getType() == EventType.DESTROY_PERMANENT);
|
||||
eventApplies &= (event.getAmount() >= 0 &&
|
||||
event.getTargetId().equals(source.getTargets().get(0).getFirstTarget()) &&
|
||||
!this.used);
|
||||
if (eventApplies) {
|
||||
//20110204 - 701.11c - event.getAmount() is used to signal if regeneration is allowed
|
||||
if (event.getType() == EventType.DESTROY_PERMANENT && event.getAmount() == 0 && event.getTargetId().equals(source.getFirstTarget()) && !this.used) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue