mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
CLB - 22 Jul (more) (#1174)
* druidic_ritual.txt * en-US.properties better Mill prompt * fraying_line.txt * barrowin_of_clan_undurr.txt should not target * emerald_dragon_dissonant_wave.txt * flaming_fist.txt * drillworks_mole.txt * CounterEnumType.ROPE * druidic_ritual.txt just one ChangeZone * ChangeZoneEffect.changeZonePlayerInvariant support ChangeType$ EACH X & Y * ChangeZoneEffect.changeHiddenOriginStackDescription improve Yard -> Hand
This commit is contained in:
@@ -280,12 +280,13 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
} else {
|
} else {
|
||||||
changed = Lang.nounWithNumeralExceptOne(num, type + cardTag);
|
changed = Lang.nounWithNumeralExceptOne(num, type + cardTag);
|
||||||
}
|
}
|
||||||
final boolean battlefield = destination.equals("Battlefield");
|
final boolean toField = destination.equals("Battlefield");
|
||||||
|
final boolean toHand = destination.equals("Hand");
|
||||||
sb.append(chooserNames).append(" returns ").append(mandatory || changeNumDesc ? "" : "up to ");
|
sb.append(chooserNames).append(" returns ").append(mandatory || changeNumDesc ? "" : "up to ");
|
||||||
sb.append(changed);
|
sb.append(changed);
|
||||||
// so far, it seems non-targeted only lets you return from your own graveyard
|
// so far, it seems non-targeted only lets you return from your own graveyard
|
||||||
sb.append(" from their graveyard").append(choosers.size() > 1 ? "s" : "");
|
sb.append(" from their graveyard").append(choosers.size() > 1 ? "s" : "");
|
||||||
sb.append(battlefield ? " to the " : " into their ").append(destination.toLowerCase());
|
sb.append(toField ? " to the " : toHand ? " to their " : " into their ").append(destination.toLowerCase());
|
||||||
if (sa.hasParam("WithCountersType")) {
|
if (sa.hasParam("WithCountersType")) {
|
||||||
final CounterType cType = CounterType.getType(sa.getParam("WithCountersType"));
|
final CounterType cType = CounterType.getType(sa.getParam("WithCountersType"));
|
||||||
if (cType != null) {
|
if (cType != null) {
|
||||||
@@ -1068,7 +1069,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
searchedLibrary = false;
|
searchedLibrary = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined && changeType != null) {
|
if (!defined && changeType != null && !changeType.startsWith("EACH")) {
|
||||||
fetchList = (CardCollection)AbilityUtils.filterListByType(fetchList, sa.getParam("ChangeType"), sa);
|
fetchList = (CardCollection)AbilityUtils.filterListByType(fetchList, sa.getParam("ChangeType"), sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1090,8 +1091,21 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
fetchList.sort();
|
fetchList.sort();
|
||||||
|
|
||||||
CardCollection chosenCards = new CardCollection();
|
CardCollection chosenCards = new CardCollection();
|
||||||
// only multi-select if player can select more than one
|
if (changeType.startsWith("EACH")) {
|
||||||
if (changeNum > 1 && allowMultiSelect(decider, sa)) {
|
String[] eachTypes = changeType.substring(5).split(" & ");
|
||||||
|
for (String thisType : eachTypes) {
|
||||||
|
for (int i = 0; i < changeNum && destination != null; i++) {
|
||||||
|
CardCollection thisList = (CardCollection) AbilityUtils.filterListByType(fetchList, thisType, sa);
|
||||||
|
if (!chosenCards.isEmpty()) {
|
||||||
|
thisList.removeAll(chosenCards);
|
||||||
|
}
|
||||||
|
Card c = decider.getController().chooseSingleCardForZoneChange(destination, origin, sa,
|
||||||
|
thisList, delayedReveal, selectPrompt, !sa.hasParam("Mandatory"), decider);
|
||||||
|
chosenCards.add(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (changeNum > 1 && allowMultiSelect(decider, sa)) {
|
||||||
|
// only multi-select if player can select more than one
|
||||||
List<Card> selectedCards;
|
List<Card> selectedCards;
|
||||||
if (!sa.hasParam("SelectPrompt")) {
|
if (!sa.hasParam("SelectPrompt")) {
|
||||||
// new default messaging for multi select
|
// new default messaging for multi select
|
||||||
|
|||||||
@@ -289,6 +289,8 @@ public enum CounterEnumType {
|
|||||||
|
|
||||||
RITUAL("RITUAL", 155, 17, 30),
|
RITUAL("RITUAL", 155, 17, 30),
|
||||||
|
|
||||||
|
ROPE("ROPE", 239, 223, 187),
|
||||||
|
|
||||||
RUST("RUST", 255, 181, 116),
|
RUST("RUST", 255, 181, 116),
|
||||||
|
|
||||||
SCREAM("SCREM", 0, 220, 255),
|
SCREAM("SCREM", 0, 220, 255),
|
||||||
|
|||||||
@@ -4,8 +4,9 @@ Types:Legendary Creature Dwarf Cleric
|
|||||||
PT:3/3
|
PT:3/3
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBVenture | TriggerDescription$ When CARDNAME enters the battlefield, venture into the dungeon. (Enter the first room or advance to the next room.)
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBVenture | TriggerDescription$ When CARDNAME enters the battlefield, venture into the dungeon. (Enter the first room or advance to the next room.)
|
||||||
T:Mode$ Attacks | ValidCard$ Card.Self | CheckSVar$ X | SVarCompare$ GE1 | Execute$ DBChangeZone | TriggerDescription$ Whenever CARDNAME attacks, return up to one creature card with mana value 3 or less from your graveyard to the battlefield if you've completed a dungeon.
|
T:Mode$ Attacks | ValidCard$ Card.Self | CheckSVar$ X | SVarCompare$ GE1 | Execute$ DBChangeZone | TriggerDescription$ Whenever CARDNAME attacks, return up to one creature card with mana value 3 or less from your graveyard to the battlefield if you've completed a dungeon.
|
||||||
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature in your graveyard | ValidTgts$ Creature.YouOwn+cmcLE3
|
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Hidden$ True | ChangeType$ Creature.YouOwn+cmcLE3
|
||||||
SVar:DBVenture:DB$ Venture | Defined$ You
|
SVar:DBVenture:DB$ Venture | Defined$ You
|
||||||
SVar:X:PlayerCountPropertyYou$DungeonsCompleted
|
SVar:X:PlayerCountPropertyYou$DungeonsCompleted
|
||||||
DeckHints:Ability$Graveyard
|
DeckHints:Ability$Mill|Discard
|
||||||
|
DeckHas:Ability$Graveyard
|
||||||
Oracle:When Barrowin of Clan Undurr enters the battlefield, venture into the dungeon. (Enter the first room or advance to the next room.)\nWhenever Barrowin of Clan Undurr attacks, return up to one creature card with mana value 3 or less from your graveyard to the battlefield if you've completed a dungeon.
|
Oracle:When Barrowin of Clan Undurr enters the battlefield, venture into the dungeon. (Enter the first room or advance to the next room.)\nWhenever Barrowin of Clan Undurr attacks, return up to one creature card with mana value 3 or less from your graveyard to the battlefield if you've completed a dungeon.
|
||||||
|
|||||||
7
forge-gui/res/cardsfolder/upcoming/drillworks_mole.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/drillworks_mole.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Drillworks Mole
|
||||||
|
ManaCost:1
|
||||||
|
Types:Artifact Creature Mole
|
||||||
|
PT:1/1
|
||||||
|
A:AB$ PutCounter | Cost$ 2 T | Defined$ Self & Targeted | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.IsCommander+YouCtrl | TgtPrompt$ Select up to one target commander creature you control | CounterType$ P1P1 | SpellDescription$ Put a +1/+1 counter on CARDNAME and a +1/+1 counter on up to one target commander creature you control.
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
Oracle:{2}, {T}: Put a +1/+1 counter on Drillworks Mole and a +1/+1 counter on up to one target commander creature you control.
|
||||||
7
forge-gui/res/cardsfolder/upcoming/druidic_ritual.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/druidic_ritual.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Druidic Ritual
|
||||||
|
ManaCost:2 G
|
||||||
|
Types:Sorcery
|
||||||
|
A:SP$ Mill | NumCards$ 3 | Optional$ True | SubAbility$ DBReturn | SpellDescription$ You may mill three cards.
|
||||||
|
SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Hidden$ True | ChangeType$ EACH Creature.YouOwn & Land.YouOwn | ChangeTypeDesc$ creature card they own and up to one land card they own | SubAbility$ DBReturn2 | SpellDescription$ Then return up to one creature card and up to one land card from your graveyard to your hand. (To mill a card, put the top card of your library into your graveyard.)
|
||||||
|
DeckHas:Ability$Mill|Graveyard
|
||||||
|
Oracle:You may mill three cards. Then return up to one creature card and up to one land card from your graveyard to your hand. (To mill a card, put the top card of your library into your graveyard.)
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
Name:Emerald Dragon
|
||||||
|
ManaCost:4 G G
|
||||||
|
Types:Creature Dragon
|
||||||
|
PT:4/4
|
||||||
|
K:Flying
|
||||||
|
K:Trample
|
||||||
|
AlternateMode:Adventure
|
||||||
|
Oracle:Flying, trample
|
||||||
|
|
||||||
|
ALTERNATE
|
||||||
|
|
||||||
|
Name:Dissonant Wave
|
||||||
|
ManaCost:2 G
|
||||||
|
Types:Instant Adventure
|
||||||
|
A:SP$ Counter | TargetType$ Activated,Triggered | TgtPrompt$ Select target activated or triggered ability from a noncreature source | ValidTgts$ Card.nonCreature | SpellDescription$ Counter target activated or triggered ability from a noncreature source. (Then exile this card. You may cast the creature later from exile.)
|
||||||
|
Oracle:Counter target activated or triggered ability from a noncreature source. (Then exile this card. You may cast the creature later from exile.)
|
||||||
9
forge-gui/res/cardsfolder/upcoming/flaming_fist.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/flaming_fist.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Flaming Fist
|
||||||
|
ManaCost:2 W
|
||||||
|
Types:Legendary Enchantment Background
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.IsCommander+YouOwn | AddTrigger$ Attacks | AddSVar$ AE | Description$ Commander creatures you own have "Whenever this creature attacks, it gains double strike until end of turn."
|
||||||
|
SVar:Attacks:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever this creature attacks, it gains double strike until end of turn.
|
||||||
|
SVar:TrigPump:DB$ Pump | KW$ Double Strike
|
||||||
|
SVar:AE:SVar:HasAttackEffect:TRUE
|
||||||
|
AI:RemoveDeck:NonCommander
|
||||||
|
Oracle:Commander creatures you own have "Whenever this creature attacks, it gains double strike until end of turn."
|
||||||
10
forge-gui/res/cardsfolder/upcoming/fraying_line.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/fraying_line.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Fraying Line
|
||||||
|
ManaCost:4
|
||||||
|
Types:Artifact
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When CARDNAME enters the battlefield, put a rope counter on target creature you control.
|
||||||
|
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ ROPE
|
||||||
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigRope | TriggerDescription$ At the beginning of each player's upkeep, that player may pay {2}. If they do, they put a rope counter on a creature they control. Otherwise, exile CARDNAME and each creature without a rope counter on it, then remove all rope counters from all creatures.
|
||||||
|
SVar:TrigRope:DB$ PutCounter | UnlessCost$ 2 | UnlessPayer$ TriggeredPlayer | UnlessSwitched$ True | Chooser$ TriggeredPlayer | Choices$ Creature.ControlledBy TriggeredPlayer | CounterType$ ROPE | UnlessResolveSubs$ WhenNotPaid | SubAbility$ CostNotPaid
|
||||||
|
SVar:CostNotPaid:DB$ ChangeZoneAll | ChangeType$ Card.Self,Creature.counters_EQ0_ROPE | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBRemoveRope
|
||||||
|
SVar:DBRemoveRope:DB$ RemoveCounterAll | ValidCards$ Creature | CounterType$ ROPE | AllCounters$ True
|
||||||
|
Oracle:When Fraying Line enters the battlefield, put a rope counter on target creature you control.\nAt the beginning of each player's upkeep, that player may pay {2}. If they do, they put a rope counter on a creature they control. Otherwise, exile Fraying Line and each creature without a rope counter on it, then remove all rope counters from all creatures.
|
||||||
@@ -1989,7 +1989,7 @@ lblChooseCardToManifest=Choose cards to manifest
|
|||||||
#MeldEffect.java
|
#MeldEffect.java
|
||||||
lblChooseCardToMeld=Choose card to meld with
|
lblChooseCardToMeld=Choose card to meld with
|
||||||
#MillEffect.java
|
#MillEffect.java
|
||||||
lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to {0}?
|
lblDoYouWantPutLibraryCardsTo=Do you want to mill? (to {0})
|
||||||
#MultiplePilesEffect.java
|
#MultiplePilesEffect.java
|
||||||
lblChooseCardsInTargetPile=Choose cards in Pile {0}?
|
lblChooseCardsInTargetPile=Choose cards in Pile {0}?
|
||||||
#MutateEffect.java
|
#MutateEffect.java
|
||||||
|
|||||||
Reference in New Issue
Block a user