Reworked Kicker.

This commit is contained in:
LevelX2 2012-12-08 02:20:29 +01:00
parent 4eccfa716c
commit 67ed36e315
18 changed files with 681 additions and 275 deletions

View file

@ -28,10 +28,13 @@
package mage.abilities.dynamicvalue.common;
import mage.abilities.Ability;
import mage.abilities.costs.OptionalAdditionalCost;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.keyword.MultikickerAbility;
import mage.abilities.keyword.KickerAbility;
import mage.cards.Card;
import mage.game.Game;
import mage.game.permanent.Permanent;
/**
*
@ -44,14 +47,23 @@ public class MultikickerCount implements DynamicValue {
@Override
public int calculate(Game game, Ability source) {
Permanent permanent = game.getPermanent(source.getSourceId());
if (permanent != null) {
for (Ability ability : permanent.getAbilities()) {
if (ability instanceof MultikickerAbility) {
return ((MultikickerAbility)ability).getActivateCount();
}
int count = 0;
Card card = game.getCard(source.getSourceId());
if (card != null) {
KickerAbility kickerAbility = null;
for (Ability ability: card.getAbilities()) {
if (ability instanceof KickerAbility) {
kickerAbility = (KickerAbility) ability;
}
}
if (kickerAbility != null) {
for (OptionalAdditionalCost cost: kickerAbility.getKickerCosts()) {
count = cost.getActivateCount();
break;
}
}
return count;
}
return 0;
}