- Removed some unnecessary Replicate stuff.

This commit is contained in:
Sloth
2013-06-17 20:28:36 +00:00
parent fb2d08032d
commit 3753d989b7
6 changed files with 9 additions and 117 deletions

View File

@@ -195,8 +195,6 @@ public class Card extends GameEntity implements Comparable<Card> {
private int xManaCostPaid = 0; private int xManaCostPaid = 0;
private int replicateMagnitude = 0;
private int sunburstValue = 0; private int sunburstValue = 0;
private byte colorsPaid = 0; private byte colorsPaid = 0;
@@ -4072,40 +4070,6 @@ public class Card extends GameEntity implements Comparable<Card> {
return hasK1 == costsPaid.contains(OptionalCost.Kicker2) ? (hasK1 ? 2 : 0) : 1; return hasK1 == costsPaid.contains(OptionalCost.Kicker2) ? (hasK1 ? 2 : 0) : 1;
} }
/**
* <p>
* addReplicateMagnitude.
* </p>
*
* @param n
* a int.
*/
public final void addReplicateMagnitude(final int n) {
this.replicateMagnitude += n;
}
/**
* <p>
* Setter for the field <code>replicateMagnitude</code>.
* </p>
*
* @param n
* a int.
*/
public final void resetReplicateMagnitude() {
this.replicateMagnitude = 0;
}
/**
* <p>
* Getter for the field <code>replicateMagnitude</code>.
* </p>
*
* @return a int.
*/
public final int getReplicateMagnitude() {
return this.replicateMagnitude;
}
// for cards like Giant Growth, etc. // for cards like Giant Growth, etc.
/** /**

View File

@@ -207,10 +207,6 @@ public class CardFactory {
for (OptionalCost cost : original.getOptionalCostsPaid()) { for (OptionalCost cost : original.getOptionalCostsPaid()) {
c.addOptionalCostPaid(cost); c.addOptionalCostPaid(cost);
} }
c.addReplicateMagnitude(original.getReplicateMagnitude());
if (sa.isReplicate()) {
copySA.setIsReplicate(true);
}
} }
controller.getController().playSpellAbilityForFree(copySA); controller.getController().playSpellAbilityForFree(copySA);

View File

@@ -2226,17 +2226,6 @@ public class CardFactoryUtil {
sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(k[1]))); sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(k[1])));
} }
} }
if (hasKeyword(card, "Replicate") != -1) {
final int n = hasKeyword(card, "Replicate");
final String parse = card.getKeyword().get(n).toString();
final String[] k = parse.split("cate ");
final SpellAbility sa = card.getFirstSpellAbility();
sa.setIsReplicate(true);
sa.setReplicateManaCost(new ManaCost(new ManaCostParser(k[1])));
}
if(hasKeyword(card, "Fuse") != -1) { if(hasKeyword(card, "Fuse") != -1) {
card.getState(CardCharacteristicName.Original).getSpellAbility().add(AbilityFactory.buildFusedAbility(card)); card.getState(CardCharacteristicName.Original).getSpellAbility().add(AbilityFactory.buildFusedAbility(card));

View File

@@ -54,7 +54,6 @@ public abstract class SpellAbility implements ISpellAbility {
private String description = ""; private String description = "";
private String stackDescription = ""; private String stackDescription = "";
private ManaCost multiKickerManaCost = null; private ManaCost multiKickerManaCost = null;
private ManaCost replicateManaCost = null;
private Player activatingPlayer = null; private Player activatingPlayer = null;
private boolean temporary; // that is given by some static ability private boolean temporary; // that is given by some static ability
@@ -74,7 +73,6 @@ public abstract class SpellAbility implements ISpellAbility {
private boolean temporarilySuppressed = false; private boolean temporarilySuppressed = false;
private boolean flashBackAbility = false; private boolean flashBackAbility = false;
private boolean replicate = false;
private boolean cycling = false; private boolean cycling = false;
private boolean delve = false; private boolean delve = false;
private boolean offering = false; private boolean offering = false;
@@ -236,28 +234,6 @@ public abstract class SpellAbility implements ISpellAbility {
this.multiKickerManaCost = cost; this.multiKickerManaCost = cost;
} }
/**
* <p>
* Getter for the field <code>replicateManaCost</code>.
* </p>
*
* @return a {@link java.lang.String} object.
*/
public ManaCost getReplicateManaCost() {
return this.replicateManaCost;
}
/**
* <p>
* Setter for the field <code>replicateManaCost</code>.
* </p>
*
* @param spellManaCost
* a {@link java.lang.String} object.
*/
public final void setReplicateManaCost(final ManaCost spellManaCost) {
this.replicateManaCost = spellManaCost;
}
/** /**
* <p> * <p>
@@ -308,29 +284,6 @@ public abstract class SpellAbility implements ISpellAbility {
return this.multiKickerManaCost != null && !this.isAnnouncing("Multikicker"); return this.multiKickerManaCost != null && !this.isAnnouncing("Multikicker");
} }
/**
* <p>
* setIsReplicate.
* </p>
*
* @param b
* a boolean.
*/
public final void setIsReplicate(final boolean b) {
this.replicate = b;
}
/**
* <p>
* isReplicate.
* </p>
*
* @return a boolean.
*/
public boolean isReplicate() {
return this.replicate;
}
/** /**
* <p> * <p>
* setIsMorphUp. * setIsMorphUp.

View File

@@ -162,11 +162,6 @@ public class WrappedAbility extends Ability implements ISpellAbility {
return sa.getMultiKickerManaCost(); return sa.getMultiKickerManaCost();
} }
@Override
public ManaCost getReplicateManaCost() {
return sa.getReplicateManaCost();
}
@Override @Override
public SpellAbilityRestriction getRestrictions() { public SpellAbilityRestriction getRestrictions() {
return sa.getRestrictions(); return sa.getRestrictions();
@@ -242,11 +237,6 @@ public class WrappedAbility extends Ability implements ISpellAbility {
return sa.isMultiKicker(); return sa.isMultiKicker();
} }
@Override
public boolean isReplicate() {
return sa.isReplicate();
}
@Override @Override
public boolean isSpell() { public boolean isSpell() {
return sa.isSpell(); return sa.isSpell();

View File

@@ -338,27 +338,27 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
// The ability is added to stack HERE // The ability is added to stack HERE
si = this.push(sp); si = this.push(sp);
if (sp.isReplicate()) { if (sp.isSpell() && sp.getSourceCard().hasStartOfKeyword("Replicate")) {
int magnitude = 0;
// TODO: convert multikicker/replicate support in abCost so this // TODO: convert multikicker/replicate support in abCost so this
// doesn't happen here // doesn't happen here
final Player activating = sp.getActivatingPlayer(); final Player activating = sp.getActivatingPlayer();
final Cost costMultikicker = new Cost(sp.getReplicateManaCost(), false); final Cost costMultikicker = new Cost(sp.getPayCosts().getTotalMana(), false);
sp.getSourceCard().resetReplicateMagnitude();
boolean hasPaid = false; boolean hasPaid = false;
do { do {
int rMagnitude = sp.getSourceCard().getReplicateMagnitude(); String prompt = String.format("Replicate for %s\r\nTimes Replicated: %d\r\n", sp.getSourceCard(), magnitude);
String prompt = String.format("Replicate for %s\r\nTimes Replicated: %d\r\n", sp.getSourceCard(), rMagnitude);
hasPaid = activating.getController().payManaOptional(sp.getSourceCard(), costMultikicker, prompt, ManaPaymentPurpose.Replicate); hasPaid = activating.getController().payManaOptional(sp.getSourceCard(), costMultikicker, prompt, ManaPaymentPurpose.Replicate);
if( hasPaid ) if( hasPaid )
sp.getSourceCard().addReplicateMagnitude(1); magnitude++;
} while( hasPaid ); } while( hasPaid );
for (int i = 0; i < magnitude; i++) {
CardFactory.copySpellontoStack(sp.getSourceCard(), sp.getSourceCard(), sp, false, null);
}
} }
for (int i = 0; i < sp.getSourceCard().getReplicateMagnitude(); i++) {
CardFactory.copySpellontoStack(sp.getSourceCard(), sp.getSourceCard(), sp, false, null);
}
} }
} }