- Fixed a problem with the third ability consisting of both sides of the split card being added onto the combined split card face.

- Merge: merging the latest trunk into SplitCards.
This commit is contained in:
Agetian
2013-03-03 11:50:43 +00:00
18 changed files with 54 additions and 42 deletions

View File

@@ -11,6 +11,7 @@ Deck Type=constructed
3 Brass Man|ARN 3 Brass Man|ARN
4 Giant Strength|4ED 4 Giant Strength|4ED
4 Goblin Balloon Brigade|4ED 4 Goblin Balloon Brigade|4ED
4 Goblin Digging Team|DRK
3 Hurr Jackal|ARN 3 Hurr Jackal|ARN
3 Immolation|LEG 3 Immolation|LEG
4 Lightning Bolt|2ED 4 Lightning Bolt|2ED
@@ -18,5 +19,4 @@ Deck Type=constructed
4 Mons's Goblin Raiders|3ED 4 Mons's Goblin Raiders|3ED
20 Mountain|4ED 20 Mountain|4ED
4 Sisters of the Flame|DRK 4 Sisters of the Flame|DRK
4 Winds of Change|4ED
[sideboard] [sideboard]

View File

@@ -9,6 +9,7 @@ Deck Type=constructed
[main] [main]
3 Ali Baba|ARN 3 Ali Baba|ARN
3 Ankh of Mishra|LEB 3 Ankh of Mishra|LEB
4 Black Vise|LEB
4 Giant Strength|4ED 4 Giant Strength|4ED
4 Goblin Balloon Brigade|4ED 4 Goblin Balloon Brigade|4ED
3 Hurr Jackal|ARN 3 Hurr Jackal|ARN
@@ -19,5 +20,4 @@ Deck Type=constructed
16 Mountain|4ED 16 Mountain|4ED
4 Sisters of the Flame|DRK 4 Sisters of the Flame|DRK
4 Strip Mine|ATQ 4 Strip Mine|ATQ
4 Winds of Change|4ED
[sideboard] [sideboard]

View File

@@ -7,17 +7,18 @@ Difficulty=easy
Description=Pumpable Red weenies with Dwarven Warriors and Meekstone. Description=Pumpable Red weenies with Dwarven Warriors and Meekstone.
Deck Type=constructed Deck Type=constructed
[main] [main]
1 Artifact Blast|ATQ
3 Ball Lightning|4ED 3 Ball Lightning|4ED
4 Bird Maiden|ARN 4 Bird Maiden|ARN
4 Blood Lust|LEG
2 Dragon Whelp|4ED 2 Dragon Whelp|4ED
4 Dwarven Warriors|LEB 4 Dwarven Warriors|LEB
1 Eternal Warrior|LEG
4 Firebreathing|4ED 4 Firebreathing|4ED
2 Hurloon Minotaur|LEB 2 Hurloon Minotaur|LEB
4 Hurr Jackal|ARN 4 Hurr Jackal|ARN
3 Iron Star|LEB 3 Iron Star|LEB
2 Meekstone|LEB 4 Meekstone|LEB
4 Mons's Goblin Raiders|3ED
23 Mountain|4ED 23 Mountain|4ED
2 Shatter|4ED 2 Shatter|4ED
3 The Brute|LEG
[sideboard] [sideboard]

View File

@@ -9,7 +9,6 @@ Deck Type=constructed
[main] [main]
3 Ball Lightning|4ED 3 Ball Lightning|4ED
4 Bird Maiden|ARN 4 Bird Maiden|ARN
4 Blood Lust|LEG
3 Dragon Whelp|4ED 3 Dragon Whelp|4ED
4 Dwarven Warriors|LEB 4 Dwarven Warriors|LEB
2 Fire Drake|CHR 2 Fire Drake|CHR
@@ -17,7 +16,8 @@ Deck Type=constructed
2 Hurloon Minotaur|LEB 2 Hurloon Minotaur|LEB
4 Hurr Jackal|ARN 4 Hurr Jackal|ARN
3 Iron Star|LEB 3 Iron Star|LEB
2 Meekstone|LEB 2 Lightning Bolt|2ED
4 Meekstone|LEB
23 Mountain|4ED 23 Mountain|4ED
2 Shatter|4ED 2 Shatter|4ED
[sideboard] [sideboard]

