mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Merge branch 'flingCopyFix' into 'master'
SpellAbility: do not reset the PaidHash for copied spells Closes #526 See merge request core-developers/forge!663
This commit is contained in:
@@ -95,7 +95,9 @@ public class ComputerUtil {
|
|||||||
sa.setHostCard(game.getAction().moveToStack(source, sa));
|
sa.setHostCard(game.getAction().moveToStack(source, sa));
|
||||||
}
|
}
|
||||||
|
|
||||||
sa.resetPaidHash();
|
if (sa.isCopied()) {
|
||||||
|
sa.resetPaidHash();
|
||||||
|
}
|
||||||
|
|
||||||
if (sa.getApi() == ApiType.Charm && !sa.isWrapper()) {
|
if (sa.getApi() == ApiType.Charm && !sa.isWrapper()) {
|
||||||
CharmEffect.makeChoices(sa);
|
CharmEffect.makeChoices(sa);
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ public class CardFactory {
|
|||||||
c.setMadness(original.isMadness());
|
c.setMadness(original.isMadness());
|
||||||
|
|
||||||
final SpellAbilityStackInstance si = controller.getGame().getStack().getInstanceFromSpellAbility(sa);
|
final SpellAbilityStackInstance si = controller.getGame().getStack().getInstanceFromSpellAbility(sa);
|
||||||
if (si != null) {
|
if (si != null) {
|
||||||
c.setXManaCostPaid(si.getXManaPaid());
|
c.setXManaCostPaid(si.getXManaPaid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -471,11 +471,11 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Combined PaidLists
|
// Combined PaidLists
|
||||||
public HashMap<String, CardCollection> getPaidHash() {
|
public Map<String, CardCollection> getPaidHash() {
|
||||||
return paidLists;
|
return paidLists;
|
||||||
}
|
}
|
||||||
public void setPaidHash(final HashMap<String, CardCollection> hash) {
|
public void setPaidHash(final Map<String, CardCollection> hash) {
|
||||||
paidLists = hash;
|
paidLists = Maps.newHashMap(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CardCollection getPaidList(final String str) {
|
public CardCollection getPaidList(final String str) {
|
||||||
@@ -667,8 +667,13 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
|||||||
if (node != this) {
|
if (node != this) {
|
||||||
sb.append(" ");
|
sb.append(" ");
|
||||||
}
|
}
|
||||||
|
String desc = node.getDescription();
|
||||||
if (node.getHostCard() != null) {
|
if (node.getHostCard() != null) {
|
||||||
sb.append(TextUtil.fastReplace(node.getDescription(), "CARDNAME", node.getHostCard().getName()));
|
desc = TextUtil.fastReplace(desc, "CARDNAME", node.getHostCard().getName());
|
||||||
|
if (node.getOriginalHost() != null) {
|
||||||
|
desc = TextUtil.fastReplace(desc, "ORIGINALHOST", node.getOriginalHost().getName());
|
||||||
|
}
|
||||||
|
sb.append(desc);
|
||||||
}
|
}
|
||||||
node = node.getSubAbility();
|
node = node.getSubAbility();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -198,8 +198,7 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set Cost specific things here
|
// Set Cost specific things here
|
||||||
ability.resetPaidHash();
|
ability.setPaidHash(paidHash);
|
||||||
ability.setPaidHash(new HashMap<String, CardCollection>(paidHash));
|
|
||||||
ability.setSplicedCards(splicedCards);
|
ability.setSplicedCards(splicedCards);
|
||||||
ability.getHostCard().setXManaCostPaid(xManaPaid);
|
ability.getHostCard().setXManaCostPaid(xManaPaid);
|
||||||
|
|
||||||
|
|||||||
@@ -81,12 +81,12 @@ public class WrappedAbility extends Ability {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPaidHash(final HashMap<String, CardCollection> hash) {
|
public void setPaidHash(final Map<String, CardCollection> hash) {
|
||||||
sa.setPaidHash(hash);
|
sa.setPaidHash(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HashMap<String, CardCollection> getPaidHash() {
|
public Map<String, CardCollection> getPaidHash() {
|
||||||
return sa.getPaidHash();
|
return sa.getPaidHash();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,9 @@ public class HumanPlaySpellAbility {
|
|||||||
ability.setHostCard(game.getAction().moveToStack(c, null));
|
ability.setHostCard(game.getAction().moveToStack(c, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
ability.resetPaidHash();
|
if (!ability.isCopied()) {
|
||||||
|
ability.resetPaidHash();
|
||||||
|
}
|
||||||
|
|
||||||
if (manaTypeConversion) {
|
if (manaTypeConversion) {
|
||||||
AbilityUtils.applyManaColorConversion(human, MagicColor.Constant.ANY_TYPE_CONVERSION);
|
AbilityUtils.applyManaColorConversion(human, MagicColor.Constant.ANY_TYPE_CONVERSION);
|
||||||
|
|||||||
Reference in New Issue
Block a user