It is currently 18 Nov 2025, 12:42
   
Text Size

Card Contributions

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins

Re: Card Contributions

Postby Chris H. » 15 May 2012, 18:09

friarsol wrote:Edit: Also, that link doesn't seem to work for me since I sort my threads by newest instead of oldest.
 
I think that this may be the message that he was referring to:


squee1968 wrote:Got this when trying out the new snapshot:

Crash Report | Open
This is a Crash Report. An error has occurred. Please save this message to a file.
Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:
http://tinyurl.com/3zzrnyb
Reporting bugs in Forge is very important. We thank you for your time.

null


Version:
Forge version 1.2.4-SNAPSHOT-r14126

OS: Windows XP Version: 5.1 Architecture: x86

Java Version: 1.6.0_26 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.ExceptionInInitializerError
at forge.CardReader.loadCardsUntilYouFind(CardReader.java:266)
at forge.CardReader.run(CardReader.java:250)
at forge.card.cardfactory.PreloadingCardFactory.readCards(PreloadingCardFactory.java:126)
at forge.card.cardfactory.PreloadingCardFactory.<init>(PreloadingCardFactory.java:83)
at forge.AllZone.getCardFactory(AllZone.java:329)
at forge.view.FView.initialize(FView.java:74)
at forge.view.Main.main(Main.java:59)
Caused by: java.lang.IllegalStateException: FProgressBar$reset must be accessed from the event dispatch thread.
at forge.gui.GuiUtils.checkEDT(GuiUtils.java:443)
at forge.view.toolbox.FProgressBar.reset(FProgressBar.java:69)
at forge.view.toolbox.FProgressBar.<init>(FProgressBar.java:29)
at forge.view.SplashFrame.<clinit>(SplashFrame.java:60)
... 7 more


And this when closing that report, if it helps:

Crash Report | Open
This is a Crash Report. An error has occurred. Please save this message to a file.
Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:
http://tinyurl.com/3zzrnyb
Reporting bugs in Forge is very important. We thank you for your time.

Could not initialize class forge.view.SplashFrame


Version:
Forge version 1.2.4-SNAPSHOT-r14126

OS: Windows XP Version: 5.1 Architecture: x86

Java Version: 1.6.0_26 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.NoClassDefFoundError: Could not initialize class forge.view.SplashFrame
at forge.view.FView$1.run(FView.java:61)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Card Contributions

Postby moomarc » 17 May 2012, 13:38

@Squee: Added Abundance. Keep in mind with GenericChoice that both choices should have a ChoiceDescription parameter otherwise forge crashes because those labels go directly to the choice list so without them there's nothing to choose from. It differs from Charm AF here in that Charm uses the SpellDescription values. Thanks for this script. Gives some handy control when playing with looting cards. =D>

@OneOfTheOtherDevs: When the optional box comes up for the replacement effect, would it be possible to force multiline for long descriptions like this one? I'm guessing it would either stipulate a max width for the box or check box width vs window width. It would be nice not to have to drag it around to try read the full message. (It might be possible that something similar is implemented but my dual monitor setup interferes)

Edit: Added Acorn Catapult (Used a very different structure to what was posted though)
Edit2: Added Withering Wisps from the previous batch (managed to add the code so that it could calculate the activation limit from svar).
Edit3: Added Anthem of Rakdos (Hellbent is a special conditional that handles the check automatically, so no need to add the extra ConditionCheckSVars. I also removed the removed the remaideck and remrandomdeck flags because I think its powerful enough in any deck and the AI generally plays it's spells out as fast as possible so has a tendency to meet the Hellbent condition. If anyone feels the AI is still likely to kill himself due to the drawback I'll re-add the flag)
Edit4: Aphetto Dredging doesn't work unfortunately. The "up to" part requires targeting which happens before the creature type is chosen #-o
Edit5: Added Acidic Dagger (notes on this one - The 'SVars' param in Effect is capitalized and the values are separated by ',' not ', ' (no spaces). Also the Sacrifice svar had to change to SacrificeAll so that it would work with Defined$Imprinted which was in turn done because Sacrifice Self would try sacrifice the effect instead of the dagger).
Edit6: Sloth added Apocalypse Chime.
Edit7: Added Aquamorph Entity
Edit8: Added Angel of Salvation
Last edited by moomarc on 22 May 2012, 12:15, edited 4 times in total.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby moomarc » 21 May 2012, 10:58

