mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
ControlGain: Fix NPE
This commit is contained in:
@@ -45,7 +45,7 @@ public class CreatureEvaluator implements Function<Card, Integer> {
|
||||
value += addValue(toughness * 10, "toughness: " + toughness);
|
||||
|
||||
// because backside is always stronger the potential makes it better than a single faced card
|
||||
if (c.hasKeyword(Keyword.DAYBOUND)) {
|
||||
if (c.hasKeyword(Keyword.DAYBOUND) && c.hasBackSide()) {
|
||||
value += addValue(power * 10, "transforming");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,11 +124,12 @@ public class ControlGainEffect extends SpellAbilityEffect {
|
||||
sa.getParam("Chooser"), sa).get(0) : activator;
|
||||
CardCollectionView choices = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield),
|
||||
sa.getParam("Choices"), activator, source, sa);
|
||||
if (!choices.isEmpty()) {
|
||||
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") :
|
||||
Localizer.getInstance().getMessage("lblChooseaCard") +" ";
|
||||
tgtCards = chooser.getController().chooseCardsForEffect(choices, sa, title, 1, 1, false, null);
|
||||
if (choices.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") :
|
||||
Localizer.getInstance().getMessage("lblChooseaCard") +" ";
|
||||
tgtCards = chooser.getController().chooseCardsForEffect(choices, sa, title, 1, 1, false, null);
|
||||
} else {
|
||||
tgtCards = getDefinedCards(sa);
|
||||
}
|
||||
|
||||
@@ -1703,7 +1703,7 @@ public class CardProperty {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("hadToAttackThisCombat")) {
|
||||
AttackRequirement e = game.getCombat().getAttackConstraints().getRequirements().get(card);
|
||||
AttackRequirement e = combat.getAttackConstraints().getRequirements().get(card);
|
||||
if (e == null || !e.hasCreatureRequirement() || !e.getAttacker().equalsWithTimestamp(card)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -384,7 +384,8 @@ public abstract class Trigger extends TriggerReplacementBase {
|
||||
for (Player opp : this.getHostCard().getController().getOpponents()) {
|
||||
if (opp.equals(attackedP)) {
|
||||
continue;
|
||||
} else if (opp.getLife() > life) {
|
||||
}
|
||||
if (opp.getLife() > life) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -175,21 +175,6 @@ public class WrappedAbility extends Ability {
|
||||
return sa.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getActivatingPlayer() {
|
||||
return sa.getActivatingPlayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return sa.getDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ManaCost getMultiKickerManaCost() {
|
||||
return sa.getMultiKickerManaCost();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpellAbilityRestriction getRestrictions() {
|
||||
return sa.getRestrictions();
|
||||
@@ -249,14 +234,18 @@ public class WrappedAbility extends Ability {
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbilitySub getSubAbility() {
|
||||
return sa.getSubAbility();
|
||||
public void setStackDescription(final String s) {
|
||||
sa.setStackDescription(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TargetRestrictions getTargetRestrictions() {
|
||||
return sa.getTargetRestrictions();
|
||||
}
|
||||
@Override
|
||||
public void setTargetRestrictions(final TargetRestrictions tgt) {
|
||||
sa.setTargetRestrictions(tgt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Card getTargetCard() {
|
||||
@@ -267,6 +256,10 @@ public class WrappedAbility extends Ability {
|
||||
public TargetChoices getTargets() {
|
||||
return sa.getTargets();
|
||||
}
|
||||
@Override
|
||||
public void setTargets(TargetChoices targets) {
|
||||
sa.setTargets(targets);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAbility() {
|
||||
@@ -327,16 +320,28 @@ public class WrappedAbility extends Ability {
|
||||
// sa.resetOnceResolved();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getActivatingPlayer() {
|
||||
return sa.getActivatingPlayer();
|
||||
}
|
||||
@Override
|
||||
public void setActivatingPlayer(final Player player) {
|
||||
sa.setActivatingPlayer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return sa.getDescription();
|
||||
}
|
||||
@Override
|
||||
public void setDescription(final String s) {
|
||||
sa.setDescription(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ManaCost getMultiKickerManaCost() {
|
||||
return sa.getMultiKickerManaCost();
|
||||
}
|
||||
@Override
|
||||
public void setMultiKickerManaCost(final ManaCost cost) {
|
||||
sa.setMultiKickerManaCost(cost);
|
||||
@@ -358,25 +363,14 @@ public class WrappedAbility extends Ability {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStackDescription(final String s) {
|
||||
sa.setStackDescription(s);
|
||||
public AbilitySub getSubAbility() {
|
||||
return sa.getSubAbility();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSubAbility(final AbilitySub subAbility) {
|
||||
sa.setSubAbility(subAbility);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTargetRestrictions(final TargetRestrictions tgt) {
|
||||
sa.setTargetRestrictions(tgt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTargets(TargetChoices targets) {
|
||||
sa.setTargets(targets);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTargetCard(final Card card) {
|
||||
sa.setTargetCard(card);
|
||||
|
||||
Reference in New Issue
Block a user