Merge branch 'master' into 'master'

Check for alternative additional costs in the AI routines.

Closes #813 and #820

See merge request core-developers/forge!1334
This commit is contained in:
Michael Kamensky
2019-01-31 13:43:48 +00:00
2 changed files with 9 additions and 3 deletions

View File

@@ -95,9 +95,15 @@ public class ComputerUtilAbility {
public static List<SpellAbility> getOriginalAndAltCostAbilities(final List<SpellAbility> originList, final Player player) { public static List<SpellAbility> getOriginalAndAltCostAbilities(final List<SpellAbility> originList, final Player player) {
final List<SpellAbility> newAbilities = Lists.newArrayList(); final List<SpellAbility> newAbilities = Lists.newArrayList();
for (SpellAbility sa : originList) {
sa.setActivatingPlayer(player);
List<SpellAbility> originListWithAddCosts = Lists.newArrayList();
for (SpellAbility sa : originList) {
// If this spell has alternative additional costs, add them instead of the unmodified SA itself
sa.setActivatingPlayer(player);
originListWithAddCosts.addAll(GameActionUtil.getAdditionalCostSpell(sa));
}
for (SpellAbility sa : originListWithAddCosts) {
// determine which alternative costs are cheaper than the original and prioritize them // determine which alternative costs are cheaper than the original and prioritize them
List<SpellAbility> saAltCosts = GameActionUtil.getAlternativeCosts(sa, player); List<SpellAbility> saAltCosts = GameActionUtil.getAlternativeCosts(sa, player);
List<SpellAbility> priorityAltSa = Lists.newArrayList(); List<SpellAbility> priorityAltSa = Lists.newArrayList();

View File

@@ -1,5 +1,5 @@
Name:Thrilling Encore Name:Thrilling Encore
ManaCost:4 B ManaCost:4 B
Types:Instant Types:Instant
A:SP$ ChangeZone | Cost$ 4 B | Origin$ Graveyard | Destination$ Battlefield | Defined$ ThisTurnEntered_Graveyard_from_Battlefield_Creature.nonToken | SpellDescription$ Put onto the battlefield under your control all creature cards in all graveyards that were put there from the battlefield this turn. A:SP$ ChangeZone | Cost$ 4 B | Origin$ Graveyard | Destination$ Battlefield | Defined$ ThisTurnEntered_Graveyard_from_Battlefield_Creature.nonToken | GainControl$ True | SpellDescription$ Put onto the battlefield under your control all creature cards in all graveyards that were put there from the battlefield this turn.
Oracle:Put onto the battlefield under your control all creature cards in all graveyards that were put there from the battlefield this turn. Oracle:Put onto the battlefield under your control all creature cards in all graveyards that were put there from the battlefield this turn.