View File

@@ -8,17 +8,17 @@ Description=Big Green creatures with a splash of White.
Deck Type=constructed Deck Type=constructed
[main] [main]
4 Birds of Paradise|4ED 4 Birds of Paradise|4ED
1 Channel|4ED
2 Colossus of Sardia|4ED 2 Colossus of Sardia|4ED
2 Disenchant|4ED 2 Disenchant|4ED
3 Force of Nature|2ED 3 Force of Nature|2ED
20 Forest|4ED 16 Forest|4ED
3 Giant Growth|2ED 3 Giant Growth|2ED
2 Healing Salve|2ED 1 Healing Salve|2ED
3 Holy Strength|2ED
4 Hurricane|4ED 4 Hurricane|4ED
4 Plains|4ED 4 Plains|4ED
4 Radjan Spirit|4ED 4 Radjan Spirit|4ED
4 Savannah|LEB
4 Spirit Link|LEG 4 Spirit Link|LEG
4 Swords to Plowshares|LEB
4 War Mammoth|2ED 4 War Mammoth|2ED
[sideboard] [sideboard]

View File

@@ -7,23 +7,23 @@ Difficulty=very hard
Description=Big Green creatures with a splash of White. Description=Big Green creatures with a splash of White.
Deck Type=constructed Deck Type=constructed
[main] [main]
1 Channel|LEB 4 Birds of Paradise|4ED
1 Colossus of Sardia|ATQ
4 Desert Twister|4ED 4 Desert Twister|4ED
2 Disenchant|4ED 2 Disenchant|4ED
2 Flying Carpet|ARN
3 Force of Nature|LEB 3 Force of Nature|LEB
13 Forest|4ED 11 Forest|4ED
3 Giant Growth|2ED
2 Healing Salve|2ED
2 Holy Strength|4ED
4 Hurricane|4ED 4 Hurricane|4ED
4 Llanowar Elves|2ED 4 Llanowar Elves|2ED
1 Mox Emerald|LEB 1 Mox Emerald|2ED
1 Mox Pearl|LEB 1 Mox Jet|2ED
3 Plains|4ED 1 Mox Pearl|2ED
3 Radjan Spirit|LEG 1 Mox Ruby|2ED
1 Mox Sapphire|2ED
4 Plains|4ED
4 Savannah|LEB 4 Savannah|LEB
4 Spirit Link|LEG 4 Serra Angel|LEB
1 Sol Ring|LEB
2 Su-Chi|ATQ
4 Swords to Plowshares|LEB
4 War Mammoth|LEB 4 War Mammoth|LEB
[sideboard] [sideboard]

View File

@@ -7,17 +7,17 @@ Difficulty=hard
Description=Big Blue fliers and effects to impede opponent's progress. Description=Big Blue fliers and effects to impede opponent's progress.
Deck Type=constructed Deck Type=constructed
[main] [main]
4 Air Elemental|LEB
2 Control Magic|LEB 2 Control Magic|LEB
3 Counterspell|LEB
2 Energy Flux|4ED 2 Energy Flux|4ED
3 Feedback|LEB
4 Ghost Ship|DRK 4 Ghost Ship|DRK
4 Giant Tortoise|ARN 4 Giant Tortoise|ARN
22 Island|4ED 22 Island|4ED
2 Mahamoti Djinn|LEB 2 Mahamoti Djinn|LEB
4 Mana Short|LEB
4 Phantom Monster|LEB 4 Phantom Monster|LEB
4 Power Sink|4ED 4 Power Sink|4ED
4 Psychic Venom|LEB 4 Psychic Venom|LEB
2 Time Elemental|LEG 2 Time Elemental|LEG
3 Twiddle|LEB 3 Unsummon|LEB
[sideboard] [sideboard]

