diff --git a/CHANGES.txt b/CHANGES.txt
index 1b0b0ba1941..bc465235b9e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,4 @@
-Forge Beta: 03-##-2013 ver 1.3.10
+Forge Beta: 03-##-2013 ver 1.3.11
12### cards in total.
@@ -6,90 +6,11 @@ Forge Beta: 03-##-2013 ver 1.3.10
Release Notes:
-A new quest world by Serrasmurf based on Ravinca has been added.
-An effort is being made to implement the split cards (e.g. Fire/Ice) in Forge. The initial effort to add support for split cards may be considered complete and the relevant branch has reen reintegrated to trunk. Expect some rough edges and incompatibilities along the way.
-
-The fat packs should now be available for purchase in the quest mode card shop.
-
-Information for non-card items in spell shop are now shown in the card details panel.
-
-Multiple problems with Convoke have been fixed.
-
-Forge should now be the Magic rules enforcing program with the most supported cards! That means we finally beat MtGO! MtGO is missing 828 cards. Even subtracting the Power Nine, which were available in the MtGO cube for some time, that's more than we are missing (805) at the time this was written.
New Cards:
-Dimensional Breach
-Lim-Dul's Vault
-Eureka
-Hypergenesis
-Death by Dragons
-Carpet of Flowers
-Goblin Welder
-Delaying Shield
-Fatal Lore
-Library of Lat-Nam
-Misfortune
-Assault // Battery
-Fire // Ice
-Night // Day
-Trial // Error
-Wax // Wane
-Dead // Gone
-Illusion // Reality
-Life // Death
-Pure // Simple
-Rough // Tumble
-Supply // Demand
-Hide // Seek
-Order // Chaos
-Pain // Suffering
-Spite // Malice
-Stand // Deliver
-Boom // Bust
-Crime // Punishment
-Rise // Fall
-Bound // Determined
-Hit // Run
-Taniwha
-Natural Balance
-Balancing Act
-Odds // Ends
-Mana Clash
-Goblin Assassin
-Chain Lightning
-Chain of Vapor
-Vision Charm
-Ooze Flux
-Simic Manipulator
-Ashling the Pilgrim
-Inner-Flame Igniter
-Novijen Sages
-Trickbind
-Yare
-Mercadian Atlas
-
-
-New Phenomenons:
-
-
-
-
-New Planes:
-
-Feeding Grounds
-Horizon Boughs
-
-
-New Schemes:
-
-All in Good Time
-
-
-New Vanguard Avatars:
-
diff --git a/pom.xml b/pom.xml
index 0e5b54a11cf..b0f0c49fc9d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
forge
jar
Forge
- 1.3.10-SNAPSHOT
+ 1.3.11-SNAPSHOT
Forge lets you play the card game Magic: The Gathering against a computer opponent
using all of the rules.
diff --git a/res/cardsfolder/e/energy_field.txt b/res/cardsfolder/e/energy_field.txt
index 02df96acd45..935ce3c5a00 100644
--- a/res/cardsfolder/e/energy_field.txt
+++ b/res/cardsfolder/e/energy_field.txt
@@ -1,7 +1,7 @@
Name:Energy Field
ManaCost:1 U
Types:Enchantment
-T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Card.YouOwn | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ When a card is put into your graveyard from anywhere, sacrifice CARDNAME.
+T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Card.nonToken+YouOwn | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ When a card is put into your graveyard from anywhere, sacrifice CARDNAME.
SVar:TrigSac:AB$ Sacrifice | Cost$ 0 | Defined$ Self
S:Mode$ PreventDamage | Target$ You | Source$ Card.YouDontCtrl | Description$ Prevent all damage that would be dealt to you by sources you don't control.
SVar:RemAIDeck:True
diff --git a/res/cardsfolder/f/forbidden_crypt.txt b/res/cardsfolder/f/forbidden_crypt.txt
index 6894db4c3d0..50f118e5483 100644
--- a/res/cardsfolder/f/forbidden_crypt.txt
+++ b/res/cardsfolder/f/forbidden_crypt.txt
@@ -5,7 +5,7 @@ R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ Check
SVar:CheckLoseCondition:DB$ LosesGame | Defined$ You | ConditionCheckSVar$ CardsInGrave | ConditionSVarCompare$ EQ0 | SubAbility$ ForbiddenPractice
SVar:ForbiddenPractice:DB$ ChangeZone | Hidden$ True | Mandatory$ True | ChangeType$ Card.YouOwn | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Hand
SVar:CardsInGrave:Count$InYourYard
-R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.YouOwn | ReplaceWith$ CryptExile | Description$ If a card would be put into your graveyard from anywhere, exile that card instead.
+R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.nonToken+YouOwn | ReplaceWith$ CryptExile | Description$ If a card would be put into your graveyard from anywhere, exile that card instead.
SVar:CryptExile:AB$ ChangeZone | Cost$ 0 | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
SVar:RemAIDeck:True
SVar:RemRandomDeck:True
diff --git a/res/cardsfolder/w/wheel_of_sun_and_moon.txt b/res/cardsfolder/w/wheel_of_sun_and_moon.txt
index af405f05e61..df6a7eb22e2 100644
--- a/res/cardsfolder/w/wheel_of_sun_and_moon.txt
+++ b/res/cardsfolder/w/wheel_of_sun_and_moon.txt
@@ -3,7 +3,7 @@ ManaCost:GW GW
Types:Enchantment Aura
K:Enchant player
A:SP$ Attach | Cost$ GW GW | ValidTgts$ Player
-R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.OwnedBy Player.EnchantedBy | ReplaceWith$ Reveal | Description$ If a card would be put into enchanted player's graveyard from anywhere, instead that card is revealed and put on the bottom of that player's library.
+R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.nonToken+OwnedBy Player.EnchantedBy | ReplaceWith$ Reveal | Description$ If a card would be put into enchanted player's graveyard from anywhere, instead that card is revealed and put on the bottom of that player's library.
SVar:Reveal:AB$ ChangeZone | Cost$ 0 | Hidden$ True | Origin$ All | Destination$ Library | Defined$ ReplacedCard | LibraryPosition$ -1 | Reveal$ True
SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/wheel_of_sun_and_moon.jpg
diff --git a/res/cardsfolder/y/yawgmoths_agenda.txt b/res/cardsfolder/y/yawgmoths_agenda.txt
index 552b35eda9a..cc261f0784d 100644
--- a/res/cardsfolder/y/yawgmoths_agenda.txt
+++ b/res/cardsfolder/y/yawgmoths_agenda.txt
@@ -4,7 +4,7 @@ Types:Enchantment
S:Mode$ CantBeCast | ValidCard$ Card | Caster$ You | CheckSVar$ X | Description$ You can't cast more than one spell each turn.
SVar:X:Count$ThisTurnCast_Card.YouOwn
S:Mode$ Continuous | Affected$ Card.YouCtrl | AffectedZone$ Graveyard | AddHiddenKeyword$ May be played | Description$ You may play cards from your graveyard.
-R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.YouOwn | ReplaceWith$ Exile | Description$ If a card would be put into your graveyard from anywhere, exile it instead.
+R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.nonToken+YouOwn | ReplaceWith$ Exile | Description$ If a card would be put into your graveyard from anywhere, exile it instead.
SVar:Exile:AB$ ChangeZone | Cost$ 0 | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/yawgmoths_agenda.jpg
diff --git a/src/main/java/forge/card/spellability/SpellPermanent.java b/src/main/java/forge/card/spellability/SpellPermanent.java
index 4cb19cc6fc1..9c051f3742e 100644
--- a/src/main/java/forge/card/spellability/SpellPermanent.java
+++ b/src/main/java/forge/card/spellability/SpellPermanent.java
@@ -386,15 +386,11 @@ public class SpellPermanent extends Spell {
return super.canPlayAI();
}
- public static boolean checkETBEffects(final Card card, final SpellAbility sa, final ApiType api) {
- return checkETBEffects(card, sa, api, null);
- }
-
public static boolean checkETBEffects(final Card card, final AIPlayer ai) {
return checkETBEffects(card, null, null, ai);
}
- private static boolean checkETBEffects(final Card card, final SpellAbility sa, final ApiType api, final AIPlayer ai) {
+ public static boolean checkETBEffects(final Card card, final SpellAbility sa, final ApiType api, final AIPlayer ai) {
boolean rightapi = false;
if (card.isCreature()
diff --git a/src/main/java/forge/game/ai/AiController.java b/src/main/java/forge/game/ai/AiController.java
index 9f328ce0102..174cbc68cc3 100644
--- a/src/main/java/forge/game/ai/AiController.java
+++ b/src/main/java/forge/game/ai/AiController.java
@@ -144,11 +144,8 @@ public class AiController {
for (final Card c : all) {
for (final SpellAbility sa : c.getNonManaSpellAbilities()) {
if (sa instanceof SpellPermanent) {
- // TODO ArsenalNut (13 Oct 2012) added line to set activating player to fix NPE problem
- // in checkETBEffects. There is SpellPermanent.checkETBEffects where the player can be
- // directly input but it is currently a private method.
sa.setActivatingPlayer(player);
- if (SpellPermanent.checkETBEffects(c, sa, ApiType.Counter)) {
+ if (SpellPermanent.checkETBEffects(c, sa, ApiType.Counter, player)) {
spellAbilities.add(sa);
}
}