/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package mage.watchers.common; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.UUID; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.watchers.Watcher; /** * * @author LevelX2 */ public class PermanentsSacrificedWatcher extends Watcher { private final HashMap<UUID, List<Permanent>> sacrificedPermanents = new HashMap<>(); public PermanentsSacrificedWatcher() { super(PermanentsSacrificedWatcher.class.getSimpleName(), WatcherScope.GAME); } public PermanentsSacrificedWatcher(final PermanentsSacrificedWatcher watcher) { super(watcher); } @Override public PermanentsSacrificedWatcher copy() { return new PermanentsSacrificedWatcher(this); } @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SACRIFICED_PERMANENT) { Permanent perm = game.getPermanentOrLKIBattlefield(event.getTargetId()); if (perm != null) { List<Permanent> permanents; if (!sacrificedPermanents.containsKey(perm.getControllerId())) { permanents = new ArrayList<>(); sacrificedPermanents.put(perm.getControllerId(), permanents); } else { permanents = sacrificedPermanents.get(perm.getControllerId()); } permanents.add(perm); } } } @Override public void reset() { super.reset(); sacrificedPermanents.clear(); } public List<Permanent> getThisTurnSacrificedPermanents(UUID playerId) { return sacrificedPermanents.get(playerId); } }