View File

@@ -7,19 +7,18 @@ Difficulty=very hard
Description=Big Blue fliers and effects to impede opponent's progress. Description=Big Blue fliers and effects to impede opponent's progress.
Deck Type=constructed Deck Type=constructed
[main] [main]
4 Air Elemental|LEB
1 Ancestral Recall|LEB 1 Ancestral Recall|LEB
2 Control Magic|LEB 4 Control Magic|LEB
2 Energy Flux|4ED
4 Ghost Ship|DRK 4 Ghost Ship|DRK
4 Giant Tortoise|ARN 4 Giant Tortoise|ARN
22 Island|4ED 22 Island|4ED
2 Mahamoti Djinn|LEB 4 Mahamoti Djinn|LEB
4 Mana Short|LEB 4 Mana Drain|LEG
1 Mox Sapphire|LEB 1 Mox Sapphire|LEB
4 Phantom Monster|LEB 4 Phantom Monster|LEB
4 Power Sink|4ED 4 Power Sink|4ED
4 Psychic Venom|LEB
1 Sol Ring|LEB 1 Sol Ring|LEB
2 Time Elemental|LEG 2 Time Elemental|LEG
3 Twiddle|LEB 1 Time Walk|LEB
[sideboard] [sideboard]

View File

@@ -84,6 +84,12 @@ public abstract class SpellAbilityAi {
if (sa.getRestrictions().getPlaneswalker() && Singletons.getModel().getGame().getPhaseHandler().is(PhaseType.MAIN2)) { if (sa.getRestrictions().getPlaneswalker() && Singletons.getModel().getGame().getPhaseHandler().is(PhaseType.MAIN2)) {
return true; return true;
} }
if (sa.isTrigger()) {
return true;
}
if (sa.isSpell() && !sa.isBuyBackAbility()) {
return false;
}
PhaseHandler phase = Singletons.getModel().getGame().getPhaseHandler(); PhaseHandler phase = Singletons.getModel().getGame().getPhaseHandler();
return phase.is(PhaseType.END_OF_TURN) && phase.getNextTurn().equals(ai); return phase.is(PhaseType.END_OF_TURN) && phase.getNextTurn().equals(ai);

View File

@@ -747,7 +747,7 @@ public class ChangeZoneAi extends SpellAbilityAi {
} }
} }
// Blink permanents with ETB triggers // Blink permanents with ETB triggers
else if (sa.isAbility() && (sa.getPayCosts() != null) && SpellAbilityAi.playReusable(ai, sa)) { else if (SpellAbilityAi.playReusable(ai, sa)) {
aiPermanents = CardLists.filter(aiPermanents, new Predicate<Card>() { aiPermanents = CardLists.filter(aiPermanents, new Predicate<Card>() {
@Override @Override
public boolean apply(final Card c) { public boolean apply(final Card c) {

View File

@@ -80,7 +80,7 @@ public class CounterAi extends SpellAbilityAi {
if (toPay <= usableManaSources) { if (toPay <= usableManaSources) {
// If this is a reusable Resource, feel free to play it most of // If this is a reusable Resource, feel free to play it most of
// the time // the time
if (!sa.getPayCosts().isReusuableResource() || sa.isSpell()) { if (!SpellAbilityAi.playReusable(ai,sa)) {
return false; return false;
} }
} }
@@ -148,7 +148,7 @@ public class CounterAi extends SpellAbilityAi {
if (toPay <= usableManaSources) { if (toPay <= usableManaSources) {
// If this is a reusable Resource, feel free to play it most // If this is a reusable Resource, feel free to play it most
// of the time // of the time
if (!sa.getPayCosts().isReusuableResource() || (MyRandom.getRandom().nextFloat() < .4)) { if (!SpellAbilityAi.playReusable(ai,sa) || (MyRandom.getRandom().nextFloat() < .4)) {
return false; return false;
} }
} }

View File

@@ -124,7 +124,7 @@ public class CountersPutAllAi extends SpellAbilityAi {
} }
} }
if (sa.isTrigger() || sa instanceof AbilitySub || SpellAbilityAi.playReusable(ai, sa)) { if (SpellAbilityAi.playReusable(ai, sa)) {
return chance; return chance;
} }

View File

@@ -132,7 +132,7 @@ public class LifeLoseAi extends SpellAbilityAi {
} }
boolean randomReturn = r.nextFloat() <= .6667; boolean randomReturn = r.nextFloat() <= .6667;
if (SpellAbilityAi.playReusable(ai, sa) || priority) { if (priority || SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true; randomReturn = true;
} }

View File

@@ -270,7 +270,7 @@ public class DiscardEffect extends RevealEffectBase {
List<Card> chosen = getDiscardedList(p, dPChHand); List<Card> chosen = getDiscardedList(p, dPChHand);
for (Card c : chosen) { for (Card c : chosen) {
dPChHand.remove(chosen); dPChHand.remove(c);
toBeDiscarded.add(c); toBeDiscarded.add(c);
} }
} else } else

View File

@@ -287,7 +287,9 @@ public class CardFactory {
// this is the "default" spell for permanents like creatures and artifacts // this is the "default" spell for permanents like creatures and artifacts
if (card.isPermanent() && !card.isAura() && !card.isLand()) { if (card.isPermanent() && !card.isAura() && !card.isLand()) {
card.addSpellAbility(new SpellPermanent(card)); if (card.getRules().getSplitType() != CardSplitType.Split) {
card.addSpellAbility(new SpellPermanent(card)); // ignore the default spell for combined split cards
}
} }
CardFactoryUtil.parseKeywords(card, cardName); CardFactoryUtil.parseKeywords(card, cardName);
@@ -358,6 +360,7 @@ public class CardFactory {
if (card.isInAlternateState()) { if (card.isInAlternateState()) {
card.setState(CardCharacteristicName.Original); card.setState(CardCharacteristicName.Original);
} }
if ( st == CardSplitType.Split ) { if ( st == CardSplitType.Split ) {
card.setName(rules.getName()); card.setName(rules.getName());
@@ -374,7 +377,8 @@ public class CardFactory {
combinedCardColorArr.add(combinedCardColor); combinedCardColorArr.add(combinedCardColor);
card.setColor(combinedCardColorArr); card.setColor(combinedCardColorArr);
// Combined abilities -- DOESN'T WORK AS DESIRED (?) // Combined abilities -- DOESN'T DISPLAY THE ABILITY TEXT IN THE CHOICE BOX YET
card.getCharacteristics().getIntrinsicAbility().clear();
for (String a : rules.getMainPart().getAbilities()) { for (String a : rules.getMainPart().getAbilities()) {
card.addIntrinsicAbility(a); card.addIntrinsicAbility(a);
} }

View File

@@ -78,7 +78,6 @@ public class CostPutCounter extends CostPartWithList {
super(amount, type, description); super(amount, type, description);
this.counter = cntr; this.counter = cntr;
} }
@Override @Override
public boolean isReusable() { return true; } public boolean isReusable() { return true; }

View File

@@ -56,6 +56,9 @@ public class CostReveal extends CostPartWithList {
super(amount, type, description); super(amount, type, description);
} }
@Override
public boolean isReusable() { return true; }
/* /*
* (non-Javadoc) * (non-Javadoc)
* *

View File

@@ -45,7 +45,7 @@ public class CostUnattach extends CostPartWithList {
public boolean isUndoable() { return false; } public boolean isUndoable() { return false; }
@Override @Override
public boolean isReusable() { return false; } public boolean isReusable() { return true; }
/* /*
* (non-Javadoc) * (non-Javadoc)