mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Fix crash in WrappedAbility
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
package forge.game.spellability;
|
package forge.game.spellability;
|
||||||
|
|
||||||
import com.esotericsoftware.minlog.Log;
|
import com.esotericsoftware.minlog.Log;
|
||||||
|
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
@@ -33,22 +34,19 @@ import forge.game.cost.Cost;
|
|||||||
*/
|
*/
|
||||||
public abstract class Ability extends SpellAbility {
|
public abstract class Ability extends SpellAbility {
|
||||||
|
|
||||||
/**
|
protected Ability(final Card sourceCard, final ManaCost manaCost) {
|
||||||
* <p>
|
this(sourceCard, new Cost(manaCost, true), null);
|
||||||
* Constructor for Ability.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param sourceCard
|
|
||||||
* a {@link forge.game.card.Card} object.
|
|
||||||
* @param manaCost
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
public Ability(final Card sourceCard, final ManaCost manaCost) {
|
|
||||||
this(sourceCard, new Cost(manaCost, true));
|
|
||||||
}
|
}
|
||||||
public Ability(final Card sourceCard, final Cost cost) {
|
protected Ability(final Card sourceCard, final ManaCost manaCost, SpellAbilityView view0) {
|
||||||
super(sourceCard, cost);
|
this(sourceCard, new Cost(manaCost, true), view0);
|
||||||
}
|
}
|
||||||
|
protected Ability(final Card sourceCard, final Cost cost) {
|
||||||
|
this(sourceCard, cost, null);
|
||||||
|
}
|
||||||
|
protected Ability(final Card sourceCard, final Cost cost, SpellAbilityView view0) {
|
||||||
|
super(sourceCard, cost, view0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Constructor for Ability.
|
* Constructor for Ability.
|
||||||
@@ -78,7 +76,7 @@ public abstract class Ability extends SpellAbility {
|
|||||||
return this.getHostCard().isInPlay() && !this.getHostCard().isFaceDown();
|
return this.getHostCard().isInPlay() && !this.getHostCard().isFaceDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Ability PLAY_LAND_SURROGATE = new Ability(null, (Cost)null){
|
public static final Ability PLAY_LAND_SURROGATE = new Ability(null, (Cost)null, null){
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlay() {
|
public boolean canPlay() {
|
||||||
return true; //if this ability is added anywhere, it can be assumed that land can be played
|
return true; //if this ability is added anywhere, it can be assumed that land can be played
|
||||||
|
|||||||
@@ -134,11 +134,17 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
|||||||
|
|
||||||
private final SpellAbilityView view;
|
private final SpellAbilityView view;
|
||||||
|
|
||||||
public SpellAbility(final Card iSourceCard, Cost toPay) {
|
protected SpellAbility(final Card iSourceCard, Cost toPay) {
|
||||||
|
this(iSourceCard, toPay, null);
|
||||||
|
}
|
||||||
|
protected SpellAbility(final Card iSourceCard, Cost toPay, SpellAbilityView view0) {
|
||||||
id = nextId();
|
id = nextId();
|
||||||
hostCard = iSourceCard;
|
hostCard = iSourceCard;
|
||||||
payCosts = toPay;
|
payCosts = toPay;
|
||||||
view = new SpellAbilityView(this);
|
if (view0 == null) {
|
||||||
|
view0 = new SpellAbilityView(this);
|
||||||
|
}
|
||||||
|
view = view0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ public class WrappedAbility extends Ability implements ISpellAbility {
|
|||||||
|
|
||||||
boolean mandatory = false;
|
boolean mandatory = false;
|
||||||
|
|
||||||
public WrappedAbility(final Trigger regTrig, final SpellAbility sa0, final Player decider0) {
|
public WrappedAbility(final Trigger regtrig0, final SpellAbility sa0, final Player decider0) {
|
||||||
super(sa0.getHostCard(), ManaCost.ZERO);
|
super(regtrig0.getHostCard(), ManaCost.ZERO, sa0.getView());
|
||||||
regtrig = regTrig;
|
regtrig = regtrig0;
|
||||||
sa = sa0;
|
sa = sa0;
|
||||||
decider = decider0;
|
decider = decider0;
|
||||||
}
|
}
|
||||||
@@ -177,6 +177,16 @@ public class WrappedAbility extends Ability implements ISpellAbility {
|
|||||||
return sa.getRestrictions();
|
return sa.getRestrictions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Card getHostCard() {
|
||||||
|
return sa.getHostCard();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SpellAbilityView getView() {
|
||||||
|
return sa.getView();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStackDescription() {
|
public String getStackDescription() {
|
||||||
final StringBuilder sb = new StringBuilder(regtrig.toString());
|
final StringBuilder sb = new StringBuilder(regtrig.toString());
|
||||||
|
|||||||
Reference in New Issue
Block a user