forked from External/mage
Restructured Mage module
This commit is contained in:
parent
727d62babb
commit
46eb6c0525
1502 changed files with 11 additions and 9 deletions
|
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package mage.abilities.dynamicvalue.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.costs.mana.ManaCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.ColoredManaSymbol;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
/**
|
||||
* Each colored mana symbol (e.g. {U}) in the mana costs of permanents you
|
||||
* control counts toward your devotion to that color.
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class DevotionCount implements DynamicValue {
|
||||
|
||||
private ArrayList<ColoredManaSymbol> devotionColors = new ArrayList<>();
|
||||
|
||||
public DevotionCount(ColoredManaSymbol... devotionColor) {
|
||||
this.devotionColors.addAll(Arrays.asList(devotionColor));
|
||||
}
|
||||
|
||||
public DevotionCount(final DevotionCount dynamicValue) {
|
||||
this.devotionColors = dynamicValue.devotionColors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
int devotion = 0;
|
||||
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(sourceAbility.getControllerId())) {
|
||||
for (ManaCost manaCost : permanent.getManaCost()) {
|
||||
for (ColoredManaSymbol coloredManaSymbol : devotionColors) {
|
||||
if (manaCost.containsColor(coloredManaSymbol)) {
|
||||
devotion++;
|
||||
break; // count each manaCost maximum of one time (Hybrid don't count for multiple colors of devotion)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return devotion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DevotionCount copy() {
|
||||
return new DevotionCount(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "X";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
StringBuilder sb = new StringBuilder("your devotion to ");
|
||||
int count = 0;
|
||||
for (ColoredManaSymbol coloredManaSymbol : devotionColors) {
|
||||
if (count > 0) {
|
||||
sb.append(" and ");
|
||||
}
|
||||
sb.append(coloredManaSymbol.getColorName());
|
||||
count++;
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue