Merge branch 'fixX' into 'master'

Fix Thieving Skydiver 0 kicker

See merge request core-developers/forge!4450
This commit is contained in:
Michael Kamensky
2021-04-10 16:28:25 +00:00
2 changed files with 5 additions and 4 deletions

View File

@@ -866,11 +866,12 @@ public class Cost implements Serializable {
String r1 = mPart.getRestiction(); String r1 = mPart.getRestiction();
String r = r1 == null ? r2 : ( r2 == null ? r1 : r1 + "." + r2); String r = r1 == null ? r2 : ( r2 == null ? r1 : r1 + "." + r2);
costParts.remove(costPart2); costParts.remove(costPart2);
if (r == null && (mPart.isExiledCreatureCost() || mPart.isEnchantedCreatureCost())) { boolean XCantBe0 = !mPart.canXbe0() || !costPart2.canXbe0();
if (r == null && (mPart.isExiledCreatureCost() || mPart.isEnchantedCreatureCost() || XCantBe0)) {
// FIXME: something was amiss when trying to add the cost since the mana cost is either \EnchantedCost or \Exiled but the // FIXME: something was amiss when trying to add the cost since the mana cost is either \EnchantedCost or \Exiled but the
// restriction no longer marks it as such. Therefore, we need to explicitly copy the ExiledCreatureCost/EnchantedCreatureCost // restriction no longer marks it as such. Therefore, we need to explicitly copy the ExiledCreatureCost/EnchantedCreatureCost
// to make cards like Merseine or Back from the Brink work. // to make cards like Merseine or Back from the Brink work.
costParts.add(0, new CostPartMana(oldManaCost.toManaCost(), r, mPart.isExiledCreatureCost(), mPart.isEnchantedCreatureCost())); costParts.add(0, new CostPartMana(oldManaCost.toManaCost(), r, mPart.isExiledCreatureCost(), mPart.isEnchantedCreatureCost(), XCantBe0));
} else { } else {
costParts.add(0, new CostPartMana(oldManaCost.toManaCost(), r)); costParts.add(0, new CostPartMana(oldManaCost.toManaCost(), r));
} }

View File

@@ -57,9 +57,9 @@ public class CostPartMana extends CostPart {
} }
// This version of the constructor allows to explicitly set exiledCreatureCost/enchantedCreatureCost, used only when copying costs // This version of the constructor allows to explicitly set exiledCreatureCost/enchantedCreatureCost, used only when copying costs
public CostPartMana(final ManaCost cost, String restriction, boolean exiledCreatureCost, boolean enchantedCreatureCost) { public CostPartMana(final ManaCost cost, String restriction, boolean exiledCreatureCost, boolean enchantedCreatureCost, boolean XCantBe0) {
this.cost = cost; this.cost = cost;
this.xCantBe0 = "XCantBe0".equals(restriction); this.xCantBe0 = XCantBe0;
this.isExiledCreatureCost = exiledCreatureCost; this.isExiledCreatureCost = exiledCreatureCost;
this.isEnchantedCreatureCost = enchantedCreatureCost; this.isEnchantedCreatureCost = enchantedCreatureCost;
this.restriction = xCantBe0 || isExiledCreatureCost || isEnchantedCreatureCost? null : restriction; this.restriction = xCantBe0 || isExiledCreatureCost || isEnchantedCreatureCost? null : restriction;