@Override public MagicSet evaluate(GameState state, Identified thisObject) { MagicSet ret = new MagicSet(); for (Identified i : this.what.evaluate(state, thisObject).getAll(Identified.class)) ret.add(i.getName()); return ret; }
@Override public MagicSet evaluate(GameState state, Identified thisObject) { MagicSet ret = new MagicSet(); MagicSet what = this.what.evaluate(state, thisObject); auras: for (GameObject aura : state.getAllObjects()) { if (!aura.getSubTypes().contains(SubType.AURA)) continue; for (Keyword ability : aura.getKeywordAbilities()) if (ability.isEnchant()) { Enchant e = (Enchant) ability; MagicSet intermediate = new MagicSet(what); intermediate.retainAll(e.filter.evaluate(state, aura)); for (GameObject o : intermediate.getAll(GameObject.class)) if (!o.cantBeAttachedBy().match(state, thisObject, new MagicSet(aura))) { ret.add(aura); continue auras; } } } return ret; }
public static MagicSet get(GameState state) { MagicSet ret = new MagicSet(); for (GameObject o : state.battlefield()) if (-1 != o.getAttackingID()) ret.add(o); return ret; }