@Sloth: Is there a general pump AILogic for Effect AFs that I could use to improve Acidic Dagger? I've added it with the RemAIDeck flag and no AI logic on the effect, but it would be better if the AI could use it. It's a toss-up though as to whether the AI could use it effectively though. Would the Evasion logic work perhaps because then it would target a creature likely to attack?
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby moomarc » 21 May 2012, 12:40

@Squee: I have Aquamorph Entity and friends working but just waiting for a reply from one of the devs with a deeper knowledge of the inner workings to a question in the Card Development Questions thread before I commit them.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby moomarc » 22 May 2012, 11:43

Added Aquamorph Entity and converted Primal Clay and Primal Plasma to script. I decided to use the animate power/toughness as is instead of using setBaseAttack and setBaseDefence because it interacts properly with ETB triggers, leaves the battlefield triggers and the clone cards. If it turns out that the base PT needs to be set instead I'll add in the code, but pointless adding if there's no need. Thanks Squee for the base scripts.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby moomarc » 22 May 2012, 14:24

@Squee: I've made the necessary fixes to Antagonism, just waiting to hear whether its fair to the AI or not before I commit. I just moved the Conditions on to the actual triggered abilities, not the trigger event (does nothing that way).
Antagonism | Open
Code: Select all
Name:Antagonism
ManaCost:3 R
Types:Enchantment
Text:no text
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TeaseYou | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each player's end step, CARDNAME deals 2 damage to that player unless one of his or her opponents was dealt damage this turn.
SVar:TeaseYou:DB$ DealDamage | Defined$ You | NumDmg$ 2 | ConditionCheckSVar$ AntagonismX | ConditionSVarCompare$ LE0
SVar:AntagonismX:Count$OppDamageThisTurn
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Opponent | Execute$ TeaseOpp | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ At the beginning of each player's end step, CARDNAME deals 2  damage to that player unless one of his or her opponents was dealt damage this turn.
SVar:TeaseOpp:DB$ DealDamage | Defined$ Opponent | NumDmg$ 2 | ConditionCheckSVar$ AntagonismY | ConditionSVarCompare$ LE0
SVar:AntagonismY:Count$YourDamageThisTurn
SVar:NeedsToPlayVar:AntagonismX GE1
SVar:RemRandomDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/antagonism.jpg
SetInfo:USG|Rare|http://magiccards.info/scans/en/us/173.jpg
Oracle:At the beginning of each player's end step, Antagonism deals 2 damage to that player unless one of his or her opponents was dealt damage this turn.
End
That's the last of the batch though so you can stick the next batch up. Did DoubleStrike's fix work for you?

One other thing. You'd sent me a PM a while ago about possibly implementing Hunter Sliver after Sloth had fixed provoke. Unfortunately it doesn't work because provoke doesn't work properly a pumped ability. The card info panel gets the correct info, displaying the keyword and its reminder text, but the trigger never fires.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby squee1968 » 22 May 2012, 15:14

Thanks for all the fixes, marc. 7 out of 8 cards added (and possibly 1 more, along with the 2 bonus coversions). Not too shabby. I still have alot to learn, but at the very least, I'm keeping you on your toes. :mrgreen:

I did manage to playtest Hunter Sliver some, and I noticed what you did. The card text showed on the other sliver, but the trigger didn't fire for the others. I thought somehow it was my script that was messed up. Sol was doing some work about a month ago, converting keywords to script, albeit he was converting player keywords to continuous static effects. I wonder if something like that would work here?

It appears that Doublestrike's fixes did work for me (so far), and now I can do some limited playtesting, but I really don't have enough time or the knowledge/experience to truly see if a card interacts correctly with other cards. And I will probably wait until these batches I've got waiting are finished before I even begin to do even the little that I can.
squee1968
 
Posts: 254
Joined: 18 Nov 2011, 03:28
Has thanked: 110 times
Been thanked: 45 times

Re: Card Contributions

