- Added Furnace Layer, Mirrored Depths and Kharasha Foothills(PC2 set is over 90% implemented)

This commit is contained in:
swordshine
2013-06-01 00:43:15 +00:00
parent ef6d584f0a
commit 735bcaef21
8 changed files with 70 additions and 7 deletions

View File

@@ -815,6 +815,10 @@ public class AbilityUtils {
}
}
}
} else if (defined.startsWith("OppNonTriggered")) {
players.addAll(sa.getActivatingPlayer().getOpponents());
players.removeAll(getDefinedPlayers(card, defined.substring(6), sa));
} else if (defined.startsWith("Replaced")) {
final SpellAbility root = sa.getRootAbility();
Object o = null;
@@ -857,11 +861,9 @@ public class AbilityUtils {
}
}
}
} else if (defined.equals("NonReplacedPlayer")) {
final SpellAbility root = sa.getRootAbility();
Player p = (Player) root.getReplacingObject("Player");
players.addAll(sa.getActivatingPlayer().getGame().getPlayers());
players.remove(p);
} else if (defined.startsWith("NonReplaced")) {
players.addAll(game.getPlayers());
players.removeAll(getDefinedPlayers(card, defined.substring(3), sa));
} else if (defined.equals("EnchantedController")) {
if (card.getEnchantingCard() == null) {
return players;

View File

@@ -15,6 +15,7 @@ import forge.Card;
import forge.CardCharacteristicName;
import forge.CardLists;
import forge.Command;
import forge.GameEntity;
import forge.card.CardRulesPredicates;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
@@ -57,6 +58,11 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
final Card hostCard = sa.getSourceCard();
final Game game = hostCard.getGame();
final ArrayList<String> keywords = new ArrayList<String>();
if (sa.hasParam("Optional")) {
if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, "Copy this permanent?")) {
return;
}
}
if (sa.hasParam("Keywords")) {
keywords.addAll(Arrays.asList(sa.getParam("Keywords").split(" & ")));
}
@@ -244,6 +250,14 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
if (sa.hasParam("RememberCopied")) {
hostCard.addRemembered(copy);
}
if (sa.hasParam("Tapped")) {
copy.setTapped(true);
}
if (sa.hasParam("CopyAttacking")) {
final GameEntity defender = (GameEntity) AbilityUtils.getDefinedPlayers(hostCard,
sa.getParam("CopyAttacking"), sa).get(0);
game.getCombat().addAttacker(copy, defender);
}
}
if (wasInAlt) {

View File

@@ -99,5 +99,6 @@ public class TriggerAttacks extends Trigger {
@Override
public final void setTriggeringObjects(final SpellAbility sa) {
sa.setTriggeringObject("Attacker", this.getRunParams().get("Attacker"));
sa.setTriggeringObject("Defender", this.getRunParams().get("Attacked"));
}
}

View File

@@ -746,8 +746,10 @@ public class AiController {
int numCards = sa.hasParam("NumCards") ? AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumCards"), sa) : 1;
// AI shouldn't mill itself
return numCards < player.getZone(ZoneType.Library).size();
case CopyPermanent:
//TODO: add logic here
return true;
default:
}