mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
- Added Furnace Layer, Mirrored Depths and Kharasha Foothills(PC2 set is over 90% implemented)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user