mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
*Com Deck editor basic lands handled.
*Preliminary commander damage blocking ai (not yet fully in effect)
This commit is contained in:
@@ -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());
|
||||
|
||||
|
||||
@@ -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("")) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user