Postby Sloth » 22 May 2012, 15:48

moomarc wrote:@Sloth: Is there a general pump AILogic for Effect AFs that I could use to improve Acidic Dagger? I've added it with the RemAIDeck flag and no AI logic on the effect, but it would be better if the AI could use it. It's a toss-up though as to whether the AI could use it effectively though. Would the Evasion logic work perhaps because then it would target a creature likely to attack?
The Evasion logic has no targeting yet.

moomarc wrote:@Squee: I've made the necessary fixes to Antagonism, just waiting to hear whether its fair to the AI or not before I commit. I just moved the Conditions on to the actual triggered abilities, not the trigger event (does nothing that way).
Antagonism should be ok. Damaging the human is the normal goal anyway.

moomarc wrote:One other thing. You'd sent me a PM a while ago about possibly implementing Hunter Sliver after Sloth had fixed provoke. Unfortunately it doesn't work because provoke doesn't work properly a pumped ability. The card info panel gets the correct info, displaying the keyword and its reminder text, but the trigger never fires.
Hunter Sliver is scriptable. Provoke is just a triggered ability, so give this triggered ability to all slivers with a continuous static ability.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Card Contributions

Postby squee1968 » 22 May 2012, 16:53

Would this be correct?

Code: Select all
Name:Hunter Sliver
ManaCost:1 R
Types:Creature Sliver
Text:no text
PT:1/1
K:Provoke
S:Mode$ Continuous | Affected$ Sliver | AddKeyword$ Provoke | AddTrigger$ WhenAttack | Description$ All Slivers have provoke.
SVar:WhenAttack:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ BlockMe
SVar:BlockMe:AB$ MustBlock | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ GetReady
SVar:GetReady:DB$Untap | Defined$ Targeted
SVar:PlayMain1:TRUE
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/hunter_sliver.jpg
SetInfo:LGN|Common|http://magiccards.info/scans/en/le/102.jpg
Oracle:All Slivers have provoke. (When this attacks, you may have target creature defending player controls untap and block it if able.)
End
squee1968
 
Posts: 254
Joined: 18 Nov 2011, 03:28
Has thanked: 110 times
Been thanked: 45 times

Re: Card Contributions

Postby moomarc » 22 May 2012, 17:28

squee1968 wrote:Would this be correct?

Code: Select all
Name:Hunter Sliver
ManaCost:1 R
Types:Creature Sliver
Text:no text
PT:1/1
K:Provoke
S:Mode$ Continuous | Affected$ Sliver | AddKeyword$ Provoke | AddTrigger$ WhenAttack | Description$ All Slivers have provoke.
SVar:WhenAttack:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ BlockMe
SVar:BlockMe:AB$ MustBlock | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ GetReady
SVar:GetReady:DB$Untap | Defined$ Targeted
SVar:PlayMain1:TRUE
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/hunter_sliver.jpg
SetInfo:LGN|Common|http://magiccards.info/scans/en/le/102.jpg
Oracle:All Slivers have provoke. (When this attacks, you may have target creature defending player controls untap and block it if able.)
End
Pretty much the same as I ended up with. Just testing quickly...
Hunter Sliver | Open
Code: Select all
Name:Hunter Sliver
ManaCost:1 R
Types:Creature Sliver
Text:no text
PT:1/1
K:Provoke
S:Mode$ Continuous | Affected$ Creature.Sliver+Other | AddKeyword$ Provoke | AddTrigger$ TrigHunt | AddSVar$ TrigUntap & TrigSelectPrey | Description$ All Sliver creatures have provoke. (When a Sliver attacks, its controller may have target creature defending player controls untap and block it if able.)
SVar:TrigHunt:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigSelectPrey | TriggerZones$ Battlefield | OptionalDecider$ You
SVar:TrigSelectPrey:AB$ MustBlock | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature to provoke | SubAbility$ TrigUntap
SVar:TrigUntap:DB$ Untap | Defined$ Targeted
SVar:PlayMain1:TRUE
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/hunter_sliver.jpg
SetInfo:LGN|Common|http://magiccards.info/scans/en/le/102.jpg
Oracle:All Sliver creatures have provoke. (When a Sliver attacks, its controller may have target creature defending player controls untap and block it if able.)
End
Edit: Hmm, not working yet. I'll look at it further in the morning. :|
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby squee1968 » 23 May 2012, 09:07

More cards for y'all to fix for me. :mrgreen:

Code: Select all
Name:Archangel of Strife
ManaCost:5 W W
Types:Creature Angel
Text:no text
PT:6/6
K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ Tolstoy | TriggerDescription$ As CARDNAME enters the battlefield, each player chooses war or peace. Creatures controlled by players who chose war get +3/+0. Creatures controlled by players who chose peace get +0/+3.
SVar:Tolstoy:AB$ GenericChoice | Cost$ 0 | Defined$ You | Choices$ War,Peace | SubAbility$ OppChoice
SVar:War:Mode$ Continuous | Affected$ Creature.YouCtrl | AddPower$ 3 | IsPresent$ Card.Self
SVar:Peace:Mode$ Continuous | Affected$ Creature.YouCtrl | AddToughness$ 3 | IsPresent$ Card.Self
SVar:OppChoice:AB$ GenericChoice | Cost$ 0 | Defined$ Opponent | Choices$ Sword,Shield
SVar:Sword:Mode$ Continuous | Affected$ Creature.YouDontCtrl | AddPower$ 3 | IsPresent$ Card.Self
SVar:Shield:Mode$ Continuous | Affected$ Creature.YouDontCtrl | AddToughness$ 3 | IsPresent$ Card.Self
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/archangel_of_strife.jpg
End
Code: Select all
Name:Balshan Beguiler
ManaCost:2 U
Types:Creature Human Wizard
Text:no text
PT:1/1
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ BalshanDig | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, that player reveals the top two cards of his or her library. You choose one of those cards and put it into his or her graveyard.
SVar:BalshanDig:AB$ Dig | Cost$ 0 | DefinedPlayer$ TriggeredTarget | DigNum$ 2 | ChangeNum$ 1 | DestinationZone$ Graveyard | LibraryPosition2$ 0 | Reveal$ True
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/balshan_beguiler.jpg
End
Code: Select all
Name:Bend or Break
ManaCost:3 R
Types:Sorcery
Text:no text
A:SP$ TwoPiles | Cost$ 3 R | Defined$ You | Separator$ You | Chooser$ Opponent | ChosenPile$ BreakYou | UnchosenPile$ BendYou | ValidCards$ Land.nonToken+YouCtrl | Zone$ Battlefield | SpellDescription$ Each player separates all nontoken lands he or she controls into two piles. For each player, one of his or her piles is chosen by one of his or her opponents of his or her choice. Destroy all lands in the chosen piles. Tap all lands in the other piles.
SVar:BreakYou:DB$DestroyAll | Defined$ Remembered
SVar:BendYou:AB$ TapAll | Defined$ Remembered | SubAbility$ PileOpp
SVar:PileOpp:DB$ TwoPiles | Defined$ Opponent | Separator$ Opponent | Chooser$ You | ChosenPile$ BreakOpp | UnchosenPile$ BendOpp | ForgetOtherRemembered$ True | ValidCards$ Land.nonToken+YouDontCtrl | Zone$ Battlefield
SVar:BreakOpp:DB$DestroyAll | Defined$ Remembered
SVar:BendOpp:AB$ TapAll | Defined$ Remembered
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/bend_or_break.jpg
End
Code: Select all
Name:Bifurcate
ManaCost:3 G
Types:Sorcery
Text:no text
A:SP$ Pump | Cost$ 3 G | ValidTgts$ Creature.nonToken | TgtPrompt$ Select target nontoken creature | Static$ True | StackDescription$ None | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Targeted.sameName | ChangeNum$ 1 | Hidden$ True | StackDescription$ Search your library for a permanent card with the same name as target nontoken creature and put that card onto the battlefield. Then shuffle your library.
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/bifurcate.jpg
End
Code: Select all
Name:Blind Fury
ManaCost:2 R R
Types:Instant
Text:no text
A:SP$ DebuffAll | Cost$ 2 R R | ValidCards$ Creature | Keywords$ Trample | ActivationPhases$ Upkeep,Draw,Main1,BeginCombat,Declare Attackers - Play Instants and Abilities,Declare Blockers - Play Instants and Abilities | SpellDescription$ Cast CARDNAME only before the combat damage step.
R:Event$ DamageDone | ValidSource$ Creature | ValidTarget$ Creature | ReplaceWith$ DmgTwiceCombat | IsCombat$ True | Description$ All creatures lose trample until end of turn. If a creature would deal combat damage to a creature this turn, it deals double that damage to that creature instead.
SVar:DmgTwiceCombat:AB$DealDamage | Cost$ 0 | CombatDamage$ True | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ X
SVar:X:ReplaceCount$DamageAmount/Twice
SVar:PlayMain1:TRUE
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/blind_fury.jpg
End
Code: Select all
Name:Blizzard Specter
ManaCost:2 U B
Types:Snow Creature Specter
Text:no text
PT:2/3
K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | Execute$ ColdChoice | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player,
SVar:ColdChoice:AB$ GenericChoice | Cost$ 0 | Choices$ ChillBounce,BrainFreeze | Defined$ You | SpellDescription$ Choose one -
SVar:ChillBounce:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | ChangeNum$ 1 | ChangeType$ Permanent.YouDontCtrl | Mandatory$ True | DefinedPlayer$ Opponent | Hidden$ True | SpellDescription$ That player returns a permanent he or she controls to its owner's hand;
SVar:BrainFreeze:DB$Discard | Defined$ Opponent | NumCards$ 1 | Mode$ TgtChoose | SpellDescription$ or that player discards a card.
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/blizzard_specter.jpg
End
Code: Select all
Name:Blood Oath
ManaCost:3 R
Types:Instant
Text:no text
A:SP$ ChooseType | Cost$ 3 R | Defined$ You | Type$ Card | SubAbility$ DBReveal | SpellDescription$ Choose a card type. Target opponent reveals his or her hand. Blood Oath deals 3 damage to that player for each card of the chosen type revealed this way.
SVar:DBReveal:DB$ RevealHand | RememberRevealed$ True | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ BloodBath
SVar:DBDamage:DB$ DealDamage | Defined$ Opponent | NumDmg$ X
SVar:X:SVar$Y/Times.3
SVar:Y:Remembered$Valid Card.ChosenType
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_oath.jpg
End
Code: Select all
Name:Blood of the Martyr
ManaCost:W W W
Types:Instant
Text:no text
A:SP$ Effect | Cost$ W W W | Name$ Blood of the Martyr Effect | ReplacementEffects$ MartyrDamage | SVars$ DmgToYou,X | SpellDescription$ Until end of turn, if damage would be dealt to any creature, you may have that damage dealt to you instead.
SVar:MartyrDamage:Event$ DamageDone | ValidSource$ Any | ValidTarget$ Creature | Optional$ True | ReplaceWith$ DmgToYou | Description$ Until end of turn, if damage would be dealt to any creature, you may have that damage dealt to you instead.
SVar:DmgToYou:AB$DealDamage | Cost$ 0 | Defined$ You | DamageSource$ ReplacedSource | NumDmg$ X
SVar:X:ReplaceCount$DamageAmount
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_of_the_martyr.jpg
End
Code: Select all
Name:Bloodcurdler
ManaCost:1 B
Types:Creature Horror
Text:no text
PT:1/1
K:Flying
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ CurdledMill | TriggerDescription$ At the beginning of your upkeep, put the top card of your library into your graveyard.
SVar:CurdledMill:DB$ Mill | Defined$ You | NumCards$ 1
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddTrigger$ EndScream | Threshold$ True | Description$ Threshold - As long as seven or more cards are in your graveyard, Bloodcurdler gets +1/+1 and has "At the beginning of your end step, exile two cards from your graveyard."
SVar:EndScream:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ BloodExile
SVar:BloodExile:ChangeZone:DB$ ChangeZone | Hidden$ True | Mandatory$ True | ChangeType$ Card | ChangeNum$ 2 | DefinedPlayer$ You | Origin$ Graveyard | Destination$ Exile
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/bloodcurdler.jpg
End
Code: Select all
Name:Bloodline Shaman
ManaCost:1 G
Types:Creature Elf Wizard Shaman
Text:no text
PT:1/1
A:AB$ ChooseType | Cost$ T | Defined$ You | Type$ Creature | AILogic$ MostProminentInComputerDeck | SubAbility$ ShamanDig | SpellDescription$ Choose a creature type. Reveal the top card of your library. If that card is a creature card of the chosen type, put it into your hand. Otherwise, put it into your graveyard.
SVar:ShamanDig:AB$ Dig | Cost$ 0 | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Creature.ChosenType | DestinationZone$ Hand | DestinationZone2$ Graveyard
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/bloodline_shaman.jpg
End
squee1968
 
Posts: 254
Joined: 18 Nov 2011, 03:28
Has thanked: 110 times
Been thanked: 45 times

Re: Card Contributions

Postby Sloth » 23 May 2012, 12:42

@Squee: I've added Balshan Beguiler and Bifurcate, but now that you can run forge again, it would be nice if you could test the basic functionality of your scripts (Bifurcate had no SpellDescription for example).

Archangel of Strife is not correct if it changes controller.

Blood of the Martyr needs to distinguish combat damage.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Card Contributions

Postby moomarc » 23 May 2012, 13:07

Sloth wrote:Archangel of Strife is not correct if it changes controller.
The bigger problem with this card is that a static ability can't be a subability. It would have to be scripted as an effect for each player with the relevant continuous effect.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Card Contributions

Postby squee1968 » 23 May 2012, 14:13

I'm fairly sure I can fix Blood of the Martyr. I just need to add a second replacement effect, and use IsCombat$ True and False on both, then change the SVars accordingly, correct?

As for Angel of Salvation, those problems are beyond my capabilities. It looks as though it can't be fixed, but if I know you, Sloth, you'll find some way to get it done. If not, no problemo, plenty of cards that can be added.

Sorry about Bifurcate. After these next couple of batches are checked in, I'll start doing limited basic functionality playtesting of my scripts.

