Have you looked at Wagic or Incantus or any of the others that are able to implement cards using very simple syntax? How does your new method compare?
I did look to Wagic, Incantus, Mage and Forge, but it is a long while ago.
I did that however after I made Magarena open source.
Let's take
Bladewing the Risen which I mentioned in a previous post as example.
I hope the authors of the mentioned projects do not mind this comparison.
This has nothing to do with what is better, because whatever lets people enjoy the cards is a good formula.
First how did Magarena implement this card previously?
There would be a card properties file and Java class containing code for the activated and triggered abilities.
Unfortunately the card is not yet available in Magarena 1.31, but here is for instance the properties file for
Rorix Bladewing, which is fully scriptable without Java code :
- Code: Select all
name=Rorix Bladewing
url=http://magiccards.info/pch/en/65.html
image=http://magiccards.info/scans/en/pch/65.jpg
value=4.460
rarity=R
type=Legendary,Creature
subtype=Dragon
cost={3}{R}{R}{R}
pt=6/5
ability=flying,haste
timing=fmain
Mage would just have a
Bladewing the Risen class, with all the code written in Java, also the properties.
I also could not find the card in Incantus, but it works similar to Magarena.
A part of the card code are properties and the other part would be
Python script code for the abilities. This is for instance
Shivan Dragon :
- Code: Select all
name = 'Shivan Dragon'
cost = '4RR'
types = Creature
subtypes = Dragon
power = 5
toughness = 5
text = ['Flying', '{R}: ~ gets +1/+0 until end of turn.']
#################################
abilities.add(flying())
@activated(txt=text[1])
def ability():
def effects(controller, source):
cost = yield ManaCost('R')
target = yield NoTarget()
until_end_of_turn(source.augment_power_toughness(1, 0))
yield
return effects
abilities.add(ability)
--------------- Shivan Dragon
Wagic and Forge both have a full custom scripting approach.
This snippet comes from the latest Wagic release :
- Code: Select all
[card]
name=Bladewing the Risen
abilities=flying
auto=may moveTo(myBattlefield) target(dragon[-instant;-sorcery]|mygraveyard)
auto={B}{R}:lord(dragon) 1/1
text=Flying -- When Bladewing the Risen enters the battlefield, you may return target Dragon permanent card from your graveyard to the battlefield. -- {B}{R}: Dragon creatures get +1/+1 until end of turn.
mana={3}{B}{B}{R}{R}
type=Legendary Creature
subtype=Zombie Dragon
power=4
toughness=4
[/card]
And this snippet comes from the latest Forge release :
- Code: Select all
Name:Bladewing the Risen
ManaCost:3 B B R R
Types:Legendary Creature Zombie Dragon
Text:no text
PT:4/4
K:Flying
A:AB$ PumpAll | Cost$ B R | ValidCards$ Creature.Dragon | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ Dragon creatures get +1/+1 until end of turn.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may return target Dragon permanent card from your graveyard to the battlefield.
SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Permanent.Dragon+YouOwn | TgtPrompt$ Choose target Dragon permanent in your graveyard.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/bladewing_the_risen.jpg
SetInfo:SCG|Rare|http://magiccards.info/scans/en/sc/136.jpg
SetInfo:COM|Rare|http://magiccards.info/scans/en/cmd/185.jpg
Oracle:Flying\nWhen Bladewing the Risen enters the battlefield, you may return target Dragon permanent card from your graveyard to the battlefield.\n{B}{R}: Dragon creatures get +1/+1 until end of turn.
End
And last but not least, how does the code look in Magarena 2012. Wait, is it even code?
- Code: Select all
Legendary Creature — Zombie Dragon 4/4, 3BBRR (7)
Flying
When Bladewing the Risen enters the battlefield, you may return target Dragon permanent card from your graveyard to the battlefield.
{B}{R}: Dragon creatures get +1/+1 until end of turn.
I hope this makes clear what I try to do and why I find it a unique approach.
This post certainly took a while to write, it looks like a blog article.
Even if people write stuff from scratch, they can get inspiration from the other projects and have a much higher chance of success.