mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Converted Annihilator
This commit is contained in:
@@ -34,11 +34,9 @@ import forge.GameEntity;
|
|||||||
import forge.card.CardType;
|
import forge.card.CardType;
|
||||||
import forge.card.MagicColor;
|
import forge.card.MagicColor;
|
||||||
import forge.card.ability.AbilityFactory;
|
import forge.card.ability.AbilityFactory;
|
||||||
import forge.card.ability.ApiType;
|
|
||||||
import forge.card.cardfactory.CardFactoryUtil;
|
import forge.card.cardfactory.CardFactoryUtil;
|
||||||
import forge.card.cost.Cost;
|
import forge.card.cost.Cost;
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
import forge.card.spellability.Ability;
|
|
||||||
import forge.card.spellability.SpellAbility;
|
import forge.card.spellability.SpellAbility;
|
||||||
import forge.card.staticability.StaticAbility;
|
import forge.card.staticability.StaticAbility;
|
||||||
import forge.card.trigger.TriggerType;
|
import forge.card.trigger.TriggerType;
|
||||||
@@ -925,39 +923,25 @@ public class CombatUtil {
|
|||||||
runParams.put("Attacked", combat.getDefenderByAttacker(c));
|
runParams.put("Attacked", combat.getDefenderByAttacker(c));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Attacks, runParams, false);
|
game.getTriggerHandler().runTrigger(TriggerType.Attacks, runParams, false);
|
||||||
|
|
||||||
// Annihilator:
|
// Annihilator: can be copied by Strionic Resonator now
|
||||||
if (!c.getDamageHistory().getCreatureAttackedThisCombat()) {
|
if (!c.getDamageHistory().getCreatureAttackedThisCombat()) {
|
||||||
for (final String key : c.getKeyword()) {
|
for (final String key : c.getKeyword()) {
|
||||||
if( !key.startsWith("Annihilator ") ) continue;
|
if (!key.startsWith("Annihilator ")) continue;
|
||||||
final String[] k = key.split(" ", 2);
|
final String[] k = key.split(" ", 2);
|
||||||
final int a = Integer.valueOf(k[1]);
|
|
||||||
|
|
||||||
final Ability ability = new Ability(c, ManaCost.ZERO) {
|
String sb = "Annihilator - Defending player sacrifices " + k[1] + " permanents.";
|
||||||
@Override
|
String effect = "AB$ Sacrifice | Cost$ 0 | Defined$ DefendingPlayer | SacValid$ Permanent | Amount$ " + k[1];
|
||||||
public void resolve() {
|
|
||||||
this.api = ApiType.Sacrifice;
|
|
||||||
final Player opponent = combat.getDefendingPlayerRelatedTo(c);
|
|
||||||
//List<Card> list = AbilityUtils.filterListByType(opponent.getCardsIn(ZoneType.Battlefield), "Permanent", this);
|
|
||||||
final List<Card> list = opponent.getCardsIn(ZoneType.Battlefield);
|
|
||||||
List<Card> toSac = opponent.getController().choosePermanentsToSacrifice(this, a, a, list, "Card");
|
|
||||||
|
|
||||||
for(Card sacd : toSac) {
|
SpellAbility ability = AbilityFactory.getAbility(effect, c);
|
||||||
game.getAction().sacrifice(sacd, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
String sb = String.format("Annihilator - Defending player sacrifices %d permanents.", a);
|
|
||||||
ability.setStackDescription(sb);
|
|
||||||
ability.setDescription(sb);
|
|
||||||
ability.setActivatingPlayer(c.getController());
|
ability.setActivatingPlayer(c.getController());
|
||||||
|
ability.setDescription(sb);
|
||||||
|
ability.setStackDescription(sb);
|
||||||
ability.setTrigger(true);
|
ability.setTrigger(true);
|
||||||
|
|
||||||
game.getStack().add(ability);
|
game.getStack().addSimultaneousStackEntry(ability);
|
||||||
|
|
||||||
} // for
|
}
|
||||||
} // creatureAttacked
|
}
|
||||||
// Annihilator
|
|
||||||
|
|
||||||
c.getDamageHistory().setCreatureAttackedThisCombat(true);
|
c.getDamageHistory().setCreatureAttackedThisCombat(true);
|
||||||
c.getDamageHistory().clearNotAttackedSinceLastUpkeepOf();
|
c.getDamageHistory().clearNotAttackedSinceLastUpkeepOf();
|
||||||
|
|||||||
Reference in New Issue
Block a user