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 r = r1 == null ? r2 : ( r2 == null ? r1 : r1 + "." + r2);
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
// 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.
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 {
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
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.xCantBe0 = "XCantBe0".equals(restriction);
this.xCantBe0 = XCantBe0;
this.isExiledCreatureCost = exiledCreatureCost;
this.isEnchantedCreatureCost = enchantedCreatureCost;
this.restriction = xCantBe0 || isExiledCreatureCost || isEnchantedCreatureCost? null : restriction;