Merge remote-tracking branch 'remotes/core/master' into newBranch

This commit is contained in:
Anthony Calosa
2020-04-15 07:39:35 +08:00
26 changed files with 225 additions and 16 deletions

View File

@@ -6,6 +6,8 @@ import forge.util.ImageUtil;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
@@ -119,8 +121,11 @@ public final class ImageKeys {
// if there's a 1st art variant try without it for .fullborder images
file = findFile(dir, TextUtil.fastReplace(fullborderFile, "1.fullborder", ".fullborder"));
if (file != null) { return file; }
// if there's a 1st art variant try without it for .full images
file = findFile(dir, TextUtil.fastReplace(filename, "1.full", ".full"));
// if there's an art variant try without it for .full images
file = findFile(dir, filename.replaceAll("[0-9].full]",".full"));
if (file != null) { return file; }
// if there's a 1st art variant try with it for .full images
file = findFile(dir, filename.replaceAll("[0-9]*.full", "1.full"));
if (file != null) { return file; }
}
//if an image, like phenomenon or planes is missing .full in their filenames but you have an existing images that have .full/.fullborder

View File

@@ -148,21 +148,30 @@ public class CountersPutEffect extends SpellAbilityEffect {
if (sa.hasParam("Bolster")) {
CardCollection creatsYouCtrl = CardLists.filter(activator.getCardsIn(ZoneType.Battlefield), Presets.CREATURES);
CardCollection leastToughness = new CardCollection(Aggregates.listWithMin(creatsYouCtrl, CardPredicates.Accessors.fnGetDefense));
tgtCards.addAll(pc.chooseCardsForEffect(leastToughness, sa, Localizer.getInstance().getMessage("lblChooseACreatureWithLeastToughness"), 1, 1, false));
tgtCards.addAll(activator.getController().chooseCardsForEffect(leastToughness, sa, Localizer.getInstance().getMessage("lblChooseACreatureWithLeastToughness"), 1, 1, false));
tgtObjects.addAll(tgtCards);
} else if (sa.hasParam("Choices")) {
ZoneType choiceZone = ZoneType.Battlefield;
if (sa.hasParam("ChoiceZone")) {
choiceZone = ZoneType.smartValueOf(sa.getParam("ChoiceZone"));
}
Player chooser = activator;
if (sa.hasParam("Chooser")) {
List<Player> choosers = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Chooser"), sa);
if (choosers.isEmpty()) {
return;
}
chooser = choosers.get(0);
}
CardCollection choices = new CardCollection(game.getCardsIn(choiceZone));
int n = sa.hasParam("ChoiceAmount") ? Integer.parseInt(sa.getParam("ChoiceAmount")) : 1;
choices = CardLists.getValidCards(choices, sa.getParam("Choices"), activator, card);
choices = CardLists.getValidCards(choices, sa.getParam("Choices"), activator, card, sa);
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " ";
tgtObjects.addAll(new CardCollection(pc.chooseCardsForEffect(choices, sa, title, n, n, !sa.hasParam("ChoiceOptional"))));
tgtObjects.addAll(new CardCollection(chooser.getController().chooseCardsForEffect(choices, sa, title, n, n, sa.hasParam("ChoiceOptional"))));
} else {
tgtObjects.addAll(getDefinedOrTargeted(sa, "Defined"));
}

View File

@@ -6350,10 +6350,13 @@ public class Card extends GameEntity implements Comparable<Card> {
public final void addGoad(Long timestamp, final Player p) {
goad.put(timestamp, p);
updateAbilityTextForView();
}
public final void removeGoad(Long timestamp) {
goad.remove(timestamp);
if (goad.remove(timestamp) != null) {
updateAbilityTextForView();
}
}
public final boolean isGoaded() {

View File

@@ -2,9 +2,8 @@ Name:Eye of Doom
ManaCost:4
Types:Artifact
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, each player chooses a nonland permanent and puts a doom counter on it.
SVar:TrigChoose:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChoose
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Permanent.nonLand | AILogic$ OppPreferred | Mandatory$ True | SubAbility$ DBPutCounter
SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ DOOM | CounterNum$ 1
SVar:TrigChoose:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBPutCounter
SVar:DBPutCounter:DB$ PutCounter | Chooser$ Remembered | Choices$ Permanent.nonLand | CounterType$ DOOM | CounterNum$ 1
A:AB$ DestroyAll | Cost$ 2 T Sac<1/CARDNAME> | ValidCards$ Permanent.counters_GE1_DOOM | SpellDescription$ Destroy each permanent with a doom counter.
AI:RemoveDeck:All
SVar:Picture:http://www.wizards.com/global/images/magic/general/eye_of_doom.jpg

View File

@@ -3,9 +3,8 @@ ManaCost:2 R
Types:Creature Insect
PT:2/2
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRepeat | TriggerDescription$ At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)
SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChoose | SubAbility$ DBGoad
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Amount$ 1 | MinAmount$ 0 | Choices$ Creature.RememberedPlayerCtrl | SubAbility$ DBPutCounter
SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ P1P1 | CounterNum$ 2 | RememberCards$ True
SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBPutCounter | SubAbility$ DBGoad
SVar:DBPutCounter:DB$ PutCounter | Chooser$ Remembered | Choices$ Creature.RememberedPlayerCtrl | ChoiceOptional$ True | CounterType$ P1P1 | CounterNum$ 2 | RememberCards$ True
SVar:DBGoad:DB$ Goad | Defined$ Remembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)

View File

@@ -1,4 +1,4 @@
Name:Bonder's Enclave
Name:Bonders' Enclave
ManaCost:no cost
Types:Land
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.

View File

@@ -12,4 +12,4 @@ SVar:X:Remembered$CardManaCost
A:AB$ Effect | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Narset of the Ancient Way | Image$ emblem_narset_of_the_ancient_way | Triggers$ TrigSpellCast | SVars$ EffSpellCast | Duration$ Permanent | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."
SVar:TrigSpellCast:Mode$ SpellCast | ValidActivatingPlayer$ You | ValidCard$ Card.nonCreature | Execute$ EffSpellCast | TriggerDescription$ Whenever you cast a noncreature spell, this emblem deals 2 damage to any target.
SVar:EffSpellCast:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2
Oracle[+1]: You gain 2 life. Add {U}, {R}, or {W}. Spend this mana only to cast a noncreature spell.\n[2]: Draw a card, then you may discard a card. When you discard a nonland card this way, Narset of the Ancient Way deals damage equal to that card's converted mana cost to target creature or planeswalker.\n[6]: You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."
Oracle:[+1]: You gain 2 life. Add {U}, {R}, or {W}. Spend this mana only to cast a noncreature spell.\n[2]: Draw a card, then you may discard a card. When you discard a nonland card this way, Narset of the Ancient Way deals damage equal to that card's converted mana cost to target creature or planeswalker.\n[6]: You get an emblem with "Whenever you cast a noncreature spell, this emblem deals 2 damage to any target."

View File

@@ -0,0 +1,8 @@
Name:Serrated Scorpion
ManaCost:B
Types:Creature Scorpion
PT:1/2
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, it deals 2 damage to each opponent and you gain 2 life.
SVar:TrigDealDamage:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ 2 | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
Oracle:When Serrated Scorpion dies, it deals 2 damage to each opponent and you gain 2 life.

View File

@@ -0,0 +1,10 @@
Name:Skycat Sovereign
ManaCost:W U
Types:Creature Elemental Cat
PT:1/1
K:Flying
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each other creature you control with flying.
SVar:X:Count$Valid Creature.Other+YouCtrl+withFlying
SVar:BuffedBy:Creature.withFlying
A:AB$ Token | Cost$ 2 W U | TokenAmount$ 1 | TokenScript$ w_1_1_cat_bird_flying | TokenOwner$ You | SpellDescription$ Create a 1/1 white Cat Bird creature token with flying.
Oracle:Flying\nSkycat Sovereign gets +1/+1 for each other creature you control with flying.\n{2}{W}{U}: Create a 1/1 white Cat Bird creature token with flying.

View File

@@ -0,0 +1,7 @@
Name:Sleeper Dart
ManaCost:2
Types:Artifact
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
A:AB$ Pump | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step.
Oracle:When Sleeper Dart enters the battlefield, draw a card.\n{T}, Sacrifice Sleeper Dart: Target creature doesn't untap during its controller's next untap step.

View File

@@ -0,0 +1,9 @@
Name:Slitherwisp
ManaCost:U B B
Types:Creature Elemental Nightmare
PT:3/2
K:Flash
T:Mode$ SpellCast | ValidCard$ Card.hasKeywordFlash+Other | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast another spell with flash, you draw a card and each opponent loses 1 life.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife
SVar:DBLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1
Oracle:Flash\nWhenever you cast another spell with flash, you draw a card and each opponent loses 1 life.

View File

@@ -0,0 +1,8 @@
Name:Snare Tactician
ManaCost:2 W
Types:Creature Human Soldier
PT:2/3
T:Mode$ Cycled | ValidCard$ Card.YouOwn | TriggerZones$ Battlefield | Execute$ TrigTap | TriggerDescription$ Whenever you cycle a card, tap target creature an opponent controls.
SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls
SVar:PlayMain1:TRUE
Oracle:Whenever you cycle a card, tap target creature an opponent controls.

View File

@@ -0,0 +1,9 @@
Name:Solid Footing
ManaCost:W
Types:Enchantment Aura
K:Flash
K:Enchant creature
A:SP$ Attach | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+withVigilance | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power | Description$ As long as enchanted creature has vigilance, it assigns combat damage equal to its toughness rather than its power.
Oracle:Flash\nEnchant creature\nEnchanted creature gets +1/+1.\nAs long as enchanted creature has vigilance, it assigns combat damage equal to its toughness rather than its power.

View File

@@ -0,0 +1,9 @@
Name:Song of Creation
ManaCost:1 G U R
Types:Enchantment
S:Mode$ Continuous | Affected$ You | AdjustLandPlays$ 1 | Description$ You may play an additional land on each of your turns.
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast a spell, draw two cards.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 2
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDiscard | TriggerDescription$ At the beginning of your end step, discard your hand.
SVar:TrigDiscard:DB$ Discard | Mode$ Hand | Defined$ You
Oracle:You may play an additional land on each of your turns.\nWhenever you cast a spell, draw two cards.\nAt the beginning of your end step, discard your hand.

View File

@@ -0,0 +1,8 @@
Name:Sonorous Howlbonder
ManaCost:1 B/R B/R
Types:Creature Human Warrior
PT:2/2
K:Menace
S:Mode$ Continuous | Affected$ Creature.YouCtrl+withMenace | AddHiddenKeyword$ CantBeBlockedByAmount LT3 | Description$ Each creature you control with menace can't be blocked except by three or more creatures.
SVar:PlayMain1:TRUE
Oracle:Menace\nEach creature you control with menace can't be blocked except by three or more creatures.

View File

@@ -0,0 +1,7 @@
Name:Spelleater Wolverine
ManaCost:2 R
Types:Creature Wolverine
PT:3/2
S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Double Strike | CheckSVar$ X | SVarCompare$ GE3 | Description$ CARDNAME has double strike as long as there are three or more instant and/or sorcery cards in your graveyard.
SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn
Oracle:Spelleater Wolverine has double strike as long as there are three or more instant and/or sorcery cards in your graveyard.

View File

@@ -0,0 +1,6 @@
Name:Springjaw Trap
ManaCost:1
Types:Artifact
K:Flash
A:AB$ DealDamage | Cost$ 4 T Sac<1/CARDNAME> | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target.
Oracle:Flash\n{4}, {T}, Sacrifice Springjaw Trap: It deals 3 damage to any target.

View File

@@ -0,0 +1,6 @@
Name:Startling Development
ManaCost:1 U
Types:Instant
A:SP$ Animate | Cost$ 1 U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Colors$ Blue | OverwriteColors$ True | Types$ Serpent | RemoveCreatureTypes$ True | Power$ 4 | Toughness$ 4 | StackDescription$ SpellDescription | SpellDescription$ Until end of turn, target creature becomes a blue Serpent with base power and toughness 4/4.
K:Cycling:1
Oracle:Until end of turn, target creature becomes a blue Serpent with base power and toughness 4/4.\nCycling {1} ({1}, Discard this card: Draw a card.)

View File

@@ -0,0 +1,7 @@
Name:Sudden Spinnerets
ManaCost:G
Types:Instant
A:SP$ Pump | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | NumDef$ +3 | SubAbility$ DBPutCounter | SpellDescription$ Target creature gets +1/+3 until end of turn. Put a reach counter on it. Untap it.
SVar:DBPutCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ REACH | CounterNum$ 1 | SubAbility$ DBUntap
SVar:DBUntap:DB$ Untap | Defined$ Targeted
Oracle:Target creature gets +1/+3 until end of turn. Put a reach counter on it. Untap it.

View File

@@ -0,0 +1,6 @@
Name:Suffocating Fumes
ManaCost:2 B
Types:Instant
A:SP$ PumpAll | Cost$ 2 B | ValidCards$ Creature.OppCtrl | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | SpellDescription$ Creatures your opponents control get -1/-1 until end of turn.
K:Cycling:2
Oracle:Creatures your opponents control get -1/-1 until end of turn.\nCycling {2} ({2}, Discard this card: Draw a card.)

View File

@@ -0,0 +1,7 @@
Name:Survivors' Bond
ManaCost:1 G
Types:Sorcery
A:SP$ Charm | Cost$ 1 G | MinCharmNum$ 1 | CharmNum$ 2 | Choices$ Human,NonHuman
SVar:Human:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target Human creature card in your graveyard | ValidTgts$ Creature.Human+YouOwn | SpellDescription$ Return target Human creature card from your graveyard to your hand.
SVar:NonHuman:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target non-Human creature card in your graveyard | ValidTgts$ Creature.nonHuman+YouOwn | SpellDescription$ Return target non-Human creature card from your graveyard to your hand.
Oracle:Choose one or both —\n• Return target Human creature card from your graveyard to your hand.\n• Return target non-Human creature card from your graveyard to your hand.

View File

@@ -0,0 +1,7 @@
Name:Unexpected Fangs
ManaCost:1 B
Types:Instant
A:SP$ PutCounter | Cost$ 1 B | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPutCounter | SpellDescription$ Put a +1/+1 counter and a lifelink counter on target creature.
SVar:DBPutCounter:DB$ PutCounter | CounterType$ LIFELINK | CounterNum$ 1 | Defined$ Targeted
DeckHas:Ability$Counters
Oracle:Put a +1/+1 counter and a lifelink counter on target creature.

View File

@@ -0,0 +1,7 @@
Name:Whirlwind of Thought
ManaCost:1 U R W
Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a noncreature spell, draw a card.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
SVar:BuffedBy:Card.nonCreature
Oracle:Whenever you cast a noncreature spell, draw a card.

View File

@@ -0,0 +1,8 @@
Name:Whisper Squad
ManaCost:B
Types:Creature Human Soldier
PT:1/1
A:AB$ ChangeZone | Cost$ 1 B | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedWhisper Squad | ChangeNum$ 1 | Tapped$ True | StackDescription$ SpellDescription | SpellDescription$ Search your library for a card named CARDNAME, put it onto the battlefield tapped, then shuffle your library.
DeckHints:Type$Human
DeckNeeds:Name$Whisper Squad
Oracle:{1}{B}: Search your library for a card named Whisper Squad, put it onto the battlefield tapped, then shuffle your library.

View File

@@ -0,0 +1,10 @@
Name:Wingspan Mentor
ManaCost:2 U
Types:Creature Human Wizard
PT:1/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a flying counter on target non-Human creature you control.
SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature.nonHuman+YouCtrl | TgtPrompt$ Select target non-Human creature | CounterType$ FLYING | CounterNum$ 1
A:AB$ PutCounterAll | Cost$ 2 U T | ValidCards$ Creature.YouCtrl+withFlying | CounterType$ P1P1 | CounterNum$ 1 | StackDescription$ SpellDescription | SpellDescription$ Put a +1/+1 counter on each creature you control with flying.
SVar:PlayMain1:TRUE
DeckHas:Ability$Counters
Oracle:When Wingspan Mentor enters the battlefield, put a flying counter on target non-Human creature you control.\n{2}{U}, {T}: Put a +1/+1 counter on each creature you control with flying.

View File

@@ -228,6 +228,7 @@ Type=Expansion
222 R Jegantha, the Wellspring
223 U Jubilant Skybonder
224 R Kaheera, the Orphanguard
225 R Keruga, the Macrosage
226 R Lurrus of the Dream-Den
227 R Lutri, the Spellchaser
228 R Obosh, the Preypiercer
@@ -247,7 +248,7 @@ Type=Expansion
242 U Zagoth Crystal
243 C Bloodfell Caves
244 C Blossoming Sands
245 R Bonder's Enclave
245 R Bonders' Enclave
246 C Dismal Backwater
247 C Evolving Wilds
248 R Indatha Triome
@@ -277,10 +278,13 @@ Type=Expansion
272 L Forest
273 L Forest
274 L Forest
#Buy-A-Box Promo
275 M Zilortha, Strength Incarnate
#Borderless Planeswalkers
276 M Lukka, Coppercoat Outcast
277 M Vivien, Monsters' Advocate
278 M Narset of the Ancient Way
#Showcase Cards
279 R Cubwarden
280 U Huntmaster Liger
281 U Majestic Auricorn
@@ -316,11 +320,62 @@ Type=Expansion
311 R Raugrin Triome
312 R Savai Triome
313 R Zagoth Triome
314 R Drannith Magistrate
315 R Lavabrink Venturer
316 M Luminous Broodmoth
317 R Mythos of Snapdax
318 R Mythos of Illuna
319 R Shark Typhoon
320 R Voracious Greatshark
321 R Extinction Event
322 R Hunted Nightmare
323 R Mythos of Nethroi
324 R Mythos of Vadrok
325 R Unpredictable Cyclone
326 R Yidaro, Wandering Monster
327 R Colossification
328 R Kogla, the Titan Ape
329 R Mythos of Brokkos
330 M Chevill, Bane of Monsters
331 R Death's Oasis
332 R Eerie Ultimatum
333 R Emergent Ultimatum
334 R Frondland Felidar
335 M General Kudro of Drannith
336 R Genesis Ultimatum
337 R Inspired Ultimatum
338 M Kinnan, Bonder Prodigy
339 R Labyrinth Raptor
340 R Offspring's Revenge
341 R Quartzwood Crasher
342 M Rielle, the Everwise
343 R Ruinous Ultimatum
344 R Skycat Sovereign
345 R Slitherwisp
346 R Song of Creation
347 R Titans' Nest
348 R Whirlwind of Thought
349 M Winota, Joiner of Forces
350 M Fiend Artisan
351 R Gyruda, Doom of Depths
352 R Jegantha, the Wellspring
353 R Kaheera, the Orphanguard
354 R Keruga, the Macrosage
355 R Lurrus of the Dream-Den
356 R Lutri, the Spellchaser
357 R Obosh, the Preypiercer
358 R Umori, the Collector
359 R Yorion, Sky Nomad
360 R Zirda, the Dawnwaker
361 R Crystalline Giant
362 R The Ozolith
363 R Bonders' Enclave
364 R Colossification
365 U Flourishing Fox
366 U Heartless Act
367 C Forbidden Friendship
368 U Migration Path
369 U Sprite Dragon
370 U Huntmaster Liger
371 M Luminous Broodmoth
372 U Pollywog Symbiote