- Fix Multikicker for the AI

This commit is contained in:
Michael Kamensky
2021-02-21 09:20:30 +03:00
parent b46d73f695
commit cd567a21dc
2 changed files with 13 additions and 2 deletions

View File

@@ -19,7 +19,10 @@ package forge.ai;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.*; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import forge.ai.ability.ChooseGenericEffectAi; import forge.ai.ability.ChooseGenericEffectAi;
import forge.ai.ability.ProtectAi; import forge.ai.ability.ProtectAi;
import forge.ai.ability.TokenAi; import forge.ai.ability.TokenAi;
@@ -44,7 +47,10 @@ import forge.game.player.Player;
import forge.game.replacement.ReplacementEffect; import forge.game.replacement.ReplacementEffect;
import forge.game.replacement.ReplacementLayer; import forge.game.replacement.ReplacementLayer;
import forge.game.replacement.ReplacementType; import forge.game.replacement.ReplacementType;
import forge.game.spellability.*; import forge.game.spellability.AbilitySub;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.SpellAbilityStackInstance;
import forge.game.spellability.TargetRestrictions;
import forge.game.staticability.StaticAbility; import forge.game.staticability.StaticAbility;
import forge.game.trigger.Trigger; import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
@@ -109,6 +115,10 @@ public class ComputerUtil {
} }
final Cost cost = sa.getPayCosts(); final Cost cost = sa.getPayCosts();
// Remember the now-forgotten kicker cost? Why is this needed?
sa.getHostCard().setKickerMagnitude(source.getKickerMagnitude()); // the card will disappear
// TODO: update mana color conversion for Daxos of Meletis // TODO: update mana color conversion for Daxos of Meletis
if (cost == null) { if (cost == null) {
if (ComputerUtilMana.payManaCost(ai, sa)) { if (ComputerUtilMana.payManaCost(ai, sa)) {

View File

@@ -156,6 +156,7 @@ public class PermanentAi extends SpellAbilityAi {
ManaCostBeingPaid mcbp = new ManaCostBeingPaid(mCost); ManaCostBeingPaid mcbp = new ManaCostBeingPaid(mCost);
if (!ComputerUtilMana.canPayManaCost(mcbp, sa, ai)) { if (!ComputerUtilMana.canPayManaCost(mcbp, sa, ai)) {
card.setKickerMagnitude(i); card.setKickerMagnitude(i);
sa.setSVar("Multikicker", String.valueOf(i));
break; break;
} }
card.setKickerMagnitude(i + 1); card.setKickerMagnitude(i + 1);