mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
- Removed some unnecessary Replicate stuff.
This commit is contained in:
@@ -195,8 +195,6 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
|
||||
private int xManaCostPaid = 0;
|
||||
|
||||
private int replicateMagnitude = 0;
|
||||
|
||||
private int sunburstValue = 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* <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.
|
||||
/**
|
||||
|
||||
@@ -207,10 +207,6 @@ public class CardFactory {
|
||||
for (OptionalCost cost : original.getOptionalCostsPaid()) {
|
||||
c.addOptionalCostPaid(cost);
|
||||
}
|
||||
c.addReplicateMagnitude(original.getReplicateMagnitude());
|
||||
if (sa.isReplicate()) {
|
||||
copySA.setIsReplicate(true);
|
||||
}
|
||||
}
|
||||
|
||||
controller.getController().playSpellAbilityForFree(copySA);
|
||||
|
||||
@@ -2226,17 +2226,6 @@ public class CardFactoryUtil {
|
||||
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) {
|
||||
card.getState(CardCharacteristicName.Original).getSpellAbility().add(AbilityFactory.buildFusedAbility(card));
|
||||
|
||||
@@ -54,7 +54,6 @@ public abstract class SpellAbility implements ISpellAbility {
|
||||
private String description = "";
|
||||
private String stackDescription = "";
|
||||
private ManaCost multiKickerManaCost = null;
|
||||
private ManaCost replicateManaCost = null;
|
||||
private Player activatingPlayer = null;
|
||||
|
||||
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 flashBackAbility = false;
|
||||
private boolean replicate = false;
|
||||
private boolean cycling = false;
|
||||
private boolean delve = false;
|
||||
private boolean offering = false;
|
||||
@@ -236,28 +234,6 @@ public abstract class SpellAbility implements ISpellAbility {
|
||||
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>
|
||||
@@ -308,29 +284,6 @@ public abstract class SpellAbility implements ISpellAbility {
|
||||
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>
|
||||
* setIsMorphUp.
|
||||
|
||||
@@ -162,11 +162,6 @@ public class WrappedAbility extends Ability implements ISpellAbility {
|
||||
return sa.getMultiKickerManaCost();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ManaCost getReplicateManaCost() {
|
||||
return sa.getReplicateManaCost();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpellAbilityRestriction getRestrictions() {
|
||||
return sa.getRestrictions();
|
||||
@@ -242,11 +237,6 @@ public class WrappedAbility extends Ability implements ISpellAbility {
|
||||
return sa.isMultiKicker();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReplicate() {
|
||||
return sa.isReplicate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSpell() {
|
||||
return sa.isSpell();
|
||||
|
||||
@@ -338,27 +338,27 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
// The ability is added to stack HERE
|
||||
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
|
||||
// doesn't happen here
|
||||
|
||||
final Player activating = sp.getActivatingPlayer();
|
||||
final Cost costMultikicker = new Cost(sp.getReplicateManaCost(), false);
|
||||
sp.getSourceCard().resetReplicateMagnitude();
|
||||
final Cost costMultikicker = new Cost(sp.getPayCosts().getTotalMana(), false);
|
||||
boolean hasPaid = false;
|
||||
|
||||
do {
|
||||
int rMagnitude = sp.getSourceCard().getReplicateMagnitude();
|
||||
String prompt = String.format("Replicate for %s\r\nTimes Replicated: %d\r\n", sp.getSourceCard(), rMagnitude);
|
||||
String prompt = String.format("Replicate for %s\r\nTimes Replicated: %d\r\n", sp.getSourceCard(), magnitude);
|
||||
hasPaid = activating.getController().payManaOptional(sp.getSourceCard(), costMultikicker, prompt, ManaPaymentPurpose.Replicate);
|
||||
if( hasPaid )
|
||||
sp.getSourceCard().addReplicateMagnitude(1);
|
||||
magnitude++;
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user