forked from External/mage
Changes to kicker and multikicker, showing in log if spell was cast with kicker. Changed some effects and abilities to implement some cards.
This commit is contained in:
parent
c18345ef85
commit
c8d9006740
12 changed files with 272 additions and 29 deletions
|
|
@ -41,6 +41,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -76,6 +77,10 @@ public class AbilitiesImpl<T extends Ability> extends ArrayList<T> implements Ab
|
|||
rules.add(ability.getRule());
|
||||
}
|
||||
if (ability instanceof SpellAbility) {
|
||||
String kickerRule = getKickerRule(ability);
|
||||
if (!kickerRule.isEmpty()) {
|
||||
rules.add(kickerRule);
|
||||
}
|
||||
if (ability.getAlternativeCosts().size() > 0) {
|
||||
StringBuilder sbRule = new StringBuilder();
|
||||
for (AlternativeCost cost: ability.getAlternativeCosts()) {
|
||||
|
|
@ -113,6 +118,25 @@ public class AbilitiesImpl<T extends Ability> extends ArrayList<T> implements Ab
|
|||
return rules;
|
||||
}
|
||||
|
||||
private String getKickerRule(Ability ability) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int numberKicker = 0;
|
||||
for (Object cost : ability.getOptionalCosts()) {
|
||||
if (cost instanceof KickerManaCost) {
|
||||
if (numberKicker == 0) {
|
||||
sb.append(((KickerManaCost)cost).getText(true));
|
||||
} else {
|
||||
sb.append(" and/or ").append(((KickerManaCost)cost).getText(true));
|
||||
}
|
||||
++numberKicker;
|
||||
}
|
||||
}
|
||||
if (numberKicker > 0) {
|
||||
return "Kicker " + sb.toString() + " <i>(You may pay an additional " + sb.toString() + " as you cast this spell.)</i>";
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Abilities<ActivatedAbility> getActivatedAbilities(Zone zone) {
|
||||
Abilities<ActivatedAbility> zonedAbilities = new AbilitiesImpl<ActivatedAbility>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue