mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
- Improved detection of combat death in AttachAi for flash auras.
This commit is contained in:
@@ -27,6 +27,7 @@ import forge.game.staticability.StaticAbility;
|
||||
import forge.game.trigger.Trigger;
|
||||
import forge.game.trigger.TriggerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.util.Aggregates;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -192,6 +193,29 @@ public class AttachAi extends SpellAbilityAi {
|
||||
}
|
||||
}
|
||||
|
||||
boolean canSurviveCombat = true;
|
||||
if (combat != null && combat.isBlocked(attachTarget)) {
|
||||
if (!attachTarget.hasKeyword(Keyword.INDESTRUCTIBLE) && !ComputerUtil.canRegenerate(ai, attachTarget)) {
|
||||
boolean dangerous = false;
|
||||
int totalAtkPower = 0;
|
||||
for (Card attacker : combat.getBlockers(attachTarget)) {
|
||||
if (attacker.hasKeyword(Keyword.DEATHTOUCH) || attacker.hasKeyword(Keyword.INFECT)
|
||||
|| attacker.hasKeyword(Keyword.WITHER)) {
|
||||
dangerous = true;
|
||||
}
|
||||
totalAtkPower += attacker.getNetPower();
|
||||
}
|
||||
if (totalAtkPower > attachTarget.getNetToughness() + toughness || dangerous) {
|
||||
canSurviveCombat = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!canSurviveCombat) {
|
||||
// don't buff anything that will die or get seriously crippled in combat
|
||||
return false;
|
||||
}
|
||||
|
||||
int chanceToCastAtEOT = aic.getIntProperty(AiProps.FLASH_BUFF_AURA_CHANCE_CAST_AT_EOT);
|
||||
int chanceToCastEarly = aic.getIntProperty(AiProps.FLASH_BUFF_AURA_CHANCE_TO_CAST_EARLY);
|
||||
int chanceToRespondToStack = aic.getIntProperty(AiProps.FLASH_BUFF_AURA_CHANCE_TO_RESPOND_TO_STACK);
|
||||
|
||||
Reference in New Issue
Block a user