Merge pull request #6521 from emerald000/quartzwoodCrasher

Fix Quartzwood Crasher combat damage tracking.
This commit is contained in:
Oleg Agafonov 2020-05-07 15:49:31 +02:00 committed by GitHub
commit e424ad4522
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -50,7 +50,7 @@ public final class QuartzwoodCrasher extends CardImpl {
class QuartzwoodCrasherTriggeredAbility extends TriggeredAbilityImpl {
private final Set<UUID> damagedPlayerIds = new HashSet();
private final Set<UUID> damagedPlayerIds = new HashSet<>();
QuartzwoodCrasherTriggeredAbility() {
super(Zone.BATTLEFIELD, new QuartzwoodCrasherEffect(), false);
@ -78,17 +78,16 @@ class QuartzwoodCrasherTriggeredAbility extends TriggeredAbilityImpl {
damagedPlayerIds.clear();
return false;
}
if (event.getType() != GameEvent.EventType.DAMAGED_PLAYER
&& !((DamagedPlayerEvent) event).isCombatDamage()) {
return false;
}
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.isControlledBy(controllerId)
&& creature.getAbilities(game).containsKey(TrampleAbility.getInstance().getId())
&& !damagedPlayerIds.contains(event.getTargetId())) {
damagedPlayerIds.add(event.getTargetId());
this.getEffects().setTargetPointer(new FixedTarget(event.getTargetId(), game));
return true;
if (event.getType() == GameEvent.EventType.DAMAGED_PLAYER
&& ((DamagedPlayerEvent) event).isCombatDamage()) {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.isControlledBy(controllerId)
&& creature.hasAbility(TrampleAbility.getInstance().getId(), game)
&& !damagedPlayerIds.contains(event.getTargetId())) {
damagedPlayerIds.add(event.getTargetId());
this.getEffects().setTargetPointer(new FixedTarget(event.getTargetId(), game));
return true;
}
}
return false;
}
@ -127,7 +126,7 @@ class QuartzwoodCrasherEffect extends OneShotEffect {
class QuartzwoodCrasherWatcher extends Watcher {
private final Map<UUID, Map<UUID, Integer>> damageMap = new HashMap();
private final Map<UUID, Map<UUID, Integer>> damageMap = new HashMap<>();
QuartzwoodCrasherWatcher() {
super(WatcherScope.GAME);