ControlGain: Fix NPE

This commit is contained in:
tool4EvEr
2022-07-19 17:53:11 +02:00
parent e3c3dd9fc8
commit 58f8d55977
5 changed files with 33 additions and 37 deletions

View File

@@ -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");
}
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);