diff --git a/.gitattributes b/.gitattributes index c47b5c2e10a..ba88d6e25af 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6268,6 +6268,7 @@ res/cardsfolder/l/locust_swarm.txt svneol=native#text/plain res/cardsfolder/l/lodestone_bauble.txt svneol=native#text/plain res/cardsfolder/l/lodestone_golem.txt svneol=native#text/plain res/cardsfolder/l/lodestone_myr.txt svneol=native#text/plain +res/cardsfolder/l/logic_knot.txt -text res/cardsfolder/l/lone_missionary.txt svneol=native#text/plain res/cardsfolder/l/lone_revenant.txt -text res/cardsfolder/l/lone_wolf.txt -text @@ -7183,6 +7184,7 @@ res/cardsfolder/m/mystical_tutor.txt svneol=native#text/plain res/cardsfolder/m/mystifying_maze.txt svneol=native#text/plain res/cardsfolder/m/mythic_proportions.txt svneol=native#text/plain res/cardsfolder/mkzip.sh svneol=native#text/x-sh +res/cardsfolder/n/naar_isle.txt -text res/cardsfolder/n/nacatl_hunt_pride.txt svneol=native#text/plain res/cardsfolder/n/nacatl_outlander.txt svneol=native#text/plain res/cardsfolder/n/nacatl_savage.txt svneol=native#text/plain @@ -9464,6 +9466,7 @@ res/cardsfolder/s/selesnya_evangel.txt svneol=native#text/plain res/cardsfolder/s/selesnya_guildgate.txt -text res/cardsfolder/s/selesnya_guildmage.txt svneol=native#text/plain res/cardsfolder/s/selesnya_keyrune.txt -text +res/cardsfolder/s/selesnya_loft_gardens.txt -text res/cardsfolder/s/selesnya_sagittars.txt -text res/cardsfolder/s/selesnya_sanctuary.txt svneol=native#text/plain res/cardsfolder/s/selesnya_sentry.txt -text diff --git a/res/cardsfolder/l/logic_knot.txt b/res/cardsfolder/l/logic_knot.txt new file mode 100644 index 00000000000..2d52159bd0e --- /dev/null +++ b/res/cardsfolder/l/logic_knot.txt @@ -0,0 +1,9 @@ +Name:Logic Knot +ManaCost:X U U +Types:Instant +K:Delve +A:SP$ Counter | Announce$ X | Cost$ X U U | TargetType$ Spell | ValidTgts$ Card | UnlessCost$ X | UnlessPayer$ TargetedController | References$ X | SpellDescription$ Counter target spell unless its controller pays X. +SVar:X:Count$xPaid +SVar:Picture:http://www.wizards.com/global/images/magic/general/logic_knot.jpg +Oracle:Delve (You may exile any number of cards from your graveyard as you cast this spell. It costs {1} less to cast for each card exiled this way.)\nCounter target spell unless its controller pays {X}. +SetInfo:FUT Common \ No newline at end of file diff --git a/res/cardsfolder/n/naar_isle.txt b/res/cardsfolder/n/naar_isle.txt new file mode 100644 index 00000000000..9a6c6bb6099 --- /dev/null +++ b/res/cardsfolder/n/naar_isle.txt @@ -0,0 +1,12 @@ +Name:Naar Isle +ManaCost:no cost +Types:Plane Wildfire +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, put a flame counter on CARDNAME, then CARDNAME deals damage to you equal to the number of flame counters on it. +SVar:TrigPutCounter:AB$ PutCounter | Cost$ 0 | CounterType$ FLAME | CounterNum$ 1 | SubAbility$ DBDmg +SVar:DBDmg:DB$ DealDamage | Defined$ You | NumDmg$ Y | References$ Y +SVar:Y:Count$CardCounters.FLAME +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, CARDNAME deals 3 damage to target player. +SVar:RolledChaos:AB$ DealDamage | Cost$ 0 | ValidTgts$ Player | NumDmg$ 3 +SVar:Picture:http://www.wizards.com/global/images/magic/general/naar_isle.jpg +Oracle:At the beginning of your upkeep, put a flame counter on Naar Isle, then Naar Isle deals damage to you equal to the number of flame counters on it.\nWhenever you roll {C}, Naar Isle deals 3 damage to target player. +SetInfo:HOP Common \ No newline at end of file diff --git a/res/cardsfolder/s/selesnya_loft_gardens.txt b/res/cardsfolder/s/selesnya_loft_gardens.txt new file mode 100644 index 00000000000..1076a04aa43 --- /dev/null +++ b/res/cardsfolder/s/selesnya_loft_gardens.txt @@ -0,0 +1,11 @@ +Name:Selesnya Loft Gardens +ManaCost:no cost +Types:Plane Ravnica +Text:If an effect would put one or more tokens onto the battlefield, it puts twice that many of those tokens onto the battlefield instead.\r\nIf an effect would place one or more counters on a permanent, it places twice that many of those counters on that permanent instead. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll Chaos, until end of turn, whenever you tap a land for mana, add one mana to your mana pool of any type that land produced. +SVar:RolledChaos:AB$ Effect | Cost$ 0 | AILogic$ Always | Triggers$ TrigTapForMana | SVars$ TrigMana +SVar:TrigTapForMana:Mode$ TapsForMana | TriggerZones$ Command | ValidCard$ Land.YouCtrl | Execute$ TrigMana | Static$ True | TriggerDescription$ Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced. +SVar:TrigMana:AB$ ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Defined.Triggered | ReflectProperty$ Produced | Defined$ TriggeredPlayer +YouSVar:Picture:http://www.wizards.com/global/images/magic/general/selesnya_loft_gardens.jpg +Oracle:If an effect would put one or more tokens onto the battlefield, it puts twice that many of those tokens onto the battlefield instead.\nIf an effect would place one or more counters on a permanent, it places twice that many of those counters on that permanent instead.\nWhenever you roll {C}, until end of turn, whenever you tap a land for mana, add one mana to your mana pool of any type that land produced. +SetInfo:PC2 Common \ No newline at end of file diff --git a/src/main/java/forge/CounterType.java b/src/main/java/forge/CounterType.java index 7c38fb2565e..bedc09bc98f 100644 --- a/src/main/java/forge/CounterType.java +++ b/src/main/java/forge/CounterType.java @@ -32,6 +32,8 @@ public enum CounterType { AGE(), + AIM(), + ARROW(), ARROWHEAD(), @@ -70,8 +72,12 @@ public enum CounterType { DIVINITY(), + DREAM(), + DOOM(), + ECHO(), + ELIXIR(), ENERGY(), @@ -88,6 +94,8 @@ public enum CounterType { FILIBUSTER(), + FLAME(), + FLOOD(), FUNGUS(), @@ -108,6 +116,8 @@ public enum CounterType { HOURGLASS(), + HUNGER(), + ICE(), INFECTION(), @@ -134,6 +144,8 @@ public enum CounterType { M2M2("-2/-2"), + MAGNET(), + MANA(), MANNEQUIN(), @@ -149,6 +161,8 @@ public enum CounterType { MUSIC(), MUSTER(), + + NET(), OMEN(), @@ -178,9 +192,13 @@ public enum CounterType { P0P1("+0/+1"), + P0P2("+0/+2"), + P1P0("+1/+0"), P1P2("+1/+2"), + + P2P0("+2/+0"), P2P2("+2/+2"), diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index f3645808e37..44f3f0ba7aa 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -2790,7 +2790,9 @@ public class Player extends GameEntity implements Comparable { } public int getCounterDoublersMagnitude(final CounterType type) { - int counterDoublers = getCardsIn(ZoneType.Battlefield, "Doubling Season").size(); + int counterDoublers = getCardsIn(ZoneType.Battlefield, "Doubling Season").size() + + CardLists.filter(getGame().getCardsIn(ZoneType.Command), + CardPredicates.nameEquals("Selesnya Loft Gardens")).size(); if (type == CounterType.P1P1) { counterDoublers += getCardsIn(ZoneType.Battlefield, "Corpsejack Menace").size(); } @@ -2799,7 +2801,9 @@ public class Player extends GameEntity implements Comparable { public int getTokenDoublersMagnitude() { final int tokenDoublers = getCardsIn(ZoneType.Battlefield, "Parallel Lives").size() - + getCardsIn(ZoneType.Battlefield, "Doubling Season").size(); + + getCardsIn(ZoneType.Battlefield, "Doubling Season").size() + + CardLists.filter(getGame().getCardsIn(ZoneType.Command), + CardPredicates.nameEquals("Selesnya Loft Gardens")).size();; return 1 << tokenDoublers; // pow(a,0) = 1; pow(a,1) = a }