Thanks! 3500's gonna be sweet. Just 12000 to go

But now...
Here comes the pain(lands)!
Add this either just in CardFactory before the links to the specific factories OR at the end of CardFactory and at the end of CardFactory_Lands.
- Code: Select all
while(hasKeyword(card,"paintap") != -1)
{
String toParse = card.getIntrinsicKeyword().get(hasKeyword(card,"paintap"));
card.removeIntrinsicKeyword(toParse);
String[] splitkeyword = toParse.split(":");
final int amountHurt = Integer.parseInt(splitkeyword[1]);
final String manaGenerated = splitkeyword[2];
final Ability_Mana addMana = new Ability_Mana(card, "tap: add " + manaGenerated + " to your mana pool.CARDNAME deals " + amountHurt + " damage to you.") {
private static final long serialVersionUID = -259088242789L;
@Override
public void resolve()
{
AllZone.GameAction.getPlayerLife(getController()).subtractLife(amountHurt);
super.resolve();
}
@Override
public String mana() {
return manaGenerated;
}
};
card.addSpellAbility(addMana);
}//paintap
Keyword format: "paintap:AmountOfDamageToGivePlayer:ManaToGivePlayer"
Yes, I know, all pain lands do only 1 damage but flexibility isn't a bad thing, for neither custom or possibly upcoming cards.
cards.txt entries:
- Code: Select all
Adarkar Wastes
no cost
Land
no text
tap: add 1
paintap:1:W
paintap:1:U
Brushland
no cost
Land
no text
tap: add 1
paintap:1:W
paintap:1:G
Karplusan Forest
no cost
Land
no text
tap: add 1
paintap:1:R
paintap:1:G
Sulfurous Springs
no cost
Land
no text
tap: add 1
paintap:1:B
paintap:1:R
Underground River
no cost
Land
no text
tap: add 1
paintap:1:U
paintap:1:B
Battlefield Forge
no cost
Land
no text
tap: add 1
paintap:1:W
paintap:1:R
Caves of Koilos
no cost
Land
no text
tap: add 1
paintap:1:W
paintap:1:B
Llanowar Wastes
no cost
Land
no text
tap: add 1
paintap:1:B
paintap:1:G
Shivan Reef
no cost
Land
no text
tap: add 1
paintap:1:U
paintap:1:R
Yavimaya Coast
no cost
Land
no text
tap: add 1
paintap:1:U
paintap:1:G
Salt Flats
no cost
Land
no text
tap: add 1
paintap:1:W
paintap:1:B
Comes into play tapped.
Pine Barrens
no cost
Land
no text
tap: add 1
paintap:1:B
paintap:1:G
Comes into play tapped.
Skyshroud Forest
no cost
Land
no text
tap: add 1
paintap:1:G
paintap:1:U
Comes into play tapped.
Caldera Lake
no cost
Land
no text
tap: add 1
paintap:1:U
paintap:1:R
Comes into play tapped.
Scabland
no cost
Land
no text
tap: add 1
paintap:1:R
paintap:1:W
Comes into play tapped.
Talisman of Dominance
2
Artifact
no text
tap: add 1
paintap:1:U
paintap:1:B
Talisman of Impulse
2
Artifact
no text
tap: add 1
paintap:1:R
paintap:1:G
Talisman of Indulgence
2
Artifact
no text
tap: add 1
paintap:1:B
paintap:1:R
Talisman of Progress
2
Artifact
no text
tap: add 1
paintap:1:W
paintap:1:U
Talisman of Unity
2
Artifact
no text
tap: add 1
paintap:1:G
paintap:1:W
Remove the following from Ability_Mana:
- Code: Select all
//pain lands
ArrayList<String> pain = new ArrayList<String>();
pain.add("Battlefield Forge");
pain.add("Caves of Koilos");
pain.add("Llanowar Wastes");
pain.add("Shivan Reef");
pain.add("Yavimaya Coast");
pain.add("Adarkar Wastes");
pain.add("Brushland");
pain.add("Karplusan Forest");
pain.add("Underground River");
pain.add("Sulfurous Springs");
if(pain.contains(sourceCard.getName()) && !Mana.equals("1")) runcommands.add(new Command() {
private static final long serialVersionUID = -5904507275105961979L;
public void execute() {
AllZone.GameAction.getPlayerLife(getController()).subtractLife(1);
}
});
(I actually sorta-kinda got this code working, but still, a generalized keyword > hardcoded lists)
The one thing about this is that the pain mana can be used directly in payment, like ordinary lands. This means that if the painland can only produce one type of mana needed for the cost (for instance, tapping an
Adarkar Wastes during payment for an
Akrasan Squire) it will not ask for confirmation and just use the mana and deal the damage directly. It *can* be rewritten into a normal ability, though, so it's not a huge issue but then you won't be able to use that mana like ordinary lands.