mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
- RemAIDeck update: next iteration.
This commit is contained in:
@@ -1,13 +1,7 @@
|
||||
package forge.ai.ability;
|
||||
|
||||
import com.google.common.base.Predicates;
|
||||
import forge.ai.AiPlayDecision;
|
||||
import forge.ai.ComputerUtil;
|
||||
import forge.ai.ComputerUtilAbility;
|
||||
import forge.ai.ComputerUtilCost;
|
||||
import forge.ai.ComputerUtilMana;
|
||||
import forge.ai.PlayerControllerAi;
|
||||
import forge.ai.SpellAbilityAi;
|
||||
import forge.ai.*;
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.MagicColor;
|
||||
import forge.card.mana.ManaCost;
|
||||
@@ -20,6 +14,7 @@ import forge.game.phase.PhaseType;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.zone.ZoneType;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@@ -170,6 +165,9 @@ public class ManaEffectAi extends SpellAbilityAi {
|
||||
}
|
||||
|
||||
SpellAbility testSaNoCost = testSa.copyWithNoManaCost();
|
||||
if (testSaNoCost == null) {
|
||||
continue;
|
||||
}
|
||||
testSaNoCost.setActivatingPlayer(ai);
|
||||
if (((PlayerControllerAi)ai.getController()).getAi().canPlaySa(testSaNoCost) == AiPlayDecision.WillPlay) {
|
||||
if (testSa.getHostCard().isPermanent() && !testSa.getHostCard().hasKeyword("Haste")
|
||||
|
||||
@@ -842,6 +842,9 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
|
||||
public SpellAbility copyWithNoManaCost() {
|
||||
final SpellAbility newSA = copy();
|
||||
if (newSA == null) {
|
||||
return null; // the ability was not copyable, e.g. a Suspend SA may get here
|
||||
}
|
||||
newSA.setPayCosts(newSA.getPayCosts().copyWithNoMana());
|
||||
if (!newSA.hasParam("WithoutManaCost")) {
|
||||
newSA.mapParams.put("WithoutManaCost", "True");
|
||||
|
||||
@@ -4,6 +4,5 @@ Types:Creature Skeleton
|
||||
PT:1/1
|
||||
A:AB$ ChangeZone | Cost$ 2 B B | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Exile | UnlessCost$ 2 | UnlessPayer$ TargetedController | ActivationZone$ Graveyard | UnlessResolveSubs$ WhenNotPaid | SubAbility$ ExileME | SpellDescription$ Exile CARDNAME and target creature unless that creature's controller pays {2}. Activate this ability only if CARDNAME is in your graveyard.
|
||||
SVar:ExileME:DB$ChangeZone | Origin$ Graveyard | Destination$ Exile | Defined$ Self
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/carrionette.jpg
|
||||
Oracle:{2}{B}{B}: Exile Carrionette and target creature unless that creature's controller pays {2}. Activate this ability only if Carrionette is in your graveyard.
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Land
|
||||
A:AB$ Mana | Cost$ T | Produced$ G | SubAbility$ DBPain | SpellDescription$ Add {G} to your mana pool. CARDNAME deals 1 damage to you.
|
||||
A:AB$ Pump | Cost$ G T Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 3 | NumDef$ 3 | Activation$ Threshold | PrecostDesc$ Threshold — | SpellDescription$ Target creature gets +3/+3 until end of turn. Activate this ability only if seven or more cards are in your graveyard.
|
||||
SVar:DBPain:DB$ DealDamage | NumDmg$ 1 | Defined$ You
|
||||
SVar:RemAIDeck:True
|
||||
SVar:RemRandomDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/centaur_garden.jpg
|
||||
Oracle:{T}: Add {G} to your mana pool. Centaur Garden deals 1 damage to you.\nThreshold — {G}, {T}, Sacrifice Centaur Garden: Target creature gets +3/+3 until end of turn. Activate this ability only if seven or more cards are in your graveyard.
|
||||
|
||||
@@ -4,6 +4,5 @@ Types:Instant
|
||||
A:SP$ ChangeZone | Cost$ W | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SubAbility$ DBReturn | SpellDescription$ Exile target creature you control, then return that card to the battlefield under your control.
|
||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | GainControl$ True | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/cloudshift.jpg
|
||||
Oracle:Exile target creature you control, then return that card to the battlefield under your control.
|
||||
|
||||
@@ -6,7 +6,6 @@ SVar:TrigStrife:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ STRIFE |
|
||||
S:Mode$ Continuous | Affected$ Creature.attacking | AddPower$ X | Description$ Attacking creatures get +1/+0 for each strife counter on CARDNAME.
|
||||
S:Mode$ Continuous | Affected$ Creature.blocking+YouCtrl | AddPower$ X | Description$ Blocking creatures you control get +1/+0 for each strife counter on CARDNAME.
|
||||
SVar:X:Count$CardCounters.STRIFE
|
||||
SVar:RemAIDeck:True
|
||||
SVar:RemRandomDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crescendo_of_war.jpg
|
||||
Oracle:At the beginning of each upkeep, put a strife counter on Crescendo of War.\nAttacking creatures get +1/+0 for each strife counter on Crescendo of War.\nBlocking creatures you control get +1/+0 for each strife counter on Crescendo of War.
|
||||
|
||||
Reference in New Issue
Block a user