EDIT: Does this work?

Code: Select all
Name:Blood of the Martyr
ManaCost:W W W
Types:Instant
Text:no text
A:SP$ Effect | Cost$ W W W | Name$ Blood of the Martyr Effect | ReplacementEffects$ MartyrCombat,MartyrNonCombat | SVars$ CombatDmgToYou,NonCombatDmgToYou,X | SpellDescription$ Until end of turn, if damage would be dealt to any creature, you may have that damage dealt to you instead.
SVar:MartyrCombat:Event$ DamageDone | ValidSource$ Any | ValidTarget$ Creature | Optional$ True | IsCombat$ True | ReplaceWith$ CombatDmgToYou | Description$ Until end of turn, if damage would be dealt to any creature, you may have that damage dealt to you instead.
SVar:MartyrNonCombat:Event$ DamageDone | ValidSource$ Any | ValidTarget$ Creature | Optional$ True | IsCombat$ False | ReplaceWith$ NonCombatDmgToYou | Secondary$ True | Description$ Until end of turn, if damage would be dealt to any creature, you may have that damage dealt to you instead.
SVar:CombatDmgToYou:AB$DealDamage | Cost$ 0 | Defined$ You | DamageSource$ ReplacedSource | CombatDamage$ True | NumDmg$ X
SVar:DmgToYou:AB$DealDamage | Cost$ 0 | Defined$ You | DamageSource$ ReplacedSource | NumDmg$ X
SVar:X:ReplaceCount$DamageAmount
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_of_the_martyr.jpg
End
Last edited by squee1968 on 23 May 2012, 14:33, edited 1 time in total.
squee1968
 
Posts: 254
Joined: 18 Nov 2011, 03:28
Has thanked: 110 times
Been thanked: 45 times

Re: Card Contributions

Postby friarsol » 23 May 2012, 14:25

squee1968 wrote:After these next couple of batches are checked in, I'll start doing limited basic functionality playtesting of my scripts.
Why not start playtesting them now?
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 41 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 41 users online :: 0 registered, 0 hidden and 41 guests (based on users active over the past 10 minutes)
Most users ever online was 9824 on 10 Nov 2025, 04:33

Users browsing this forum: No registered users and 41 guests

Login Form