mirror of
https://github.com/correl/mage.git
synced 2024-11-14 19:19:32 +00:00
gen-card.pl some improvements for Planeswalker and split cards.
This commit is contained in:
parent
667d596f43
commit
c2d2ab2148
3 changed files with 101 additions and 7 deletions
|
@ -29,7 +29,11 @@ package mage.cards.[=$cardNameFirstLetter=];
|
|||
|
||||
import java.util.UUID;[=
|
||||
if ($power || $power eq 0) {
|
||||
$OUT .= "\nimport mage.MageInt;"
|
||||
if ($planeswalker) {
|
||||
$OUT .= "\nimport mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility;"
|
||||
}else {
|
||||
$OUT .= "\nimport mage.MageInt;"
|
||||
}
|
||||
}
|
||||
=][=$abilitiesImports=]
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -46,8 +50,12 @@ public class [=$className=] extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{[=$type=]}, "[=$manaCost=]");
|
||||
[=$subType=][=$colors=][=
|
||||
if ($power || $power eq 0) {
|
||||
$OUT .= "\n this.power = new MageInt($power);";
|
||||
$OUT .= "\n this.toughness = new MageInt($toughness);";
|
||||
if ($planeswalker) {
|
||||
$OUT .= "\n this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility($power));";
|
||||
} else {
|
||||
$OUT .= "\n this.power = new MageInt($power);";
|
||||
$OUT .= "\n this.toughness = new MageInt($toughness);";
|
||||
}
|
||||
}
|
||||
=][=$abilities=]
|
||||
}
|
||||
|
|
66
Utils/cardSplitClass.tmpl
Normal file
66
Utils/cardSplitClass.tmpl
Normal file
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.cards.[=$cardNameFirstLetter=];
|
||||
|
||||
import java.util.UUID;[=
|
||||
if ($power || $power eq 0) {
|
||||
$OUT .= "\nimport mage.MageInt;"
|
||||
}
|
||||
=][=$abilitiesImports=]
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author [=$author=]
|
||||
*/
|
||||
public class [=$className=] extends SplitCard {
|
||||
|
||||
public [=$className=](UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{[=$type=]}, "[=$manaCost=]");
|
||||
[=$subType=][=$colors=][=
|
||||
|
||||
// super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{3}{R}", "{2}{U}", SpellAbilityType.SPLIT_AFTERMATH);
|
||||
|
||||
if ($power || $power eq 0) {
|
||||
$OUT .= "\n this.power = new MageInt($power);";
|
||||
$OUT .= "\n this.toughness = new MageInt($toughness);";
|
||||
}
|
||||
=][=$abilities=]
|
||||
}
|
||||
|
||||
public [=$className=](final [=$className=] card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public [=$className=] copy() {
|
||||
return new [=$className=](this);
|
||||
}
|
||||
}
|
|
@ -90,7 +90,7 @@ $raritiesConversion{'Bonus'} = 'BONUS';
|
|||
|
||||
# Get card name
|
||||
my $cardName = $ARGV[0];
|
||||
if(!$cardName) {
|
||||
if (!$cardName) {
|
||||
print 'Enter a card name: ';
|
||||
$cardName = <STDIN>;
|
||||
chomp $cardName;
|
||||
|
@ -107,6 +107,18 @@ if (!exists $cards{$cardName}) {
|
|||
die "Card name doesn't exist: $cardName\n";
|
||||
}
|
||||
|
||||
my $cardTemplate = 'cardClass.tmpl';
|
||||
my $splitDelimiter = '//';
|
||||
my $splitSpell = 'false';
|
||||
|
||||
# Remove the // from name of split cards
|
||||
if (index($cardName, $splitDelimiter) != -1) {
|
||||
$cardName =~ s/$splitDelimiter/""/g;
|
||||
$cardTemplate = 'cardSplitClass.tmpl';
|
||||
$splitSpell = 'true';
|
||||
}
|
||||
|
||||
|
||||
# Check if card is already implemented
|
||||
my $fileName = "../Mage.Sets/src/mage/cards/".lc(substr($cardName, 0, 1))."/".toCamelCase($cardName).".java";
|
||||
if(-e $fileName) {
|
||||
|
@ -164,18 +176,24 @@ foreach my $setName (keys %{$cards{$cardName}}) {
|
|||
|
||||
# Generate the the card
|
||||
my $result;
|
||||
my $template = Text::Template->new(TYPE => 'FILE', SOURCE => 'cardClass.tmpl', DELIMITERS => [ '[=', '=]' ]);
|
||||
my $template = Text::Template->new(TYPE => 'FILE', SOURCE => $cardTemplate, DELIMITERS => [ '[=', '=]' ]);
|
||||
$vars{'author'} = $author;
|
||||
$vars{'manaCost'} = fixCost($card[4]);
|
||||
$vars{'power'} = $card[6];
|
||||
$vars{'toughness'} = $card[7];
|
||||
|
||||
my @types;
|
||||
$vars{'planeswalker'} = 'false';
|
||||
$vars{'subType'} = '';
|
||||
my $cardAbilities = $card[8];
|
||||
my $type = $card[5];
|
||||
while ($type =~ m/([a-zA-Z]+)( )*/g) {
|
||||
if (exists($cardTypes{$1})) {
|
||||
push(@types, $cardTypes{$1});
|
||||
push(@types, $cardTypes{$1});
|
||||
if ($cardTypes{$1} eq $cardTypes{'Planeswalker'}) {
|
||||
$vars{'planeswalker'} = 'true';
|
||||
$cardAbilities = $card[7];
|
||||
}
|
||||
} else {
|
||||
if (@types) {
|
||||
$vars{'subType'} .= "\n this.subtype.add(\"$1\");";
|
||||
|
@ -190,7 +208,8 @@ $vars{'type'} = join(', ', @types);
|
|||
$vars{'abilitiesImports'} = '';
|
||||
$vars{'abilities'} = '';
|
||||
|
||||
my @abilities = split('\$', $card[8]);
|
||||
|
||||
my @abilities = split('\$', $cardAbilities);
|
||||
foreach my $ability (@abilities) {
|
||||
$ability =~ s/ <i>.+?<\/i>//g;
|
||||
|
||||
|
@ -206,6 +225,7 @@ foreach my $ability (@abilities) {
|
|||
$kw = $kk;
|
||||
}
|
||||
}
|
||||
|
||||
if ($keywords{$kw}) {
|
||||
$vars{'abilities'} .= "\n // " . ucfirst($kwUnchanged);
|
||||
if ($keywords{$kw} eq 'instance') {
|
||||
|
|
Loading…
Reference in a new issue