*Com Deck editor basic lands handled.

*Preliminary commander damage blocking ai (not yet fully in effect)
This commit is contained in:
Hellfish
2013-08-21 05:30:28 +00:00
parent 7dfde0aba3
commit 66de7141d9
3 changed files with 31 additions and 2 deletions

View File

@@ -1877,6 +1877,15 @@ public class Card extends GameEntity implements Comparable<Card> {
if(this.isCommander)
{
sb.append(this.getOwner().getName() + "'s Commander\r\n");
for(Player p : getOwner().getGame().getPlayers()) {
if(p.equals(getOwner()))
continue;
Map<Card,Integer> map = p.getCommanderDamage();
if(map.containsKey(this)) {
sb.append("Damage to " + p.getName() + ": "+ map.get(p) + "\r\n");
}
}
}
sb.append(this.getAbilityText());

View File

@@ -310,6 +310,25 @@ public class ComputerUtilCombat {
for (final Card attacker : attackers) {
final List<Card> blockers = combat.getBlockers(attacker);
if(attacker.isCommander())
{
int possibleCommanderDamage = attacker.getCurrentPower();
int currentCommanderDamage = ai.getCommanderDamage().containsKey(attacker) ? ai.getCommanderDamage().get(attacker) : 0;
if(blockers.size() > 0) {
if(attacker.getKeyword().contains("Trample")) {
for(Card b : blockers) {
possibleCommanderDamage -= b.getCurrentToughness();
}
}
else {
possibleCommanderDamage = 0;
}
}
if(possibleCommanderDamage + currentCommanderDamage >= 21)
return true;
}
if (blockers.size() == 0) {
if (!attacker.getSVar("MustBeBlocked").equals("")) {

View File

@@ -112,9 +112,10 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
if ((item == null) || !(item instanceof PaperCard) || toAlternate) {
return;
}
if(controller.getModel().getMain().contains((PaperCard)item)
if((controller.getModel().getMain().contains((PaperCard)item)
|| controller.getModel().getOrCreate(DeckSection.Sideboard).contains((PaperCard)item)
|| controller.getModel().getOrCreate(DeckSection.Commander).contains((PaperCard)item)) {
|| controller.getModel().getOrCreate(DeckSection.Commander).contains((PaperCard)item))
&& !((PaperCard)item).getRules().getType().isBasic()) {
return;
}