@Override public int calculate(Game game, Ability sourceAbility, Effect effect) { return this.calculate(game, sourceAbility.getControllerId()); }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { Ability spellAbility = abilityToModify; if (spellAbility != null) { OpponentsLostLifeCount dynamicValue = new OpponentsLostLifeCount(); int amount = dynamicValue.calculate(game, source, this); if (amount > 0) { CardUtil.reduceCost(spellAbility, amount); return true; } } return false; }
@Override public Mana produceMana(boolean netMana, Game game, Ability source) { return Mana.RedMana(new OpponentsLostLifeCount().calculate(game, source, this)); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getSourceId().equals(source.getSourceId())) { if (new OpponentsLostLifeCount().calculate(game, source, this) == 0) { return true; } } return false; } }
@Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanentEntering(source.getSourceId()); if (permanent != null) { int oll = new OpponentsLostLifeCount().calculate(game, source, this); if (oll > 0) { permanent.addCounters(CounterType.P1P1.createInstance(oll), source, game); } return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanentEntering(source.getSourceId()); if (permanent != null) { int oll = new OpponentsLostLifeCount().calculate(game, source, this); if (oll > 0) { permanent.addCounters(CounterType.P1P1.createInstance(oll), source, game); } return true; } return false; }