From 492ff16c1258e55513d59b872d44d2ce71cd607a Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Mon, 19 Aug 2024 06:32:44 +0200 Subject: [PATCH] Keyword: add 'Bands with other' keyword (#5950) --- .../java/forge/ai/AiAttackController.java | 27 ++++++++++--------- .../main/java/forge/ai/AiBlockController.java | 6 +---- .../src/main/java/forge/game/card/Card.java | 4 +++ .../main/java/forge/game/card/CardUtil.java | 1 + .../java/forge/game/combat/AttackingBand.java | 25 +++++++---------- .../main/java/forge/game/keyword/Keyword.java | 1 + .../forge/game/keyword/KeywordWithType.java | 1 + .../cardsfolder/a/adventurers_guildhouse.txt | 2 +- .../res/cardsfolder/c/cathedral_of_serra.txt | 2 +- .../res/cardsfolder/m/mountain_stronghold.txt | 2 +- forge-gui/res/cardsfolder/o/old_fogey.txt | 2 +- .../res/cardsfolder/s/seafarers_quay.txt | 2 +- .../res/cardsfolder/s/shelkin_brownie.txt | 2 +- forge-gui/res/cardsfolder/t/tolaria.txt | 2 +- .../res/cardsfolder/u/unholy_citadel.txt | 2 +- .../res/tokenscripts/wolves_of_the_hunt.txt | 2 +- 16 files changed, 40 insertions(+), 43 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index 102944ac37d..3c5f26bb602 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -32,6 +32,7 @@ import forge.game.combat.CombatUtil; import forge.game.combat.GlobalAttackRestrictions; import forge.game.cost.Cost; import forge.game.keyword.Keyword; +import forge.game.keyword.KeywordInterface; import forge.game.player.Player; import forge.game.player.PlayerCollection; import forge.game.spellability.SpellAbility; @@ -509,13 +510,9 @@ public class AiAttackController { return; } - List bandsWithString = Arrays.asList("Bands with Other Legendary Creatures", - "Bands with Other Creatures named Wolves of the Hunt", - "Bands with Other Dinosaurs"); - List bandingCreatures = null; if (test == null) { - bandingCreatures = CardLists.filter(myList, card -> card.hasKeyword(Keyword.BANDING) || card.hasAnyKeyword(bandsWithString)); + bandingCreatures = CardLists.filter(myList, card -> card.hasKeyword(Keyword.BANDING) || card.hasKeyword(Keyword.BANDSWITH)); // filter out anything that can't legally attack or is already declared as an attacker bandingCreatures = CardLists.filter(bandingCreatures, card -> !combat.isAttacking(card) && CombatUtil.canAttack(card)); @@ -523,7 +520,7 @@ public class AiAttackController { bandingCreatures = notNeededAsBlockers(attackers, bandingCreatures); } else { // Test a specific creature for Banding - if (test.hasKeyword(Keyword.BANDING) || test.hasAnyKeyword(bandsWithString)) { + if (test.hasKeyword(Keyword.BANDING) || test.hasKeyword(Keyword.BANDSWITH)) { bandingCreatures = new CardCollection(test); } } @@ -541,7 +538,7 @@ public class AiAttackController { // TODO: Assign to band with the best attacker for now, but needs better logic. for (Card c : bandingCreatures) { - Card bestBand; + Card bestBand = null; if (c.getNetPower() <= 0) { // Don't band a zero power creature if there's already a banding creature in a band @@ -549,12 +546,16 @@ public class AiAttackController { } Card bestAttacker = ComputerUtilCard.getBestCreatureAI(attackers); - if (c.hasKeyword("Bands with Other Legendary Creatures")) { - bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.getType(attackers, "Legendary")); - } else if (c.hasKeyword("Bands with Other Dinosaurs")) { - bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.getType(attackers, "Dinosaur")); - } else if (c.hasKeyword("Bands with Other Creatures named Wolves of the Hunt")) { - bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.filter(attackers, CardPredicates.nameEquals("Wolves of the Hunt"))); + + // TODO how should this work with multiple bands with other abilities? + if (c.hasKeyword(Keyword.BANDSWITH)) { + for (KeywordInterface kw : c.getKeywords(Keyword.BANDSWITH)) { + final String o = kw.getOriginal(); + String m[] = o.split(":"); + CardCollection bandPartner = CardLists.getValidCards(attackers, m[1], c.getController(), c, null); + bestBand = ComputerUtilCard.getBestCreatureAI(bandPartner); + break; // ? + } } else if (!c.hasAnyKeyword(evasionKeywords) && bestAttacker != null && bestAttacker.hasAnyKeyword(evasionKeywords)) { bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.filter(attackers, card -> !card.hasAnyKeyword(evasionKeywords))); } else { diff --git a/forge-ai/src/main/java/forge/ai/AiBlockController.java b/forge-ai/src/main/java/forge/ai/AiBlockController.java index 2f743b1c08a..324f8b0554b 100644 --- a/forge-ai/src/main/java/forge/ai/AiBlockController.java +++ b/forge-ai/src/main/java/forge/ai/AiBlockController.java @@ -753,10 +753,6 @@ public class AiBlockController { boolean needsMoreChumpBlockers = true; - // See if it's possible to tank up the damage with Banding - List bandsWithString = Arrays.asList("Bands with Other Legendary Creatures", - "Bands with Other Creatures named Wolves of the Hunt", - "Bands with Other Dinosaurs"); if (AttackingBand.isValidBand(combat.getBlockers(attacker), true)) { continue; } @@ -766,7 +762,7 @@ public class AiBlockController { // See if there's a Banding blocker that can tank the damage for (final Card blocker : chumpBlockers) { - if (blocker.hasKeyword(Keyword.BANDING) || blocker.hasAnyKeyword(bandsWithString)) { + if (blocker.hasKeyword(Keyword.BANDING) || blocker.hasKeyword(Keyword.BANDSWITH)) { if (ComputerUtilCombat.getAttack(attacker) > ComputerUtilCombat.totalShieldDamage(attacker, combat.getBlockers(attacker)) && ComputerUtilCombat.shieldDamage(attacker, blocker) > 0 && CombatUtil.canBlock(attacker, blocker, combat) && ComputerUtilCombat.lifeInDanger(ai, combat)) { diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index fab641587f6..080ce644cb3 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -2479,6 +2479,10 @@ public class Card extends GameEntity implements Comparable, IHasSVars { sb.append("exile it haunting target creature."); } sb.append(")"); + } else if (keyword.startsWith("Bands with other")) { + final String[] k = keyword.split(":"); + String desc = k.length > 2 ? k[2] : CardType.getPluralType(k[1]); + sbLong.append(k[0]).append(" ").append(desc).append(" (").append(inst.getReminderText()).append(")"); } else if (keyword.equals("Convoke") || keyword.equals("Dethrone")|| keyword.equals("Fear") || keyword.equals("Melee") || keyword.equals("Improvise")|| keyword.equals("Shroud") || keyword.equals("Banding") || keyword.equals("Intimidate")|| keyword.equals("Evolve") diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 019a64e389e..3a9f4ee4314 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -60,6 +60,7 @@ public final class CardUtil { "Fortify", "Transfigure", "Champion", "Evoke", "Prowl", "Freerunning", "Reinforce", "Unearth", "Level up", "Miracle", "Overload", "Cleave", "Scavenge", "Encore", "Bestow", "Outlast", "Dash", "Surge", "Emerge", "Hexproof:", + "Bands with other", "etbCounter", "Reflect", "Ward").build(); /** List of keyword endings of keywords that could be modified by text changes. */ public static final ImmutableList modifiableKeywordEndings = ImmutableList.builder().add( diff --git a/forge-game/src/main/java/forge/game/combat/AttackingBand.java b/forge-game/src/main/java/forge/game/combat/AttackingBand.java index c7934b8ab83..078c58626d4 100644 --- a/forge-game/src/main/java/forge/game/combat/AttackingBand.java +++ b/forge-game/src/main/java/forge/game/combat/AttackingBand.java @@ -5,6 +5,7 @@ import forge.game.card.CardCollection; import forge.game.card.CardCollectionView; import forge.game.card.CardLists; import forge.game.keyword.Keyword; +import forge.game.keyword.KeywordInterface; import java.util.List; @@ -39,28 +40,20 @@ public class AttackingBand { return true; } - // Legends lands, Master of the Hunt, Old Fogey (just in case) - // Since Bands With Other is a dead keyword, no major reason to make this more generic - // But if someone is super motivated, feel free to do it. Just make sure you update Tolaria and Shelkie Brownie - String[] bandsWithString = { "Bands with Other Legendary Creatures", "Bands with Other Creatures named Wolves of the Hunt", - "Bands with Other Dinosaurs" }; - String[] validString = { "Legendary.Creature", "Creature.namedWolves of the Hunt", "Dinosaur" }; + for (Card c : CardLists.getKeyword(band, Keyword.BANDSWITH)) { + for (KeywordInterface kw : c.getKeywords(Keyword.BANDSWITH)) { + String o = kw.getOriginal(); + String m[] = o.split(":"); - Card source = band.get(0); - for (int i = 0; i < bandsWithString.length; i++) { - String keyword = bandsWithString[i]; - String valid = validString[i]; - - // Check if a bands with other keyword exists in band, and each creature in the band fits the valid quality - if (!CardLists.getKeyword(band, keyword).isEmpty() && - CardLists.getValidCards(band, valid, source.getController(), source, null).size() == band.size()) { - return true; + if (CardLists.getValidCards(band, m[1], c.getController(), c, null).size() == band.size()) { + return true; + } } } return false; } - + public boolean canJoinBand(Card card) { // Trying to join an existing band, attackers should be non-empty and card should exist CardCollection newBand = new CardCollection(attackers); diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index b88cf5bd336..38d34a76797 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -22,6 +22,7 @@ public enum Keyword { AWAKEN("Awaken", KeywordWithCostAndAmount.class, false, "If you cast this spell for %s, also put {%d:+1/+1 counter} on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land."), BACKUP("Backup", KeywordWithAmount.class, false, "When this creature enters, put {%1$d:+1/+1 counter} on target creature. If that's another creature, it gains the following ability until end of turn."), BANDING("Banding", SimpleKeyword.class, true, "Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking."), + BANDSWITH("Bands with other", KeywordWithType.class, false, "can attack in a band with another %s"), BARGAIN("Bargain", SimpleKeyword.class, false, "You may sacrifice an artifact, enchantment, or token as you cast this spell."), BATTLE_CRY("Battle cry", SimpleKeyword.class, false, "Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn."), BESTOW("Bestow", KeywordWithCost.class, false, "If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature."), diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java index 2f78a5a145b..a31ace72781 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java @@ -20,6 +20,7 @@ public class KeywordWithType extends KeywordInstance { type = "artifact, legendary, and/or Saga permanent"; } break; + case BANDSWITH: case HEXPROOF: case LANDWALK: type = details.split(":")[1]; diff --git a/forge-gui/res/cardsfolder/a/adventurers_guildhouse.txt b/forge-gui/res/cardsfolder/a/adventurers_guildhouse.txt index b45339e98b5..7225318465c 100644 --- a/forge-gui/res/cardsfolder/a/adventurers_guildhouse.txt +++ b/forge-gui/res/cardsfolder/a/adventurers_guildhouse.txt @@ -1,7 +1,7 @@ Name:Adventurers' Guildhouse ManaCost:no cost Types:Land -S:Mode$ Continuous | Affected$ Creature.Green+Legendary+YouCtrl | AddKeyword$ Bands with Other Legendary Creatures | Description$ Green legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) +S:Mode$ Continuous | Affected$ Creature.Green+Legendary+YouCtrl | AddKeyword$ Bands with other:Creature.Legendary:legendary creatures | Description$ Green legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) SVar:NonStackingEffect:True DeckNeeds:Color$Green & Type$Legendary Oracle:Green legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) diff --git a/forge-gui/res/cardsfolder/c/cathedral_of_serra.txt b/forge-gui/res/cardsfolder/c/cathedral_of_serra.txt index 3b06dcc00c1..481f8dc5f37 100644 --- a/forge-gui/res/cardsfolder/c/cathedral_of_serra.txt +++ b/forge-gui/res/cardsfolder/c/cathedral_of_serra.txt @@ -1,7 +1,7 @@ Name:Cathedral of Serra ManaCost:no cost Types:Land -S:Mode$ Continuous | Affected$ Creature.White+Legendary+YouCtrl | AddKeyword$ Bands with Other Legendary Creatures | Description$ White legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) +S:Mode$ Continuous | Affected$ Creature.White+Legendary+YouCtrl | AddKeyword$ Bands with other:Creature.Legendary:legendary creatures | Description$ White legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) SVar:NonStackingEffect:True DeckHas:Keyword$BandsWithOther DeckNeeds:Type$Legendary & Color$White diff --git a/forge-gui/res/cardsfolder/m/mountain_stronghold.txt b/forge-gui/res/cardsfolder/m/mountain_stronghold.txt index 219b0dc67cc..43125b0c1b8 100644 --- a/forge-gui/res/cardsfolder/m/mountain_stronghold.txt +++ b/forge-gui/res/cardsfolder/m/mountain_stronghold.txt @@ -1,6 +1,6 @@ Name:Mountain Stronghold ManaCost:no cost Types:Land -S:Mode$ Continuous | Affected$ Creature.Red+Legendary+YouCtrl | AddKeyword$ Bands with Other Legendary Creatures | Description$ Red legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) +S:Mode$ Continuous | Affected$ Creature.Red+Legendary+YouCtrl | AddKeyword$ Bands with other:Creature.Legendary:legendary creatures | Description$ Red legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) DeckNeeds:Color$Red & Type$Legendary Oracle:Red legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) diff --git a/forge-gui/res/cardsfolder/o/old_fogey.txt b/forge-gui/res/cardsfolder/o/old_fogey.txt index 86e9ca00849..8c49c70cf2d 100644 --- a/forge-gui/res/cardsfolder/o/old_fogey.txt +++ b/forge-gui/res/cardsfolder/o/old_fogey.txt @@ -6,7 +6,7 @@ K:Phasing K:Cumulative upkeep:1 K:Echo:G G K:Fading:3 -K:Bands with Other Dinosaurs +K:Bands with other:Dinosaur K:Landwalk:Plains.Snow:Snow Plains K:Protection:Homarid:Homarids K:Flanking diff --git a/forge-gui/res/cardsfolder/s/seafarers_quay.txt b/forge-gui/res/cardsfolder/s/seafarers_quay.txt index 14402d03bbc..8ebb76c71c3 100644 --- a/forge-gui/res/cardsfolder/s/seafarers_quay.txt +++ b/forge-gui/res/cardsfolder/s/seafarers_quay.txt @@ -1,6 +1,6 @@ Name:Seafarer's Quay ManaCost:no cost Types:Land -S:Mode$ Continuous | Affected$ Creature.Blue+Legendary+YouCtrl | AddKeyword$ Bands with Other Legendary Creatures | Description$ Blue legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) +S:Mode$ Continuous | Affected$ Creature.Blue+Legendary+YouCtrl | AddKeyword$ Bands with other:Creature.Legendary:legendary creatures | Description$ Blue legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) DeckNeeds:Type$Legendary & Color$Blue Oracle:Blue legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) diff --git a/forge-gui/res/cardsfolder/s/shelkin_brownie.txt b/forge-gui/res/cardsfolder/s/shelkin_brownie.txt index 37af1363027..e346b5d0c93 100644 --- a/forge-gui/res/cardsfolder/s/shelkin_brownie.txt +++ b/forge-gui/res/cardsfolder/s/shelkin_brownie.txt @@ -2,5 +2,5 @@ Name:Shelkin Brownie ManaCost:1 G Types:Creature Ouphe PT:1/1 -A:AB$ Debuff | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Bands with Other Creatures named Wolves of the Hunt & Bands with Other Legendary Creatures | SpellDescription$ Target creature loses all "bands with other" abilities until end of turn. | StackDescription$ SpellDescription +A:AB$ Debuff | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Bands with other | SpellDescription$ Target creature loses all "bands with other" abilities until end of turn. | StackDescription$ SpellDescription Oracle:{T}: Target creature loses all "bands with other" abilities until end of turn. diff --git a/forge-gui/res/cardsfolder/t/tolaria.txt b/forge-gui/res/cardsfolder/t/tolaria.txt index ee04a29458e..ec8219ed62b 100644 --- a/forge-gui/res/cardsfolder/t/tolaria.txt +++ b/forge-gui/res/cardsfolder/t/tolaria.txt @@ -2,5 +2,5 @@ Name:Tolaria ManaCost:no cost Types:Legendary Land A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}. -A:AB$ Debuff | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Banding & Bands with Other Creatures named Wolves of the Hunt & Bands with Other Legendary Creatures | ActivationPhases$ Upkeep | SpellDescription$ Target creature loses banding and all "bands with other" abilities until end of turn. Activate only during any upkeep step. | StackDescription$ SpellDescription +A:AB$ Debuff | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Banding & Bands with other | ActivationPhases$ Upkeep | SpellDescription$ Target creature loses banding and all "bands with other" abilities until end of turn. Activate only during any upkeep step. | StackDescription$ SpellDescription Oracle:{T}: Add {U}.\n{T}: Target creature loses banding and all "bands with other" abilities until end of turn. Activate only during any upkeep step. diff --git a/forge-gui/res/cardsfolder/u/unholy_citadel.txt b/forge-gui/res/cardsfolder/u/unholy_citadel.txt index 23de3c704a1..c0e2faddcb4 100644 --- a/forge-gui/res/cardsfolder/u/unholy_citadel.txt +++ b/forge-gui/res/cardsfolder/u/unholy_citadel.txt @@ -1,7 +1,7 @@ Name:Unholy Citadel ManaCost:no cost Types:Land -S:Mode$ Continuous | Affected$ Creature.Black+Legendary+YouCtrl | AddKeyword$ Bands with Other Legendary Creatures | Description$ Black legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) +S:Mode$ Continuous | Affected$ Creature.Black+Legendary+YouCtrl | AddKeyword$ Bands with other:Creature.Legendary:legendary creatures | Description$ Black legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) SVar:NonStackingEffect:True DeckNeeds:Type$Legendary & Color$Black Oracle:Black legendary creatures you control have "bands with other legendary creatures." (Any legendary creatures can attack in a band as long as at least one has "bands with other legendary creatures." Bands are blocked as a group. If at least two legendary creatures you control, one of which has "bands with other legendary creatures," are blocking or being blocked by the same creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) diff --git a/forge-gui/res/tokenscripts/wolves_of_the_hunt.txt b/forge-gui/res/tokenscripts/wolves_of_the_hunt.txt index 52c66ecb6ec..ea322ac9721 100644 --- a/forge-gui/res/tokenscripts/wolves_of_the_hunt.txt +++ b/forge-gui/res/tokenscripts/wolves_of_the_hunt.txt @@ -3,5 +3,5 @@ ManaCost:no cost Colors:green Types:Creature Wolf PT:1/1 -K:Bands with Other Creatures named Wolves of the Hunt +K:Bands with other:Creature.namedWolves of the Hunt:Creatures named Wolves of the Hunt Oracle:Bands with other creatures named Wolves of the Hunt.