Page 54 of 85

Re: Card Contributions

PostPosted: 29 Mar 2012, 21:34
by Chris H.
Sloth wrote:
DrMark wrote:For debugging, is it really necessary to re-compress cardfolder.zip every time I change one card? It works but it's *slow*.
I think you can unzip cardfolder.zip and put the content under res\cardfolder\ and then remove the zip file.
`
The remove the zip file is an important step. I believe that the code will read the card files from the zip file and ignore the separate txt card files if the "cardsfolder.zip" file is found.

Re: Card Contributions

PostPosted: 30 Mar 2012, 12:48
by squee1968
Hey marc, has Tuktuk Scrapper officially been scrapped or is it just that you haven't gotten around to it yet? It may be a few days before I finish the next batch anyway, I've got a big project here at home I've got to finish up, so no rush.

Re: Card Contributions

PostPosted: 30 Mar 2012, 13:12
by moomarc
squee1968 wrote:Hey marc, has Tuktuk Scrapper officially been scrapped or is it just that you haven't gotten around to it yet? It may be a few days before I finish the next batch anyway, I've got a big project here at home I've got to finish up, so no rush.
I'm not actually too sure. I'd prefer if Sloth decides whether its fine or not. There aren't too many situations that break it... pretty much if your allies get flash so you can cast a second while the trigger is on the stack, or if you're doing some Kiki-Jiki, Rules Breaker chenanigans. Essentially each time you target a new artifact while the other triggers are on the stack, the ForgetOtherRemembered will do just that, so except for the first instance to resolve, no damage will be dealt.

Re: Card Contributions

PostPosted: 30 Mar 2012, 15:35
by Sloth
moomarc wrote:
squee1968 wrote:Hey marc, has Tuktuk Scrapper officially been scrapped or is it just that you haven't gotten around to it yet? It may be a few days before I finish the next batch anyway, I've got a big project here at home I've got to finish up, so no rush.
I'm not actually too sure. I'd prefer if Sloth decides whether its fine or not. There aren't too many situations that break it... pretty much if your allies get flash so you can cast a second while the trigger is on the stack, or if you're doing some Kiki-Jiki, Rules Breaker chenanigans. Essentially each time you target a new artifact while the other triggers are on the stack, the ForgetOtherRemembered will do just that, so except for the first instance to resolve, no damage will be dealt.
Shouldn't Tuktuk Scrapper use "RememberDestroyed" instead of "RememberTargets"?

Re: Card Contributions

PostPosted: 30 Mar 2012, 17:36
by moomarc
Well spotted, Sloth. Works beautifully. Only other things that needed to change were ading a cleanup and Destroy subability had to be an AB, otherwise the TargetedController caused a NPE. I think those defined types have to have a root AB or SP. Anyway, Tuktuk Scrapper is added!

Re: Card Contributions

PostPosted: 30 Mar 2012, 21:01
by Zirbert
I want to massively thank the devs and cardscripters involved in 1.2.6, especially for two reasons: first, they brought in more of my beloved targeted graveyard recursion (Dwell on the Past, Memory's Journey, Stream of Consciousness). Second, they left my absolute favourite such card, Gaea's Blessing, undone so I could grab it! :-)

Code: Select all
Name:Gaea's Blessing
ManaCost:1 G
Types:Sorcery
Text:no text
A:SP$ Pump | Cost$ 1 G | ValidTgts$ Player | TgtPrompt$ Select target Player | SubAbility$ DBChangeZone | IsCurse$ True | SpellDescription$ Target player shuffles up to three target cards from his or her graveyard into his or her library.
SVar:DBChangeZone:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 3 | TargetsWithDefinedController$ Targeted | Origin$ Graveyard | Destination$ Library | Shuffle$ True | TgtPrompt$ Choose target card | ValidTgts$ Card | SubAbility$ DBDraw
SVar:DBDraw:DB$Draw | NumCards$ 1 | SpellDescription$ Draw a card.
T:Mode$ ChangesZone | Origin$ Library | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into your graveyard from your library, shuffle your graveyard into your library.
SVar:TrigChange:AB$ ChangeZoneAll | Cost$ 0 | ChangeType$ Card.YouOwn | Origin$ Graveyard | Destination$ Library | Shuffle$ True | SpellDescription$ Shuffle your graveyard into your library.
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/gaeas_blessing.jpg
SetInfo:WTH|Uncommon|http://magiccards.info/scans/en/wl/71.jpg
Oracle:
End
Tested, seems to work fine. I've been out of the loop, and don't know the current etiquette on Setinfo and Oracle lines; I filled in a Setinfo because Forge crashed when I left it empty. If they should be stripped for the scripts to fill in, hopefully some kind committer will do so.

By my count, this is my 99th scripted card. I really have to find (at least) one more....

Re: Card Contributions

PostPosted: 30 Mar 2012, 21:27
by Sloth
Zirbert wrote:I want to massively thank the devs and cardscripters involved in 1.2.6, especially for two reasons: first, they brought in more of my beloved targeted graveyard recursion (Dwell on the Past, Memory's Journey, Stream of Consciousness). Second, they left my absolute favourite such card, Gaea's Blessing, undone so I could grab it! :-)

| Open
Code: Select all
Name:Gaea's Blessing
ManaCost:1 G
Types:Sorcery
Text:no text
A:SP$ Pump | Cost$ 1 G | ValidTgts$ Player | TgtPrompt$ Select target Player | SubAbility$ DBChangeZone | IsCurse$ True | SpellDescription$ Target player shuffles up to three target cards from his or her graveyard into his or her library.
SVar:DBChangeZone:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 3 | TargetsWithDefinedController$ Targeted | Origin$ Graveyard | Destination$ Library | Shuffle$ True | TgtPrompt$ Choose target card | ValidTgts$ Card | SubAbility$ DBDraw
SVar:DBDraw:DB$Draw | NumCards$ 1 | SpellDescription$ Draw a card.
T:Mode$ ChangesZone | Origin$ Library | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into your graveyard from your library, shuffle your graveyard into your library.
SVar:TrigChange:AB$ ChangeZoneAll | Cost$ 0 | ChangeType$ Card.YouOwn | Origin$ Graveyard | Destination$ Library | Shuffle$ True | SpellDescription$ Shuffle your graveyard into your library.
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/gaeas_blessing.jpg
SetInfo:WTH|Uncommon|http://magiccards.info/scans/en/wl/71.jpg
Oracle:
End
Tested, seems to work fine. I've been out of the loop, and don't know the current etiquette on Setinfo and Oracle lines; I filled in a Setinfo because Forge crashed when I left it empty. If they should be stripped for the scripts to fill in, hopefully some kind committer will do so.
Added! Thanks Zirbert.

Re: Card Contributions

PostPosted: 31 Mar 2012, 21:03
by Crea
Wanted to try out Chord of Calling earlier but found that Forge didn't have it yet, so I hacked this together based on the code for Scatter the Seeds, Reshape and Citanul Flute. Appears to work as intended but please do look it over.

Note: Since I'm a new user the system won't allow me to add offsite URLs, so I've left the two photo URLs blank. It's 156.jpg on maniccards.

Code: Select all
Name:Chord of Calling
ManaCost:X G G G
Types:Instant
Text:no text
K:Convoke
A:SP$ ChangeZone | Cost$ X G G G | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcLEX | ChangeNum$ 1 | SpellDescription$ Search your library for a creature card with converted mana cost X or less and put it onto the battlefield. Then shuffle your library.
SVar:X:Count$xPaid
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:
SetInfo:RAV|Rare|
Oracle:Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.)\nSearch your library for a creature card with converted mana cost X or less and put it onto the battlefield. Then shuffle your library.
End
By the way, is there a point to adding "Shuffle$ True"? It's in the code for Reshape but not Citanul Flute, even though they do similar things. I've tried it with and without the "Shuffle$ True" part and the library is shuffled in both cases.

Re: Card Contributions

PostPosted: 01 Apr 2012, 09:09
by Sloth
Crea wrote:Wanted to try out Chord of Calling earlier but found that Forge didn't have it yet, so I hacked this together based on the code for Scatter the Seeds, Reshape and Citanul Flute. Appears to work as intended but please do look it over.
This script doesn't work at the moment, because Convoke currently happens before the X is chosen.

Re: Card Contributions

PostPosted: 01 Apr 2012, 10:50
by Crea
Sloth wrote:
Crea wrote:Wanted to try out Chord of Calling earlier but found that Forge didn't have it yet, so I hacked this together based on the code for Scatter the Seeds, Reshape and Citanul Flute. Appears to work as intended but please do look it over.
This script doesn't work at the moment, because Convoke currently happens before the X is chosen.
Ah, you're right, seems I only tested for colored mana cost and didn't think to check to see if X can be paid using Convoke.

Re: Card Contributions

PostPosted: 05 Apr 2012, 02:17
by squee1968
The next batch is ready. I'm sorry it took so long, but things are still hectic here. Not sure when the next batch will be, maybe a week or so.

Code: Select all
Name:Vigorous Charge
ManaCost:G
Types:Instant
Text:no text
A:SP$ Pump | Cost$ G | ValidTgts$ Creature | KW$ Trample | SpellDescription$ Target creature gains trample until end of turn. Whenever that creature deals combat damage this turn, if CARDNAME was kicked, you gain life equal to that damage.
A:SP$ Pump | Cost$ G W | SetAsKicked$ True | ValidTgts$ Creature | KW$ Trample | RememberObjects$ Targeted | SubAbility$ VigorousPumping | SpellDescription$ Kicker W (You may pay an additional W as you cast this spell.)
SVar:VigorousPumping:Mode$ DamageDone | ValidSource$ Creature.IsRemembered | CombatDamage$ True | Execute$ VigorousLife
SVar:VigorousLife:DB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X | SubAbility$ DBCleanup
SVar:X:TriggerCount$DamageAmount
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/vigorous_charge.jpg
End
Code: Select all
Name:Vintara Elephant
ManaCost:4 G
Types:Creature Elephant
Text:no text
PT:4/3
K:Trample
A:AB$Pump | Cost$ 3 | Defined$ Self | AnyPlayer$ True | IsCurse$ True | SubAbility$ DBDebuff | SpellDescription$ CARDNAME loses trample until end of turn. Any player may activate this ability.
SVar:DBDebuff:DB$Animate | Defined$ Self | RemoveKeywords$ Trample
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/vintara_elephant.jpg
End
Code: Select all
Name:Volley of Boulders
ManaCost:8 R
Types:Sorcery
Text:no text
K:Flashback R R R R R R
A:SP$DealDamage | Cost$ 8 R | Tgt$ TgtCP | TgtPrompt$ Select target creature or player (1) | NumDmg$ 1 | SubAbility$ Dmg2 | SpellDescription$ CARDNAME deals 6 damage divided as you choose among any number of target creatures and/or players.
SVar:Dmg2:DB$DealDamage | Tgt$ TgtCP | TgtPrompt$ Select target creature or player (2) | NumDmg$ 1 | SubAbility$ Dmg3
SVar:Dmg3:DB$DealDamage | Tgt$ TgtCP | TgtPrompt$ Select target creature or player (3) | NumDmg$ 1 | SubAbility$ Dmg4
SVar:Dmg4:DB$DealDamage | Tgt$ TgtCP | TgtPrompt$ Select target creature or player (4) | NumDmg$ 1 | SubAbility$ Dmg5
SVar:Dmg5:DB$DealDamage | Tgt$ TgtCP | TgtPrompt$ Select target creature or player (5) | NumDmg$ 1 | SubAbility$ Dmg6
SVar:Dmg6:DB$DealDamage | Tgt$ TgtCP | TgtPrompt$ Select target creature or player (6) | NumDmg$ 1
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/volley_of_boulders.jpg
End
Code: Select all
Name:Walking Sponge
ManaCost:1 U
Types:Creature Sponge
Text:no text
PT:1/1
A:AB$ Charm | Cost$ T | Choices$ DBSpongeFly,DBSpongeStrike,DBSpongeTramp | Defined$ You | SpellDescription$ Target creature loses your choice of flying, first strike, or trample until end of turn.
SVar:DBSpongeFly:DB$Animate | ValidTgts$ Creature | RemoveKeywords$ Flying
SVar:DBSpongeStrike:DB$Animate | ValidTgts$ Creature | RemoveKeywords$ First Strike
SVar:DBSpongeTramp:DB$Animate | ValidTgts$ Creature | RemoveKeywords$ Trample
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/walking_sponge.jpg
End
Code: Select all
Name:Wall of Vipers
ManaCost:2 B
Types:Creature Snake Wall
Text:no text
PT:2/4
K:Defender
A:AB$ Destroy | Cost$ 3 | Defined$ Self | AnyPlayer$ True | SubAbility$ SnakeBite | SpellDescription$ Destroy CARDNAME and target creature it's blocking. Any player may activate this ability.
SVar:SnakeBite:DB$ Destroy | ValidTgts$ Creature.blockedBySource
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/wall_of_vipers.jpg
End
Code: Select all
Name:Wandering Eye
ManaCost:2 U
Types:Creature Illusion
Text:no text
PT:1/3
K:Flying
S:Mode$ Continuous | Affected$ Player | AddKeyword$ Play with your hand revealed. | Description$ Players play with their hands revealed.
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/wandering_eye.jpg
End
Code: Select all
Name:Wash Out
ManaCost:3 U
Types:Sorcery
Text:no text
A:SP$ ChooseColor | Cost$ 3 U | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBWash | SpellDescription$ Return all permanents of the color of your choice to their owners' hands.
SVar:DBWash:DB$ ChangeZoneAll | ChangeType$ Permanent.ChosenColor | Origin$ Battlefield | Destination$ Hand
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/wash_out.jpg
End
Code: Select all
Name:Weight of Spires
ManaCost:R
Types:Instant
Text:no text
A:SP$ Charm | Cost$ R | Choices$ DBSmartChoice, DBStupidChoice | Defined$ You | SpellDescription$ CARDNAME deals damage to target creature equal to the number of nonbasic lands that creature's controller controls.
SVar:DBSmartChoice:AB$ DealDamage | Cost$ 0 | ValidTgts$ Creature.YouDontCtrl| TgtPrompt$ Select target creature you don't control | NumDmg$ X
SVar:DBStupidChoice:AB$ DealDamage | Cost$ 0 | ValidTgts$ Creature.YouCtrl | Secondary$ True | TgtPrompt$ Select target creature you control | NumDmg$ Y
SVar:X:Count$Valid Land.nonBasic+YouDontCtrl
SVar:Y:Count$Valid Land.nonBasic+YouCtrl
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/weight_of_spires.jpg
End
Code: Select all
Name:Weird Harvest
ManaCost:X G G
Types:Sorcery
Text:no text
A:SP$ ChangeZone | Cost$ X G G | Origin$ Library | Destination$ Hand | DefinedPlayer$ Each | ChangeType$ Card.Creature | Reveal$ True | Shuffle$ True | ChangeNum$ X | SpellDescription$ Each player may search his or her library for up to X creature cards, reveal those cards, and put them into his or her hand. Then each player who searched his or her library this way shuffles it.
SVar:X:Count$xPaid
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/weird_harvest.jpg
End
Code: Select all
Name:Whirlpool Warrior
ManaCost:2 U
Types:Creature Merfolk Warrior
Text:no text
PT:2/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ WhirlYou | TriggerDescription$ When CARDNAME enters the battlefield, shuffle the cards from your hand into your library, then draw that many cards.
SVar:WhirlYou:DB$ ChangeZoneAll | Defined$ You | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | ForgetOtherRemembered$ True | Shuffle$ True | SubAbility$ DBDraw
SVar:DBDraw:DB$Draw | NumCards$ X | Defined$ You | SubAbility$ DBCleanup
A:AB$ ChangeZoneAll | Cost R Sac<1/CARDNAME> | Defined$ You | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | ForgetOtherRemembered$ True | Shuffle$ True | SubAbility$ WhirlDraw | SpellDescription$ Each player shuffles the cards from his or her hand into his or her library, then draws that many cards.
SVar:WhirlDraw:DB$Draw | NumCards$ X | Defined$ You | SubAbility$ CleanThePool
SVar:CleanThePool:DB$Cleanup | ClearRemembered$ True | SubAbility$ WhirlOpp
SVar:WhirlOpp:DB$ ChangeZoneAll | Defined$ Opponent | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | ForgetOtherRemembered$ True | Shuffle$ True | SubAbility$ WhirlDrawOpp
SVar:WhirlDrawOpp:DB$Draw | NumCards$ X | Defined$ Opponent | SubAbility$ DBCleanup
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
SVar:X:Remembered$Amount
SVar:RemRandomDeck:True
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/whirlpool_warrior.jpg
End
As an added bonus, if Whirlpool Warrior is acceptable, then Winds of Change can be converted to script (And we would be halfway towards making Molten Psyche scriptable).

Code: Select all
Name:Winds of Change
ManaCost:R
Types:Sorcery
Text:no text
A:SP$ ChangeZoneAll | Cost R | Defined$ You | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | ForgetOtherRemembered$ True | Shuffle$ True | SubAbility$ WindDraw | SpellDescription$ Each player shuffles the cards from his or her hand into his or her library, then draws that many cards.
SVar:WindDraw:DB$Draw | NumCards$ X | Defined$ You | SubAbility$ CleanTheWind
SVar:CleanTheWind:DB$Cleanup | ClearRemembered$ True | SubAbility$ WindOpp
SVar:WindOpp:DB$ ChangeZoneAll | Defined$ Opponent | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | ForgetOtherRemembered$ True | Shuffle$ True | SubAbility$ WindDrawOpp
SVar:WindDrawOpp:DB$Draw | NumCards$ X | Defined$ Opponent | SubAbility$ DBCleanup
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
SVar:X:Remembered$Amount
SVar:RemRandomDeck:True
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/winds_of_change.jpg
SetInfo:5ED|Rare|http://magiccards.info/scans/en/5e/275.jpg
SetInfo:4ED|Rare|http://magiccards.info/scans/en/4e/250.jpg
SetInfo:POR|Rare|http://magiccards.info/scans/en/po/162.jpg
SetInfo:LEG|Uncommon|http://magiccards.info/scans/en/lg/169.jpg
Oracle:Each player shuffles the cards from his or her hand into his or her library, then draws that many cards.
End

Re: Card Contributions

PostPosted: 05 Apr 2012, 11:28
by Sloth
squee1968 wrote:The next batch is ready. I'm sorry it took so long, but things are still hectic here. Not sure when the next batch will be, maybe a week or so.
Vintara Elephant: Is there a need for the use of AF Pump in addition to AF Animate?

Walking Sponge: Should use AF GenericChoice instead of AF Charm (the mode is chosen at resolution).

Wall of Vipers: Added.

Wandering Eye: Added.

Wash Out: Added.

Re: Card Contributions

PostPosted: 05 Apr 2012, 21:17
by Sloth
More comments:

Weight of Spires: Is not correct this way, the controller of the target may change (which would cause your version to fizzle).

Whirlpool Warrior: Added.

Winds of Change: Converted.

Thanks Squee. I will be away from keyboard for the next week. I hope someone else will check the other cards.

Re: Card Contributions

PostPosted: 06 Apr 2012, 05:35
by moomarc
Sloth wrote:Thanks Squee. I will be away from keyboard for the next week. I hope someone else will check the other cards.
I'm trying to get the new pet images ready as my primary goal at the moment, but I'll try test the others in between.

Re: Card Contributions

PostPosted: 13 Apr 2012, 14:13
by moomarc
Sloth wrote:Weight of Spires: Is not correct this way, the controller of the target may change (which would cause your version to fizzle).
I added support for TargetedControllerCtrl to isValid, so Weight of Spires is now added. Thanks Squee! For your interest, here's the final active lines of script:
Code: Select all
A:SP$ DealDamage | Cost$ R | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SpellDescription$ CARDNAME deals damage to target creature equal to the number of nonbasic lands that creature's controller controls.
SVar:X:Count$Valid Land.nonBasic+TargetedControllerCtrl
Edit: fixed broken quote.