* Kabira Evangel - Fixed that if the triggered ability triggered multiple times during one turn, it did not work correctly for different colors.

This commit is contained in:
LevelX2 2016-01-28 23:48:55 +01:00
parent 9c3eb5d392
commit 35845448e1
3 changed files with 18 additions and 18 deletions

View file

@ -75,7 +75,8 @@ public class GainAbilityAllEffect extends ContinuousEffectImpl {
public GainAbilityAllEffect(Ability ability, Duration duration, FilterPermanent filter, boolean excludeSource, Layer layer, SubLayer subLayer) {
super(duration, layer, subLayer, Outcome.AddAbility);
this.ability = ability;
this.ability = ability.copy();
this.ability.newId();
this.filter = filter;
this.excludeSource = excludeSource;
}
@ -160,12 +161,10 @@ public class GainAbilityAllEffect extends ContinuousEffectImpl {
} else {
sb.append(" have ");
}
} else if (filter.getMessage().toLowerCase().startsWith("each")) {
sb.append(" gains ");
} else {
if (filter.getMessage().toLowerCase().startsWith("each")) {
sb.append(" gains ");
} else {
sb.append(" gain ");
}
sb.append(" gain ");
}
if (quotes) {
sb.append("\"");

View file

@ -55,7 +55,7 @@ public class GainProtectionFromColorAllEffect extends GainAbilityAllEffect {
public GainProtectionFromColorAllEffect(final GainProtectionFromColorAllEffect effect) {
super(effect);
choice = effect.choice;
this.choice = effect.choice.copy();
}
@Override
@ -65,10 +65,10 @@ public class GainProtectionFromColorAllEffect extends GainAbilityAllEffect {
@Override
public boolean apply(Game game, Ability source) {
FilterCard protectionFilter = (FilterCard)((ProtectionAbility)ability).getFilter();
FilterCard protectionFilter = (FilterCard) ((ProtectionAbility) ability).getFilter();
protectionFilter.add(new ColorPredicate(choice.getColor()));
protectionFilter.setMessage(choice.getChoice());
((ProtectionAbility)ability).setFilter(protectionFilter);
((ProtectionAbility) ability).setFilter(protectionFilter);
return super.apply(game, source);
}
@ -77,22 +77,23 @@ public class GainProtectionFromColorAllEffect extends GainAbilityAllEffect {
super.init(source, game);
MageObject sourceObject = game.getObject(source.getSourceId());
Player controller = game.getPlayer(source.getControllerId());
if(sourceObject != null && controller != null) {
if (sourceObject != null && controller != null) {
choice.clearChoice();
while(!choice.isChosen()) {
while (!choice.isChosen()) {
controller.choose(Outcome.Protect, choice, game);
if(!controller.canRespond()) {
if (!controller.canRespond()) {
return;
}
}
if(choice.isChosen() && !game.isSimulation()) {
game.informPlayers(sourceObject.getLogName() + ": " + controller.getLogName() + " has chosen protection from " + choice.getChoice()); }
if (choice.isChosen() && !game.isSimulation()) {
game.informPlayers(sourceObject.getLogName() + ": " + controller.getLogName() + " has chosen protection from " + choice.getChoice());
}
}
}
@Override
public String getText(Mode mode) {
if(staticText != null && !staticText.isEmpty()) {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}