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); } }