mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
Merge branch 'master' into 'master'
- Updated ExploreEffect to make the stack description account for cards that target other cards to explore. See merge request core-developers/forge!44
This commit is contained in:
@@ -12,6 +12,8 @@ import forge.game.player.PlayerController;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.trigger.TriggerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.util.Lang;
|
||||
import forge.util.TextUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -26,7 +28,20 @@ public class ExploreEffect extends SpellAbilityEffect {
|
||||
@Override
|
||||
protected String getStackDescription(SpellAbility sa) {
|
||||
final Card host = sa.getHostCard();
|
||||
return host.getName() + " explores.";
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
|
||||
List<Card> tgt = getTargetCards(sa);
|
||||
List<String> tgtNames = Lists.newArrayList();
|
||||
for (Card c : tgt) {
|
||||
tgtNames.add(c.getName());
|
||||
}
|
||||
|
||||
sb.append(Lang.joinHomogenous(tgtNames));
|
||||
sb.append(" ");
|
||||
sb.append(tgtNames.size() > 1 ? "explore" : "explores");
|
||||
sb.append(". ");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Bident of Thassa
|
||||
ManaCost:2 U U
|
||||
Types:Legendary Enchantment Artifact
|
||||
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a creature you control deals combat damage to an opponent, you may draw a card.
|
||||
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a creature you control deals combat damage to a player, you may draw a card.
|
||||
SVar:TrigDraw:DB$ Draw | NumCards$ 1
|
||||
A:AB$ Effect | Cost$ 1 U T | StaticAbilities$ MustAttack | References$ MustAttack | SpellDescription$ Creatures your opponents control attack this turn if able.
|
||||
SVar:MustAttack:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.OppCtrl | AddHiddenKeyword$ CARDNAME attacks each combat if able. | Description$ Creatures your opponents control attack this turn if able.
|
||||
|
||||
@@ -5,7 +5,7 @@ K:Enchant creature
|
||||
K:Totem armor
|
||||
A:SP$ Attach | Cost$ 2 G | ValidTgts$ Creature | AILogic$ Pump
|
||||
S:Mode$ Continuous | Affected$ Creature.AttachedBy | AddPower$ 1 | AddToughness$ 1 | AddTrigger$ TriggerDamageDone | AddSVar$ SnakeUmbraDraw | Description$ Enchanted creature gets +1/+1 and has "Whenever this creature deals damage to an opponent, you may draw a card."
|
||||
SVar:TriggerDamageDone:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | OptionalDecider$ You | Execute$ SnakeUmbraDraw | TriggerDescription$ Whenever enchanted creature deals damage to an opponent, you may draw a card.
|
||||
SVar:TriggerDamageDone:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | OptionalDecider$ You | Execute$ SnakeUmbraDraw | TriggerDescription$ Whenever this creature deals damage to an opponent, you may draw a card.
|
||||
SVar:SnakeUmbraDraw:DB$Draw | Defined$ You | NumCards$ 1
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/snake_umbra.jpg
|
||||
Oracle:Enchant creature\nEnchanted creature gets +1/+1 and has "Whenever this creature deals damage to an opponent, you may draw a card."\nTotem armor (If enchanted creature would be destroyed, instead remove all damage from it and destroy this Aura.)
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ U | ValidTgts$ Creature | AILogic$ Pump
|
||||
S:Mode$ Continuous | Affected$ Creature.AttachedBy | AddPower$ 1 | AddToughness$ 1 | AddTrigger$ TriggerDamageDone | AddSVar$ CuriousObsessionDraw | Description$ Enchanted creature gets +1/+1 and has "Whenever this creature deals damage to an opponent, you may draw a card."
|
||||
SVar:TriggerDamageDone:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | OptionalDecider$ You | Execute$ CuriousObsessionDraw | TriggerDescription$ Whenever enchanted creature deals damage to an opponent, you may draw a card.
|
||||
SVar:TriggerDamageDone:Mode$ DamageDone | ValidSource$ Card.Self | CombatDamage$ True | ValidTarget$ Player | OptionalDecider$ You | Execute$ CuriousObsessionDraw | TriggerDescription$ Whenever this creature deals combat damage to a player, you may draw a card.
|
||||
SVar:CuriousObsessionDraw:DB$Draw | Defined$ You | NumCards$ 1
|
||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ At the beginning of your end step, if you didn't attack with a creature this turn, sacrifice CARDNAME.
|
||||
SVar:TrigSac:DB$ Sacrifice | SacValid$ Self
|
||||
|
||||
7
forge-gui/res/cardsfolder/upcoming/kitesail_corsair.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/kitesail_corsair.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Kitesail Corsair
|
||||
ManaCost:1 U
|
||||
Types:Creature Human Pirate
|
||||
PT:2/1
|
||||
S:Mode$ Continuous | Affected$ Card.Self+attacking | AddKeyword$ Flying | Description$ CARDNAME has flying as long as it's attacking.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/kitesail_corsair.jpg
|
||||
Oracle:Kitesail Corsair has flying as long as it's attacking.
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Mist-Cloaked Herald
|
||||
ManaCost:U
|
||||
Types:Creature Merfolk Warrior
|
||||
PT:1/1
|
||||
K:Unblockable
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/mist_cloaked_herald.jpg
|
||||
Oracle:Mist-Cloaked Herald can't be blocked.
|
||||
13
forge-gui/res/cardsfolder/upcoming/nezahal_primal_tide.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/nezahal_primal_tide.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Name:Nezahal, Primal Tide
|
||||
ManaCost:5 U U
|
||||
Types:Legendary Creature Elder Dinosaur
|
||||
PT:7/7
|
||||
K:CARDNAME can't be countered.
|
||||
S:Mode$ Continuous | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size.
|
||||
T:Mode$ SpellCast | TriggerZones$ Battlefield | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ Opponent | Execute$ TrigDraw | TriggerDescription$ Whenever an opponent casts a noncreature spell, draw a card.
|
||||
SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 1
|
||||
A:AB$ ChangeZone | Cost$ Discard<3/Card> | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | SpellDescription$ Exile CARDNAME. Return it to the battlefield tapped under its owner's control at the beginning of the next end step.
|
||||
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | TriggerDescription$ Return CARDNAME to the battlefield tapped under its owner's control.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Exile | Destination$ Battlefield | Tapped$ True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/nezahal_primal_tide.jpg
|
||||
Oracle:Nezahal, Primal Tide can't be countered.\nYou have no maximum hand size.\nWhenever an opponent casts a noncreature spell, draw a card.\nDiscard three cards: Exile Nezahal. Return it to the battlefield tapped under its owner's control at the beginning of the next end step.
|
||||
7
forge-gui/res/cardsfolder/upcoming/river_darter.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/river_darter.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:River Darter
|
||||
ManaCost:2 U
|
||||
Types:Creature Merfolk Warrior
|
||||
PT:2/3
|
||||
K:CantBeBlockedBy Creature.Dinosaur
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/river_darter.jpg
|
||||
Oracle:River Darter can't be blocked by Dinosaurs.
|
||||
9
forge-gui/res/cardsfolder/upcoming/riverwise_augur.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/riverwise_augur.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Riverwise Augur
|
||||
ManaCost:3 U
|
||||
Types:Creature Merfolk Wizard
|
||||
PT:2/2
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw three cards, then put two cards from your hand on top of your library in any order.
|
||||
SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 3 | SubAbility$ DBChangeZone
|
||||
SVar:DBChangeZone:DB$ChangeZone | Origin$ Hand | Destination$ Library | ChangeNum$ 2 | Mandatory$ True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/riverwise_augur.jpg
|
||||
Oracle:When Riverwise Augur enters the battlefield, draw three cards, then put two cards from your hand on top of your library in any order.
|
||||
11
forge-gui/res/cardsfolder/upcoming/sea_legs.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/sea_legs.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Sea Legs
|
||||
ManaCost:U
|
||||
Types:Enchantment Aura
|
||||
K:Flash
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ U | ValidTgts$ Creature | AILogic$ SpecificCard
|
||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+Pirate | AddToughness$ 2 | Description$ Enchanted creature gets +0/+2 as long as it's a Pirate. Otherwise, it gets -2/-0.
|
||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+nonPirate | AddPower$ -2
|
||||
DeckNeeds:Type$Pirate
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/sea_legs.jpg
|
||||
Oracle:Flash\nEnchant creature\nEnchanted creature gets +0/+2 as long as it's a Pirate. Otherwise, it gets -2/-0.
|
||||
8
forge-gui/res/cardsfolder/upcoming/seafloor_oracle.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/seafloor_oracle.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Seafloor Oracle
|
||||
ManaCost:2 U U
|
||||
Types:Creature Merfolk Wizard
|
||||
PT:2/3
|
||||
T:Mode$ DamageDone | ValidSource$ Permanent.Merfolk+YouCtrl | ValidTarget$ Player | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a Merfolk you control deals combat damage to a player, draw a card.
|
||||
SVar:TrigDraw:DB$ Draw | NumCards$ 1
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/seafloor_oracle.jpg
|
||||
Oracle:Whenever a Merfolk you control deals combat damage to a player, draw a card.
|
||||
9
forge-gui/res/cardsfolder/upcoming/siren_reaver.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/siren_reaver.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Siren Reaver
|
||||
ManaCost:3 U
|
||||
Types:Creature Siren Pirate
|
||||
PT:3/2
|
||||
S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | CheckSVar$ RaidTest | SVarCompare$ GE1 | Description$ Raid — CARDNAME costs {1} less to cast if you attacked with a creature this turn.
|
||||
K:Flying
|
||||
SVar:RaidTest:Count$AttackersDeclared
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/siren_reaver.jpg
|
||||
Oracle:Raid — Siren Reaver costs {1} less to cast if you attacked with a creature this turn.\nFlying
|
||||
@@ -1,7 +1,8 @@
|
||||
Name:Soul of the Rapids
|
||||
ManaCost:3 U U
|
||||
Types:Creature Elemental
|
||||
PT:3/2
|
||||
K:Flying
|
||||
K:Hexproof
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/soul_of_the_rapids.jpg
|
||||
Oracle:Flying\nHexproof (This creature can't be the target of spells or abilities your opponents control.)
|
||||
PT:3/2
|
||||
@@ -1,5 +1,6 @@
|
||||
Name:Sworn Guardian
|
||||
ManaCost:1 U
|
||||
Types:Creature Merfolk Warrior
|
||||
Oracle:
|
||||
PT:1/3
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/sworn_guardian.jpg
|
||||
Oracle:
|
||||
9
forge-gui/res/cardsfolder/upcoming/warkite_marauder.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/warkite_marauder.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Warkite Marauder
|
||||
ManaCost:1 U
|
||||
Types:Creature Human Pirate
|
||||
PT:2/1
|
||||
K:Flying
|
||||
T:Mode$ Attacks | ValidCard$ Creature.Self | Execute$ TrigAnimate | TriggerDescription$ Whenever CARDNAME attacks, target creature defending player controls loses all abilities and has base power and toughness 0/1 until end of turn.
|
||||
SVar:TrigAnimate:DB$ Animate | ValidTgts$ Creature.DefenderCtrl | TgtPrompt$ Select target creature defending player controls | Power$ 0 | Toughness$ 1 | RemoveAllAbilities$ True | IsCurse$ True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/warkite_marauder.jpg
|
||||
Oracle:Flying\nWhenever Warkite Marauder attacks, target creature defending player controls loses all abilities and has base power and toughness 0/1 until end of turn.
|
||||
10
forge-gui/res/cardsfolder/upcoming/waterknot.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/waterknot.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Waterknot
|
||||
ManaCost:1 U U
|
||||
Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ 1 U U | ValidTgts$ Creature | AILogic$ KeepTapped
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, tap enchanted creature.
|
||||
SVar:TrigTap:DB$ Tap | Defined$ Enchanted
|
||||
S:Mode$ Continuous | Affected$ Creature.AttachedBy | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | Description$ Enchanted creature doesn't untap during its controller's untap step.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/waterknot.jpg
|
||||
Oracle:Enchant creature\nWhen Waterknot enters the battlefield, tap enchanted creature.\nEnchanted creature doesn't untap during its controller's untap step.
|
||||
Reference in New Issue
Block a user