Battle for Zendikar spoiler season
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Battle for Zendikar spoiler season
by KrazyTheFox » 18 Sep 2015, 21:53
I've uploaded the card images to cardforge.link so they should be available when the cards themselves are.
Edit: Also added images for tokens/products and the editions file.
Edit2 3 4: Also knocked the number of cards left to implement down to 15 13 12.
Edit: Also added images for tokens/products and the editions file.
Edit
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Battle for Zendikar spoiler season
by Marek14 » 19 Sep 2015, 06:04
Thanks, Krazy for taking over while I slept
- Code: Select all
Name:Nettle Drone
ManaCost:2 R
Types:Creature Eldrazi Drone
PT:3/1
K:Devoid
A:AB$ DealDamage | Cost$ T | Defined$ Player.Opponent | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to each opponent.
T:Mode$ SpellCast | ValidCard$ Card.Colorless | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever you cast a colorless spell, untap Nettle Drone.
SVar:TrigUntap:AB$Untap | Cost$ 0 | Defined$ Self
SVar:Picture:http://www.wizards.com/global/images/magic/general/nettle_drone.jpg
Oracle:Devoid (This card has no color.)\n{T}: Nettle Drone deals 1 damage to each opponent.\nWhenever you cast a colorless spell, untap Nettle Drone.
- Code: Select all
Name:Serpentine Spike
ManaCost:5 R R
Types:Sorcery
K:Devoid
A:SP$ DealDamage | Cost$ 5 R R | ValidTgts$ Creature | TgtPrompt$ Select target creature to deal 2 damage to | NumDmg$ 2 | RememberDamaged$ True | SubAbility$ DBDamageTwo | SpellDescription$ CARDNAME deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead.
SVar:DBDamageTwo:DB$ DealDamage | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select another target creature to deal 3 damage to | NumDmg$ 3 | RememberDamaged$ True | TargetUnique$ True | SubAbility$ DBDamageThree
SVar:DBDamageThree:DB$ DealDamage | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select another target creature to deal 4 damage to | NumDmg$ 4 | RememberDamaged$ True | TargetUnique$ True | SubAbility$ DBPumpAll
SVar:DBPumpAll:DB$ PumpAll | KW$ HIDDEN If CARDNAME would be put into a graveyard, exile it instead. | ValidCards$ Creature.IsRemembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Picture:http://www.wizards.com/global/images/magic/general/serpentine_spike.jpg
Oracle:Devoid (This card has no color.)\nSerpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead.
- Code: Select all
Name:Touch of the Void
ManaCost:2 R
Types:Sorcery
K:Devoid
A:SP$ DealDamage | Cost$ 5 R R | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 3 | RememberDamaged$ True | SubAbility$ DBPumpAll | SpellDescription$ CARDNAME deals 3 damage to target creature or player. If a creature dealt damage this way would die this turn, exile it instead.
SVar:DBPumpAll:DB$ PumpAll | KW$ HIDDEN If CARDNAME would be put into a graveyard, exile it instead. | ValidCards$ Creature.IsRemembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Picture:http://www.wizards.com/global/images/magic/general/touch_of_the_void.jpg
Oracle:Devoid (This card has no color.)\nTouch of the Void deals 3 damage to target creature or player. If a creature dealt damage this way would die this turn, exile it instead.
- Code: Select all
Name:Akoum Stonewaker
ManaCost:1 R
Types:Creature Human Shaman
PT:2/1
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Landfall — Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step.
SVar:TrigToken:AB$Token | Cost$ 2 R | TokenAmount$ 1 | TokenName$ Elemental | TokenTypes$ Creature,Elemental | TokenOwner$ You | TokenColors$ Red | TokenPower$ 3 | TokenToughness$ 1 | TokenImage$ r 3 1 elemental bfz | TokenKeywords$ Trample & Haste | TokenSVars$ AkoumEOT | RememberTokens$ True | SubAbility$ DelTrig
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End Of Turn | Execute$ TrigExile | RememberObjects$ Remembered | TriggerDescription$ CARDNAME - Exile the token at the beginning of the next end step. | SubAbility$ DBCleanup | AILogic$ Always
SVar:TrigExile:AB$ ChangeZone | Cost$ 0 | Defined$ DelayTriggerRemembered | Origin$ Battlefield | Destination$ Exile
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:AkoumEOT:SVar:EndOfTurnLeavePlay:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/akoum_stonewaker.jpg
Oracle:Landfall — Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step.
- Code: Select all
Name:Reckless Cohort
ManaCost:1 R
Types:Creature Human Warrior Ally
PT:2/2
S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME attacks each combat if able. | CheckSVar$ X | SVarCompare$ EQ0 | Description$ CARDNAME attacks each combat if able unless you control another Ally.
SVar:X:Count$Valid Ally.Other+YouCtrl
SVar:BuffedBy:Ally
SVar:Picture:http://www.wizards.com/global/images/magic/general/reckless_cohort.jpg
Oracle:Reckless Cohort attacks each combat if able unless you control another Ally.
Last edited by Marek14 on 19 Sep 2015, 07:58, edited 2 times in total.
Re: Battle for Zendikar spoiler season
by Marek14 » 19 Sep 2015, 06:30
- Code: Select all
Name:Unnatural Aggression
ManaCost:2 G
Types:Instant
K:Devoid
A:SP$ Pump | Cost$ 2 G | AILogic$ Fight | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | SubAbility$ DBFight | StackDescription$ None | SpellDescription$ Target creature you control fights another target creature.
SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.OppCtrl | RememberObjects$ Targeted | SubAbility$ DBPumpAll | TgtPrompt$ Choose target creature to fight the first target
SVar:DBPumpAll:DB$ PumpAll | KW$ HIDDEN If CARDNAME would be put into a graveyard, exile it instead. | ValidCards$ Creature.IsRemembered+OppCtrl | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Picture:http://www.wizards.com/global/images/magic/general/unnatural_aggression.jpg
Oracle:Devoid (This card has no color.)\nTarget creature you control fights target creature an opponent controls. If the creature an opponent controls would die this turn, exile it instead.
- Code: Select all
Name:Infuse with the Elements
ManaCost:3 G
Types:Instant
A:SP$ PutCounter | Cost$ 3 G | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ X | References$ X | SubAbility$ DBPump | Converge — Put X +1/+1 counters on target creature, where X is the number of colors of mana spent to cast CARDNAME. That creature gains trample until end of turn.
SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Trample
SVar:X:Count$Converge
SVar:Picture:http://www.wizards.com/global/images/magic/general/infuse_with_the_elements.jpg
Oracle:Converge — Put X +1/+1 counters on target creature, where X is the number of colors of mana spent to cast Infuse with the Elements. That creature gains trample until end of turn.
Re: Battle for Zendikar spoiler season
by Marek14 » 19 Sep 2015, 07:49
- Code: Select all
Name:Hedron Blade
ManaCost:1
Types:Artifact Equipment
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Equipped creature gets +1/+1.
T:Mode$ Blocks | ValidCard$ Card.EquippedBy | ValidBlocked$ Creature.Colorless | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature becomes blocked by one or more colorless creatures, it gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.)
T:Mode$ AttackerBlocked | ValidCard$ Card.EquippedBy | ValidBlocker$ Creature | Execute$ TrigPump2 | Secondary$ True | TriggerDescription$ Whenever equipped creature becomes blocked by one or more colorless creatures, it gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.)
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredBlocker | KW$ Deathtouch
SVar:TrigPump2:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | KW$ Deathtouch
K:Equip 2
SVar:Picture:http://www.wizards.com/global/images/magic/general/hedron_blade.jpg
Oracle:Equipped creature gets +1/+1.\nWhenever equipped creature becomes blocked by one or more colorless creatures, it gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.)\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)
- Code: Select all
Name:Pathway Arrows
ManaCost:1
Types:Artifact Equipment
S:Mode$ Continuous | Affected$ Card.EquippedBy | AddAbility$ Damage | AddSVar$ PathwayTapAll | Description$ Equipped creature has "{2}, {T}: This creature deals 1 damage to target creature. If a colorless creature is dealt damage this way, tap it."
SVar:Damage:AB$DealDamage | Cost$ 2 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 1 | RememberDamaged$ True | SubAbility$ PathwayTapAll | SpellDescription$ CARDNAME deals 1 damage to target creature. If a colorless creature is dealt damage this way, tap it.
SVar:PathwayTapAll:DB$ TapAll | ValidCards$ Creature.IsRemembered+Colorless
K:Equip 2
SVar:NonStackingAttachEffect:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/pathway_arrows.jpg
Oracle:Equipped creature has "{2}, {T}: This creature deals 1 damage to target creature. If a colorless creature is dealt damage this way, tap it."\nEquip {2}
- Code: Select all
Name:Slab Hammer
ManaCost:2
Types:Artifact Equipment
K:Equip 2
T:Mode$ Attacks | ValidCard$ Card.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature attacks, you may return a land you control to its owner's hand. If you do, the creature gets +2/+2 until end of turn.
SVar:TrigPump:AB$ Pump | Cost$ Return<1/Land> | Defined$ TriggeredAttacker | NumAtt$ 2 | NumDef$ 2
SVar:Picture:http://www.wizards.com/global/images/magic/general/slab_hammer.jpg
Oracle:Whenever equipped creature attacks, you may return a land you control to its owner's hand. If you do, the creature gets +2/+2 until end of turn.\nEquip {2}
Re: Battle for Zendikar spoiler season
by onderzeeboot » 19 Sep 2015, 07:51
If I read this correctly, your Reckless Cohort checks if you control other Giants. Shouldn't that beMarek14 wrote:Thanks, Krazy for taking over while I slept
- Code: Select all
Name:Reckless Cohort
ManaCost:1 R
Types:Creature Human Warrior Ally
PT:2/2
S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME attacks each combat if able. | CheckSVar$ X | SVarCompare$ EQ0 | Description$ CARDNAME attacks each combat if able unless you control another Ally.
SVar:X:Count$Valid Giant.Other+YouCtrl
SVar:BuffedBy:Ally
SVar:Picture:http://www.wizards.com/global/images/magic/general/briarberry_cohort.jpg
Oracle:Reckless Cohort attacks each combat if able unless you control another Ally.
- Code: Select all
Name:Reckless Cohort
ManaCost:1 R
Types:Creature Human Warrior Ally
PT:2/2
S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME attacks each combat if able. | CheckSVar$ X | SVarCompare$ EQ0 | Description$ CARDNAME attacks each combat if able unless you control another Ally.
SVar:X:Count$Valid Ally.Other+YouCtrl
SVar:BuffedBy:Ally
SVar:Picture:http://www.wizards.com/global/images/magic/general/briarberry_cohort.jpg
Oracle:Reckless Cohort attacks each combat if able unless you control another Ally.
Edit: Also, sweet work. You are going through this at a way faster pace than I could o_O
- onderzeeboot
- Posts: 31
- Joined: 29 Nov 2014, 19:37
- Has thanked: 5 times
- Been thanked: 0 time
Re: Battle for Zendikar spoiler season
by Hanmac » 19 Sep 2015, 11:58
are they really finish or arent there more than two cards missing?
because i dont see the green cards in this thread and i would have liked to see the code of them too
because i dont see the green cards in this thread and i would have liked to see the code of them too
Re: Battle for Zendikar spoiler season
by Marek14 » 19 Sep 2015, 12:00
They are on WebSVN -- Krazy added them directly rather than going through here like me.Hanmac wrote:are they really finish or arent there more than two cards missing?
because i dont see the green cards in this thread and i would have liked to see the code of them too
Re: Battle for Zendikar spoiler season
by KrazyTheFox » 19 Sep 2015, 16:37
- Code: Select all
SVar 'Y' not found in ability, fallback to Card (Quarantine Field). Ability is (When Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until Quarantine Field leaves the battlefield. (Targeting ERROR) )
- Code: Select all
Name:Quarantine Field
ManaCost:X X W W
Types:Enchantment
K:etbCounter:ISOLATION:X
SVar:X:Count$xPaid
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until CARDNAME leaves the battlefield.
SVar:TrigExile:AB$ ChangeZone | Cost$ 0 | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | ValidTgts$ Permanent.nonLand+OppCtrl | TargetMin$ 0 | TargetMax$ Y | References$ Y | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | SVars$ TrigReturn,ExileSelf | ConditionPresent$ Card.Self | Duration$ Permanent
SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until CARDNAME leaves the battlefield.
SVar:TrigReturn:AB$ ChangeZoneAll | Cost$ 0 | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf
SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self
SVar:Y:Count$CardCounters.ISOLATION
SVar:PlayMain1:TRUE
SVar:OblivionRing:TRUE
SVar:Picture:http://www.wizards.com/global/images/magic/general/quarantine_field.jpg
Oracle:Quarantine Field enters the battlefield with X isolation counters on it.\nWhen Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until Quarantine Field leaves the battlefield.
I'll go try my hand at the last card, Emeria Shepherd, then I'll start testing cards in this thread and adding them to the repo.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Battle for Zendikar spoiler season
by KrazyTheFox » 19 Sep 2015, 16:54
I've edited my previous post regarding Quarantine Field. If someone could help me figure out that last bit, it would be much appreciated.
Edit: I can't seem to figure out how to check if the land that triggered the Landfall ability is a Plains for Emeria Shepherd, either. Someone else will have to pick up this card.
Edit 2: Issues with tested cards (not committed, won't fix until all uncommitted cards are tested):
Edit: I can't seem to figure out how to check if the land that triggered the Landfall ability is a Plains for Emeria Shepherd, either. Someone else will have to pick up this card.
Edit 2: Issues with tested cards (not committed, won't fix until all uncommitted cards are tested):
- | Open
- Code: Select all
Aligned Hedron Network:
Doesn't return exiled creatures when it leaves the battlefield
Brutal Expulsion:
java.lang.IllegalArgumentException: No element named Battlefield,Stack in enum Zone
at forge.game.zone.ZoneType.smartValueOf(ZoneType.java:44)
at forge.game.ability.effects.ChangeZoneEffect.changeKnownOriginStackDescription(ChangeZoneEffect.java:240)
at forge.game.ability.effects.ChangeZoneEffect.getStackDescription(ChangeZoneEffect.java:48)
at forge.game.ability.SpellAbilityEffect.getStackDescriptionWithSubs(SpellAbilityEffect.java:75)
at forge.game.spellability.AbilitySub.getStackDescription(AbilitySub.java:114)
at forge.game.ability.SpellAbilityEffect.getStackDescriptionWithSubs(SpellAbilityEffect.java:85)
at forge.game.spellability.AbilitySub.getStackDescription(AbilitySub.java:114)
at forge.game.ability.SpellAbilityEffect.getStackDescriptionWithSubs(SpellAbilityEffect.java:85)
at forge.game.ability.SpellApiBased.getStackDescription(SpellApiBased.java:42)
at forge.player.HumanPlaySpellAbility.enusureAbilityHasDescription(HumanPlaySpellAbility.java:290)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:142)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:124)
at forge.player.PlayerControllerHuman.playChosenSpellAbility(PlayerControllerHuman.java:938)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:930)
at forge.game.GameAction.startGame(GameAction.java:1440)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Dust Stalker:
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Dust Stalker: TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Battlefield | Destination$ Hand
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:106)
at forge.game.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:478)
at forge.game.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:349)
at forge.game.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:322)
at forge.game.trigger.TriggerHandler.runTrigger(TriggerHandler.java:255)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:380)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:973)
at forge.game.GameAction.startGame(GameAction.java:1440)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
From Beyond:
Missing sacrifice cost
Herald of Kozilek:
Doesn't reduce cost of colorless spells
Noyan Dar, Roil Shaper:
Lands don't become creatures; they only get the P1P1 counters
Painful Truths:
Doesn't draw cards, don't lose life
Transgress the Mind:
Only targets opponents; should target any player
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Battle for Zendikar spoiler season
by Agetian » 19 Sep 2015, 19:36
r30030: I implemented HasSubtype and HasNoSubtype restriction properties that can hopefully be used to implement Emeria Shepherd. The ValidCard restriction will have to be written this way: "ValidCard$ Land.YouCtrl+HasSubtype Plains" (no quotes) or "ValidCard$ Land.YouCtrl+HasNoSubtype Plains". Maybe it's possible to implement the card now with two different conditions? One optional for when the land was a plains, and one generic landfall? Or one when a land was a Plains and one when a land was not a Plains, not sure...). I'm not very good with the scripting part, sadly, so I can't script the card on my own or confirm if these code changes are indeed enough to script the card now. Feel free to improve if necessary.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3471
- Joined: 14 Mar 2011, 05:58
- Has thanked: 676 times
- Been thanked: 561 times
Re: Battle for Zendikar spoiler season
by Marek14 » 19 Sep 2015, 20:06
Quarantine Field -- could the problem simply be that Isolation counters are not yet defined in general code?
Re: Battle for Zendikar spoiler season
by KrazyTheFox » 19 Sep 2015, 20:16
I added the counters before scripting the card. The game throws an error and crashes if the counter type can't be found instead of just printing a small error to the console.Marek14 wrote:Quarantine Field -- could the problem simply be that Isolation counters are not yet defined in general code?
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Battle for Zendikar spoiler season
by Marek14 » 19 Sep 2015, 20:29
Aligned Hedron Network: I think the problem is here:
From Beyond - a typo
Painful Truths - try replacing "SVar:X:Converge" with "SVar:X:Count$Converge"
Transgress the Mind - description is also wrong, so replace
- Code: Select all
SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those creatures are exiled until Linked Hedron Structure leaves the battlefield
- Code: Select all
SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those creatures are exiled until Aligned Hedron Network leaves the battlefield
From Beyond - a typo
- Code: Select all
Cost$ 1 G Sacrifice<1/CARDNAME>
- Code: Select all
Cost$ 1 G Sac<1/CARDNAME>
Painful Truths - try replacing "SVar:X:Converge" with "SVar:X:Count$Converge"
Transgress the Mind - description is also wrong, so replace
- Code: Select all
A:SP$ ChangeZone | Cost$ 1 B | Origin$ Hand | Destination$ Exile | DefinedPlayer$ Targeted | ValidTgts$ Opponent | Chooser$ You | ChangeType$ Card.cmcGE3 | ChangeNum$ 1 | IsCurse$ True | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Target opponent reveals his or her hand. You choose a nonland card from it and exile that card.
- Code: Select all
A:SP$ ChangeZone | Cost$ 1 B | Origin$ Hand | Destination$ Exile | DefinedPlayer$ Targeted | ValidTgts$ Player | Chooser$ You | ChangeType$ Card.cmcGE3 | ChangeNum$ 1 | IsCurse$ True | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Target player reveals his or her hand. You choose a card with converted mana cost 3 or greater and exile that card.
Re: Battle for Zendikar spoiler season
by KrazyTheFox » 19 Sep 2015, 21:10
I've added 73 more cards from this topic, all tested fairly thoroughly. There's another pile of bugs that need fixing while I go make and test the changes Marek has listed above (thanks!). Some of them are super easy fixes, but I avoided any changes while doing the testing to better keep track of things.
Every card has now been tested! Once the above problems are fixed and tested again, we'll only have those last two cards to go!
Edit: Aligned Hedron Network still doesn't return cards from exile after those changes. The other four cards now work and have been added to the repository.
Every card has now been tested! Once the above problems are fixed and tested again, we'll only have those last two cards to go!
- | Open
- Code: Select all
Akoum Stonewaker:
Token gets 'Trample & Haste', not 'Trample' and 'Haste'
Bane of Bala Ged:
Opponent gets to decide not to exile permanents; should not be optional
Blighted Steppe:
Counts all creatures when determining life gain; should only count your own
Carrier Thrall:
Incorrect ability text; references boars, not eldrazi scions
Grave Birthing:
java.lang.ClassCastException: forge.game.ability.AbilityApiBased cannot be cast to forge.game.spellability.AbilitySub
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:335)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:182)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:112)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:108)
at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:2073)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:284)
at forge.game.card.CardFactory.getCard(CardFactory.java:230)
at forge.game.card.CardFactory.getCard(CardFactory.java:222)
at forge.game.card.Card.fromPaperCard(Card.java:6513)
at forge.game.card.Card.getCardForUi(Card.java:6521)
at forge.game.card.CardView.getCardForUi(CardView.java:40)
at forge.screens.match.controllers.CDetailPicture.showItem(CDetailPicture.java:58)
at forge.screens.match.CMatchUI.setCard(CMatchUI.java:338)
Guul Draz Overseer:
Does not buff creatures
Halimar Tidecaller:
Does not let you return a card with awaken to your hand from the graveyard
Hedron Blade:
Gives creature deathtouch regardless of blocking creature's colors
Infuse with the Elements:
Card text does not appear in card detail panel
Makindi Patrol:
Is 2/2; should be 2/3
Mind Raker:
Missing ETB effect
Murk Strider:
Missing ETB effect
Pathway Arrows:
Use ability on a colorless creature. Untap equipped creature, wait for previous target to be untapped.
Use ability again on a different creature. All previous targets will be tapped.
Retreat to Coralhelm:
Does not use charm formatting in card detail panel; no text in panel for choosing which ability to use
Retreat to Emeria:
Does not use charm formatting in card detail panel
Retreat to Kazandu:
Does not use charm formatting in card detail panel
Retreat to Hagra:
Does not use charm formatting in card detail panel
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Retreat to Hagra:
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:106)
at forge.game.ability.effects.CharmEffect.makePossibleOptions(CharmEffect.java:36)
at forge.player.PlayerControllerHuman.chooseModeForAbility(PlayerControllerHuman.java:1086)
at forge.game.ability.effects.CharmEffect.makeChoices(CharmEffect.java:76)
at forge.game.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:509)
at forge.game.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:349)
at forge.game.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:318)
at forge.game.trigger.TriggerHandler.runTrigger(TriggerHandler.java:255)
at forge.game.GameAction.changeZone(GameAction.java:280)
at forge.game.GameAction.moveTo(GameAction.java:431)
at forge.game.GameAction.moveTo(GameAction.java:412)
at forge.game.player.Player.playLand(Player.java:1462)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:87)
at forge.player.PlayerControllerHuman.playChosenSpellAbility(PlayerControllerHuman.java:938)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:930)
at forge.game.GameAction.startGame(GameAction.java:1440)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Retreat to Valakut:
Does not use charm formatting in card detail panel; no text in panel for choosing which ability to use
Ruin Processor:
Life is not gained when ability is used
Touch of the Void:
Costs 5 R R; should cost 2 R
Ugin's Insight:
Costs U; should cost 3 U U
Ulamog's Reclaimer:
Missing ETB effect
Unnatural Aggression:
Opponent's creature is not exiled when it dies this turn
Vampiric Rites:
No mana cost; cannot cast
Wasteland Strangler:
Missing ETB effect
Windrider Patrol:
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Windrider Patrol:
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:106)
at forge.game.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:478)
at forge.game.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:349)
at forge.game.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:318)
at forge.game.trigger.TriggerHandler.runTrigger(TriggerHandler.java:255)
at forge.game.player.Player.addDamageAfterPrevention(Player.java:548)
at forge.game.player.Player.addCombatDamage(Player.java:846)
at forge.game.combat.Combat.dealAssignedDamage(Combat.java:689)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:311)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:973)
at forge.game.GameAction.startGame(GameAction.java:1440)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Edit: Aligned Hedron Network still doesn't return cards from exile after those changes. The other four cards now work and have been added to the repository.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Who is online
Users browsing this forum: KeithOvart and 93 guests