mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
[ZNR] fixed issues with Thieving Skydiver cost limitations and text (#7046)
This commit is contained in:
parent
bd5c3293d8
commit
45a2532a89
4 changed files with 28 additions and 13 deletions
|
@ -4,9 +4,6 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.VariableCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.costs.mana.VariableManaCost;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.GetKickerXValue;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -40,20 +37,18 @@ public final class ThievingSkydiver extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Kicker {X}. X can't be 0.
|
||||
Ability ability = new KickerAbility(new ManaCostsImpl<>("{X}"));
|
||||
for (VariableCost cost : ability.getManaCosts().getVariableCosts()) {
|
||||
if (cost instanceof VariableManaCost) {
|
||||
((VariableManaCost) cost).setMinX(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.addAbility(ability);
|
||||
KickerAbility kickerAbility = new KickerAbility("{X}");
|
||||
kickerAbility.getKickerCosts().stream().forEach(cost -> {
|
||||
cost.setMinimumCost(1);
|
||||
cost.setReminderText(". X can't be 0.");
|
||||
});
|
||||
this.addAbility(kickerAbility);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When Thieving Skydiver enters the battlefield, if it was kicked, gain control of target artifact with converted mana cost X or less. If that artifact is an Equipment, attach it to Thieving Skydiver.
|
||||
ability = new ConditionalInterveningIfTriggeredAbility(
|
||||
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
||||
new EntersBattlefieldTriggeredAbility(new GainControlTargetEffect(Duration.Custom), false),
|
||||
KickedCondition.instance, "When {this} enters the battlefield, if it was kicked, " +
|
||||
"gain control of target artifact with converted mana cost X or less. " +
|
||||
|
|
|
@ -25,6 +25,10 @@ public interface OptionalAdditionalCost extends Cost, Copyable<OptionalAdditiona
|
|||
*/
|
||||
String getReminderText();
|
||||
|
||||
void setReminderText(String reminderText);
|
||||
|
||||
void setMinimumCost(int minimumCost);
|
||||
|
||||
/**
|
||||
* Returns a text suffix for the game log, that can be added to the cast
|
||||
* message.
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package mage.abilities.costs;
|
||||
|
||||
import mage.abilities.costs.mana.VariableManaCost;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
@ -71,6 +73,20 @@ public class OptionalAdditionalCostImpl extends CostsImpl<Cost> implements Optio
|
|||
return replace;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReminderText(String reminderText) {
|
||||
this.reminderText = reminderText;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMinimumCost(int minimumCost) {
|
||||
for (VariableCost cost : this.getVariableCosts()) {
|
||||
if (cost instanceof VariableManaCost) {
|
||||
((VariableManaCost) cost).setMinX(minimumCost);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a text suffix for the game log, that can be added to the cast
|
||||
* message.
|
||||
|
|
|
@ -247,7 +247,7 @@ public class KickerAbility extends StaticAbility implements OptionalAdditionalSo
|
|||
sb.append(' ').append(remarkText);
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
return sb.toString().replace(" .",".");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue