Merge branch 'assorted-fixes' into 'master'

Fixed Exalted and possibly other triggers with overwriting ability crashing the AI

See merge request core-developers/forge!481
This commit is contained in:
Michael Kamensky
2018-04-26 04:35:25 +00:00

View File

@@ -1383,11 +1383,14 @@ public class ComputerUtil {
if (c.isCreature() && c.isInZone(ZoneType.Battlefield) && CombatUtil.canAttack(c)) { if (c.isCreature() && c.isInZone(ZoneType.Battlefield) && CombatUtil.canAttack(c)) {
for (final Trigger t : c.getTriggers()) { for (final Trigger t : c.getTriggers()) {
if ("Attacks".equals(t.getParam("Mode")) && t.hasParam("Execute")) { if ("Attacks".equals(t.getParam("Mode")) && t.hasParam("Execute")) {
SpellAbility trigSa = AbilityFactory.getAbility(c.getSVar(t.getParam("Execute")), c); String exec = c.getSVar(t.getParam("Execute"));
if (trigSa != null && trigSa.getApi() == ApiType.LoseLife if (!exec.isEmpty()) {
&& trigSa.getParamOrDefault("Defined", "").contains("Opponent")) { SpellAbility trigSa = AbilityFactory.getAbility(exec, c);
trigSa.setHostCard(c); if (trigSa != null && trigSa.getApi() == ApiType.LoseLife
damage += AbilityUtils.calculateAmount(trigSa.getHostCard(), trigSa.getParam("LifeAmount"), trigSa); && trigSa.getParamOrDefault("Defined", "").contains("Opponent")) {
trigSa.setHostCard(c);
damage += AbilityUtils.calculateAmount(trigSa.getHostCard(), trigSa.getParam("LifeAmount"), trigSa);
}
} }
} }
} }