mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
- CounterEffect: Renamed "RememberTargets" (we have another "RememberTargets" in AbilityUtils)
- Added Fold into AEther, Hinder, and Swift Silence
This commit is contained in:
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -3790,6 +3790,7 @@ res/cardsfolder/f/fog_bank.txt svneol=native#text/plain
|
|||||||
res/cardsfolder/f/fog_elemental.txt svneol=native#text/plain
|
res/cardsfolder/f/fog_elemental.txt svneol=native#text/plain
|
||||||
res/cardsfolder/f/fog_of_gnats.txt svneol=native#text/plain
|
res/cardsfolder/f/fog_of_gnats.txt svneol=native#text/plain
|
||||||
res/cardsfolder/f/foil.txt -text
|
res/cardsfolder/f/foil.txt -text
|
||||||
|
res/cardsfolder/f/fold_into_aether.txt -text
|
||||||
res/cardsfolder/f/folk_medicine.txt svneol=native#text/plain
|
res/cardsfolder/f/folk_medicine.txt svneol=native#text/plain
|
||||||
res/cardsfolder/f/folk_of_an_havva.txt svneol=native#text/plain
|
res/cardsfolder/f/folk_of_an_havva.txt svneol=native#text/plain
|
||||||
res/cardsfolder/f/folk_of_the_pines.txt svneol=native#text/plain
|
res/cardsfolder/f/folk_of_the_pines.txt svneol=native#text/plain
|
||||||
@@ -4902,6 +4903,7 @@ res/cardsfolder/h/higure_the_still_wind_avatar.txt -text
|
|||||||
res/cardsfolder/h/hikari_twilight_guardian.txt -text
|
res/cardsfolder/h/hikari_twilight_guardian.txt -text
|
||||||
res/cardsfolder/h/hill_giant.txt svneol=native#text/plain
|
res/cardsfolder/h/hill_giant.txt svneol=native#text/plain
|
||||||
res/cardsfolder/h/hillcomber_giant.txt svneol=native#text/plain
|
res/cardsfolder/h/hillcomber_giant.txt svneol=native#text/plain
|
||||||
|
res/cardsfolder/h/hinder.txt -text
|
||||||
res/cardsfolder/h/hindering_light.txt svneol=native#text/plain
|
res/cardsfolder/h/hindering_light.txt svneol=native#text/plain
|
||||||
res/cardsfolder/h/hindering_touch.txt svneol=native#text/plain
|
res/cardsfolder/h/hindering_touch.txt svneol=native#text/plain
|
||||||
res/cardsfolder/h/hindervines.txt -text
|
res/cardsfolder/h/hindervines.txt -text
|
||||||
@@ -10567,6 +10569,7 @@ res/cardsfolder/s/swell_of_courage.txt svneol=native#text/plain
|
|||||||
res/cardsfolder/s/swelter.txt svneol=native#text/plain
|
res/cardsfolder/s/swelter.txt svneol=native#text/plain
|
||||||
res/cardsfolder/s/swift_justice.txt -text
|
res/cardsfolder/s/swift_justice.txt -text
|
||||||
res/cardsfolder/s/swift_maneuver.txt svneol=native#text/plain
|
res/cardsfolder/s/swift_maneuver.txt svneol=native#text/plain
|
||||||
|
res/cardsfolder/s/swift_silence.txt -text
|
||||||
res/cardsfolder/s/swiftfoot_boots.txt svneol=native#text/plain
|
res/cardsfolder/s/swiftfoot_boots.txt svneol=native#text/plain
|
||||||
res/cardsfolder/s/swirling_sandstorm.txt svneol=native#text/plain
|
res/cardsfolder/s/swirling_sandstorm.txt svneol=native#text/plain
|
||||||
res/cardsfolder/s/swirling_spriggan.txt -text
|
res/cardsfolder/s/swirling_spriggan.txt -text
|
||||||
|
|||||||
9
res/cardsfolder/f/fold_into_aether.txt
Normal file
9
res/cardsfolder/f/fold_into_aether.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Fold into AEther
|
||||||
|
ManaCost:2 U U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Counter | Cost$ 2 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | RememberCountered$ True | SubAbility$ DBChangeZone | SpellDescription$ Counter target spell. If that spell is countered this way, its controller may put a creature card from his or her hand onto the battlefield.
|
||||||
|
SVar:DBChangeZone:DB$ ChangeZone | ChangeType$ Creature | Origin$ Hand | Destination$ Battlefield | ChangeNum$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/fold_into_aether.jpg
|
||||||
|
Oracle:Counter target spell. If that spell is countered this way, its controller may put a creature card from his or her hand onto the battlefield.
|
||||||
|
SetInfo:5DN Uncommon
|
||||||
7
res/cardsfolder/h/hinder.txt
Normal file
7
res/cardsfolder/h/hinder.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Hinder
|
||||||
|
ManaCost:1 U U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Counter | Cost$ 1 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | DestinationChoice$ BottomOfLibrary,TopOfLibrary | SpellDescription$ Counter target spell. If that spell is countered this way, put that card on the top or bottom of its owner's library instead of into that player's graveyard.
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/hinder.jpg
|
||||||
|
Oracle:Counter target spell. If that spell is countered this way, put that card on the top or bottom of its owner's library instead of into that player's graveyard.
|
||||||
|
SetInfo:CHK Uncommon
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
Name:Spelljack
|
Name:Spelljack
|
||||||
ManaCost:3 U U U
|
ManaCost:3 U U U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Counter | Cost$ 3 U U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | RememberTargets$ True | ForgetOtherTargets$ True | Destination$ Exile | SubAbility$ DBEffect | SpellDescription$ Counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. You may play it without paying its mana cost for as long as it remains exiled. (If it has X in its mana cost, X is 0.)
|
A:SP$ Counter | Cost$ 3 U U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | RememberCountered$ True | ForgetOtherTargets$ True | Destination$ Exile | SubAbility$ DBEffect | SpellDescription$ Counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. You may play it without paying its mana cost for as long as it remains exiled. (If it has X in its mana cost, X is 0.)
|
||||||
SVar:DBEffect:DB$ Effect | Name$ Spelljack Effect | RememberObjects$ Remembered | StaticAbilities$ PlayOpp,PlayYou | Duration$ Permanent | Triggers$ TrigCleanup | SVars$ DBCleanup | References$ PlayOpp,PlayYou,TrigCleanup,DBCleanup
|
SVar:DBEffect:DB$ Effect | Name$ Spelljack Effect | RememberObjects$ Remembered | StaticAbilities$ PlayOpp,PlayYou | Duration$ Permanent | Triggers$ TrigCleanup | SVars$ DBCleanup | References$ PlayOpp,PlayYou,TrigCleanup,DBCleanup
|
||||||
SVar:PlayOpp:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+OppOwn | AffectedZone$ Exile | AddHiddenKeyword$ May be played by your opponent without paying its mana cost | Description$ You may play cards exiled with Spelljack.
|
SVar:PlayOpp:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+OppOwn | AffectedZone$ Exile | AddHiddenKeyword$ May be played by your opponent without paying its mana cost | Description$ You may play cards exiled with Spelljack.
|
||||||
SVar:PlayYou:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+YouOwn | AffectedZone$ Exile | AddHiddenKeyword$ May be played without paying its mana cost
|
SVar:PlayYou:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+YouOwn | AffectedZone$ Exile | AddHiddenKeyword$ May be played without paying its mana cost
|
||||||
|
|||||||
11
res/cardsfolder/s/swift_silence.txt
Normal file
11
res/cardsfolder/s/swift_silence.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Name:Swift Silence
|
||||||
|
ManaCost:2 W U U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Counter | Cost$ 2 W U U | AllType$ Spell | AllValid$ Card.Other | RememberCountered$ True | SubAbility$ DBDraw | SpellDescription$ Counter all other spells. Draw a card for each spell countered this way.
|
||||||
|
SVar:DBDraw:DB$ Draw | NumCards$ X | References$ X | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
SVar:X:Remembered$Amount
|
||||||
|
SVar:RemAIDeck:True
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/swift_silence.jpg
|
||||||
|
Oracle:Counter all other spells. Draw a card for each spell countered this way.
|
||||||
|
SetInfo:DIS Rare
|
||||||
@@ -2,7 +2,7 @@ Name:Trickbind
|
|||||||
ManaCost:1 U
|
ManaCost:1 U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
K:Split second
|
K:Split second
|
||||||
A:SP$ Counter | Cost$ 1 U | TargetType$ Activated,Triggered | TgtPrompt$ Select target Activated or Triggered Ability | RememberTargets$ True | ValidTgts$ Card | SubAbility$ DBEffect | SpellDescription$ Counter target activated or triggered ability. If a permanent's ability is countered this way, activated abilities of that permanent can't be activated this turn. (Mana abilities can't be targeted.)
|
A:SP$ Counter | Cost$ 1 U | TargetType$ Activated,Triggered | TgtPrompt$ Select target Activated or Triggered Ability | RememberCountered$ True | ValidTgts$ Card | SubAbility$ DBEffect | SpellDescription$ Counter target activated or triggered ability. If a permanent's ability is countered this way, activated abilities of that permanent can't be activated this turn. (Mana abilities can't be targeted.)
|
||||||
SVar:DBEffect:DB$ Effect | Name$ Trickbind Effect | StaticAbilities$ STCantBeActivated | RememberObjects$ Remembered | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ1
|
SVar:DBEffect:DB$ Effect | Name$ Trickbind Effect | StaticAbilities$ STCantBeActivated | RememberObjects$ Remembered | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ1
|
||||||
SVar:STCantBeActivated:Mode$ CantBeActivated | EffectZone$ Command | ValidCard$ Permanent.IsRemembered
|
SVar:STCantBeActivated:Mode$ CantBeActivated | EffectZone$ Command | ValidCard$ Permanent.IsRemembered
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ import forge.Card;
|
|||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.card.ability.SpellAbilityEffect;
|
import forge.card.ability.SpellAbilityEffect;
|
||||||
import forge.card.cardfactory.CardFactoryUtil;
|
import forge.card.cardfactory.CardFactoryUtil;
|
||||||
|
import forge.game.player.AIPlayer;
|
||||||
import forge.card.spellability.SpellAbility;
|
import forge.card.spellability.SpellAbility;
|
||||||
import forge.card.spellability.SpellAbilityStackInstance;
|
import forge.card.spellability.SpellAbilityStackInstance;
|
||||||
import forge.card.spellability.SpellPermanent;
|
import forge.card.spellability.SpellPermanent;
|
||||||
import forge.card.trigger.TriggerType;
|
import forge.card.trigger.TriggerType;
|
||||||
|
import forge.gui.GuiChoose;
|
||||||
|
|
||||||
public class CounterEffect extends SpellAbilityEffect {
|
public class CounterEffect extends SpellAbilityEffect {
|
||||||
@Override
|
@Override
|
||||||
@@ -107,8 +109,8 @@ public class CounterEffect extends SpellAbilityEffect {
|
|||||||
Singletons.getModel().getGame().getAction().destroy(tgtSACard);
|
Singletons.getModel().getGame().getAction().destroy(tgtSACard);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sa.hasParam("RememberTargets")) {
|
if (sa.hasParam("RememberCountered")) {
|
||||||
if (sa.getParam("RememberTargets").equals("True")) {
|
if (sa.getParam("RememberCountered").equals("True")) {
|
||||||
sa.getSourceCard().addRemembered(tgtSACard);
|
sa.getSourceCard().addRemembered(tgtSACard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -133,7 +135,15 @@ public class CounterEffect extends SpellAbilityEffect {
|
|||||||
Singletons.getModel().getGame().getStack().remove(si);
|
Singletons.getModel().getGame().getStack().remove(si);
|
||||||
|
|
||||||
String destination = srcSA.hasParam("Destination") ? srcSA.getParam("Destination") : "Graveyard";
|
String destination = srcSA.hasParam("Destination") ? srcSA.getParam("Destination") : "Graveyard";
|
||||||
|
if (srcSA.hasParam("DestinationChoice")) {//Hinder
|
||||||
|
final String[] pos = srcSA.getParam("DestinationChoice").split(",");
|
||||||
|
if (srcSA.getActivatingPlayer() instanceof AIPlayer) {
|
||||||
|
destination = pos[0];
|
||||||
|
} else {
|
||||||
|
final String prompt = "Select a destination to remove";
|
||||||
|
destination = GuiChoose.one(prompt, pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (tgtSA.isAbility()) {
|
if (tgtSA.isAbility()) {
|
||||||
// For Ability-targeted counterspells - do not move it anywhere,
|
// For Ability-targeted counterspells - do not move it anywhere,
|
||||||
// even if Destination$ is specified.
|
// even if Destination$ is specified.
|
||||||
|
|||||||
Reference in New Issue
Block a user