forked from External/mage
Reworked Kicker.
This commit is contained in:
parent
4eccfa716c
commit
67ed36e315
18 changed files with 681 additions and 275 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue