@Override public boolean apply(Game game, Ability source) { int value = 0; for(Cost cost : source.getCosts()){ if(cost instanceof SacrificeTargetCost){ value = ((SacrificeTargetCost)cost).getPermanents().get(0).getPower().getValue(); } } Token token = new OozeToken(value); token.getAbilities().newId(); // neccessary if token has ability like DevourAbility() token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); return true; } }
/** * @param emblem * @param sourceObject * @param toPlayerId controller and owner of the emblem */ @Override public void addEmblem(Emblem emblem, MageObject sourceObject, UUID toPlayerId) { Emblem newEmblem = emblem.copy(); newEmblem.setSourceObject(sourceObject); newEmblem.setControllerId(toPlayerId); newEmblem.assignNewId(); newEmblem.getAbilities().newId(); for (Ability ability : newEmblem.getAbilities()) { ability.setSourceId(newEmblem.getId()); } state.addCommandObject(newEmblem); }
@Override public boolean apply(Game game, Ability source) { int value = Integer.MIN_VALUE; for (Permanent permanent : game.getBattlefield().getAllActivePermanents(StaticFilters.FILTER_PERMANENT_CREATURE, source.getControllerId(), game)) { if (value < permanent.getToughness().getValue()) { value = permanent.getToughness().getValue(); } } Token token = new SpiritWarriorToken(value); token.getAbilities().newId(); // neccessary if token has ability like DevourAbility() token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); return true; }
@Override public boolean apply(Game game, Ability source) { int xValue = 0; for (Cost cost : source.getCosts()) { if (cost instanceof RemoveVariableCountersTargetCost) { xValue = ((RemoveVariableCountersTargetCost) cost).getAmount(); break; } } Token tokenCopy = token.copy(); tokenCopy.getAbilities().newId(); tokenCopy.getPower().modifyBaseValue(xValue); tokenCopy.getToughness().modifyBaseValue(xValue); tokenCopy.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); return true; } }
newPlane.setControllerId(toPlayerId); newPlane.assignNewId(); newPlane.getAbilities().newId(); for (Ability ability : newPlane.getAbilities()) { ability.setSourceId(newPlane.getId());