mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
- Small AI improvement for PreventDamage
- Small tweaks to Downhill Charge and Keeper of the Mind
This commit is contained in:
@@ -3,7 +3,7 @@ ManaCost:2 R
|
|||||||
Types:Instant
|
Types:Instant
|
||||||
Text:no text
|
Text:no text
|
||||||
A:SP$ Pump | Cost$ 2 R | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | SpellDescription$ Target creature gets +X/+0 until end of turn, where X is the number of Mountains you control.
|
A:SP$ Pump | Cost$ 2 R | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | SpellDescription$ Target creature gets +X/+0 until end of turn, where X is the number of Mountains you control.
|
||||||
A:SP$ Pump | Cost$ Sac<1/Mountain> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | SpellDescription$ You may sacrifice a Mountain rather than pay CARDNAME's mana cost.
|
SVar:AltCost:Cost$ Sac<1/Mountain> | Description$ You may sacrifice a Mountain rather than pay CARDNAME's mana cost.
|
||||||
SVar:X:Count$TypeYouCtrl.Mountain
|
SVar:X:Count$TypeYouCtrl.Mountain
|
||||||
SVar:Rarity:Common
|
SVar:Rarity:Common
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/downhill_charge.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/downhill_charge.jpg
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ ManaCost:U U
|
|||||||
Types:Creature Human Wizard
|
Types:Creature Human Wizard
|
||||||
Text:no text
|
Text:no text
|
||||||
PT:1/2
|
PT:1/2
|
||||||
A:AB$ Pump | Cost$ U T | ValidTgts$ Opponent | TgtPrompt$ Choose target opponent with at least two more cards in hand than you | CheckSVar$ X | SVarCompare$ GEY | SubAbility$ MindKeepersDraw | StackDescription$ None | SpellDescription$ Choose target opponent who had at least two more cards in hand than you did as you activated this ability. Draw a card.
|
A:AB$ Draw | Cost$ U T | ValidTgts$ Opponent | TgtPrompt$ Choose target opponent with at least two more cards in hand than you | CheckSVar$ X | SVarCompare$ GEY | Defined$ You | NumCards$ 1 | SpellDescription$ Choose target opponent who had at least two more cards in hand than you did as you activated this ability. Draw a card.
|
||||||
SVar:MindKeepersDraw:DB$ Draw | Defined$ You | NumCards$ 1
|
|
||||||
SVar:X:Count$InOppHandCount
|
SVar:X:Count$InOppHandCount
|
||||||
SVar:Y:Count$InYourHand/Plus.2
|
SVar:Y:Count$InYourHand/Plus.2
|
||||||
SVar:Rarity:Uncommon
|
SVar:Rarity:Uncommon
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import forge.card.spellability.Spell;
|
|||||||
import forge.card.spellability.SpellAbility;
|
import forge.card.spellability.SpellAbility;
|
||||||
import forge.card.spellability.Target;
|
import forge.card.spellability.Target;
|
||||||
import forge.game.phase.CombatUtil;
|
import forge.game.phase.CombatUtil;
|
||||||
|
import forge.game.phase.PhaseHandler;
|
||||||
import forge.game.phase.PhaseType;
|
import forge.game.phase.PhaseType;
|
||||||
import forge.game.player.ComputerUtil;
|
import forge.game.player.ComputerUtil;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
@@ -285,22 +286,26 @@ public class AbilityFactoryPreventDamage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)) {
|
PhaseHandler handler = Singletons.getModel().getGameState().getPhaseHandler();
|
||||||
|
if (handler.is(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)) {
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
for (final Object o : objects) {
|
for (final Object o : objects) {
|
||||||
if (o instanceof Card) {
|
if (o instanceof Card) {
|
||||||
final Card c = (Card) o;
|
final Card c = (Card) o;
|
||||||
flag |= CombatUtil.combatantWouldBeDestroyed(c);
|
flag |= CombatUtil.combatantWouldBeDestroyed(c);
|
||||||
} else if (o instanceof Player) {
|
} else if (o instanceof Player) {
|
||||||
|
// Don't need to worry about Combat Damage during AI's turn
|
||||||
final Player p = (Player) o;
|
final Player p = (Player) o;
|
||||||
flag |= (p.isComputer() && ((CombatUtil.wouldLoseLife(AllZone.getCombat()) && sa
|
if (!handler.isPlayerTurn(p)) {
|
||||||
.isAbility()) || CombatUtil.lifeInDanger(AllZone.getCombat())));
|
flag |= (p.isComputer() && ((CombatUtil.wouldLoseLife(AllZone.getCombat()) && sa
|
||||||
|
.isAbility()) || CombatUtil.lifeInDanger(AllZone.getCombat())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
chance = flag;
|
chance = flag;
|
||||||
} else { // if nothing on the stack, and it's not declare
|
} else { // if nothing on the stack, and it's not declare
|
||||||
// blockers. no need to regen
|
// blockers. no need to prevent
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user