- Added a comprehensive map of plural card subtypes to their singular counterparts, to the best of my knowledge of how the plural forms are formed (please take a look and update if necessary). Needed for the correct function of text change effects with any type (e.g. Homing Sliver + New Blood).

- Added an exception for the card text generation for the compound subtype "Eldrazi Scion" (e.g. Kor Castigator).
This commit is contained in:
Agetian
2017-08-12 13:58:26 +00:00
parent 0e4af7dbcf
commit 58b2c36498
2 changed files with 218 additions and 1 deletions

View File

@@ -1651,6 +1651,9 @@ public class Card extends GameEntity implements Comparable<Card> {
}
}
// Kor Castigator and other similar creatures with composite subtype Eldrazi Scion in their text
creatures = creatures.replace("Scions or Eldrazis", "Eldrazi Scions");
StringBuilder sbShort = new StringBuilder();
if (allNegative) {
boolean isFirst = true;

View File

@@ -69,6 +69,21 @@ public final class CardUtil {
* So Clerics maps to Cleric, Demons to Demon, etc.
*/
public static final ImmutableBiMap<String, String> singularTypes = ImmutableBiMap.<String, String>builder()
// Creature types
.put("Advisors", "Advisor")
.put("Aetherborn", "Aetherborn")
.put("Allies", "Ally")
.put("Angels", "Angel")
.put("Antelopes", "Antelope")
.put("Apes", "Ape")
.put("Archers", "Archer")
.put("Archons", "Archon")
.put("Artificers", "Artificer")
.put("Assassins", "Assassin")
.put("Assembly-Workers", "Assembly-Worker")
.put("Atogs", "Atog")
.put("Aurochs", "Aurochs")
.put("Avatars", "Avatar")
.put("Badgers", "Badger")
.put("Barbarians", "Barbarian")
.put("Basilisks", "Basilisk")
@@ -82,16 +97,215 @@ public final class CardUtil {
.put("Boars", "Boar")
.put("Bringers", "Bringer")
.put("Brushwaggs", "Brushwagg")
.put("Camarids", "Camarid")
.put("Camels", "Camel")
.put("Caribous", "Caribou")
.put("Carriers", "Carrier")
.put("Cats", "Cat")
.put("Centaurs", "Centaur")
.put("Cephalids", "Cephalid")
.put("Chimeras", "Chimera")
.put("Citizens", "Citizen")
.put("Clerics", "Cleric")
.put("Cockatrices", "Cockatrice")
.put("Constructs", "Construct")
.put("Cowards", "Coward")
.put("Crabs", "Crab")
.put("Crocodiles", "Crocodile")
.put("Cyclopes", "Cyclops")
.put("Dauthis", "Dauthi")
.put("Demons", "Demon")
.put("Deserters", "Deserter")
.put("Devils", "Devil")
.put("Djinns", "Djinn")
.put("Dragons", "Dragon")
.put("Drakes", "Drake")
.put("Dreadnoughts", "Dreadnought")
.put("Drones", "Drone")
.put("Druids", "Druid")
.put("Dryads", "Dryad")
.put("Dwarves", "Dwarf")
.put("Efreets", "Efreet")
.put("Elders", "Elder")
.put("Eldrazi", "Eldrazi")
.put("Elementals", "Elemental")
.put("Elephants", "Elephant")
.put("Elves", "Elf")
.put("Elks", "Elk")
.put("Eyes", "Eye")
.put("Faeries", "Faerie")
.put("Ferrets", "Ferret")
.put("Fish", "Fish")
.put("Flagbearers", "Flagbearer")
.put("Foxes", "Fox")
.put("Frogs", "Frog")
.put("Fungi", "Fungus")
.put("Gargoyles", "Gargoyle")
.put("Germs", "Germ")
.put("Giants", "Giant")
.put("Gnomes", "Gnome")
.put("Goats", "Goat")
.put("Goblins", "Goblin")
.put("Gods", "God")
.put("Golems", "Golem")
.put("Gorgons", "Gorgon")
.put("Graveborn", "Graveborn")
.put("Gremlins", "Gremlin")
.put("Griffins", "Griffin")
.put("Hags", "Hag")
.put("Harpies", "Harpy")
.put("Hellions", "Hellion")
.put("Hippos", "Hippo")
.put("Hippogriffs", "Hippogriff")
.put("Homarids", "Homarid")
.put("Homunculi", "Homunculus")
.put("Horrors", "Horror")
.put("Horses", "Horse")
.put("Hounds", "Hound")
.put("Humans", "Human")
.put("Hydras", "Hydra")
.put("Hyenas", "Hyena")
.put("Illusions", "Illusion")
.put("Imps", "Imp")
.put("Incarnations", "Incarnation")
.put("Insects", "Insect")
.put("Jackals", "Jackal")
.put("Jellyfishes", "Jellyfish")
.put("Juggernauts", "Juggernaut")
.put("Kavus", "Kavu")
.put("Kirins", "Kirin")
.put("Kithkins", "Kithkin")
.put("Knights", "Knight")
.put("Kobolds", "Kobold")
.put("Kors", "Kor")
.put("Krakens", "Kraken")
.put("Lamias", "Lamia")
.put("Lammasus", "Lammasu")
.put("Leeches", "Leech")
.put("Leviathans", "Leviathan")
.put("Lhurgoyfs", "Lhurgoyf")
.put("Licids", "Licid")
.put("Lizards", "Lizard")
.put("Manticores", "Manticore")
.put("Masticores", "Masticore")
.put("Mercenaries", "Mercenary")
.put("Merfolks", "Merfolk")
.put("Metathrans", "Metathran")
.put("Minions", "Minion")
.put("Minotaurs", "Minotaur")
.put("Moles", "Mole")
.put("Mongers", "Monger")
.put("Mongooses", "Mongoose")
.put("Monks", "Monk")
.put("Monkeys", "Monkey")
.put("Moonfolks", "Moonfolk")
.put("Mutants", "Mutant")
.put("Myrs", "Myr")
.put("Mystics", "Mystic")
.put("Nagas", "Naga")
.put("Nautili", "Nautilus")
.put("Nephilims", "Nephilim")
.put("Nightmares", "Nightmare")
.put("Nightstalkers", "Nightstalker")
.put("Ninjas", "Ninja")
.put("Noggles", "Noggle")
.put("Nomads,", "Nomad,")
.put("Nymphs,", "Nymph,")
.put("Octopi", "Octopus")
.put("Ogres", "Ogre")
.put("Oozes", "Ooze")
.put("Orbs", "Orb")
.put("Orcs", "Orc")
.put("Orggs", "Orgg")
.put("Ouphes", "Ouphe")
.put("Oxen", "Ox")
.put("Oysters", "Oyster")
.put("Pegasi", "Pegasus")
.put("Pentavites", "Pentavite")
.put("Pests", "Pest")
.put("Phelddagrifs", "Phelddagrif")
.put("Phoenixes", "Phoenix")
.put("Pilots", "Pilot")
.put("Pinchers", "Pincher")
.put("Pirates", "Pirate")
.put("Plants", "Plant")
.put("Praetors", "Praetor")
.put("Prisms", "Prism")
.put("Processors", "Processor")
.put("Rabbits", "Rabbit")
.put("Rats", "Rat")
.put("Rebels", "Rebel")
.put("Reflections", "Reflection")
.put("Rhinos", "Rhino")
.put("Riggers", "Rigger")
.put("Rogues", "Rogue")
.put("Sables", "Sable")
.put("Salamanders", "Salamander")
.put("Samurais", "Samurai")
.put("Sands", "Sand")
.put("Saprolings", "Saproling")
.put("Satyrs", "Satyr")
.put("Scarecrows", "Scarecrow")
.put("Scions", "Scion")
.put("Scorpions", "Scorpion")
.put("Scouts", "Scout")
.put("Serfs", "Serf")
.put("Serpents", "Serpent")
.put("Servos", "Servo")
.put("Shades", "Shade")
.put("Shamans", "Shaman")
.put("Shapeshifters", "Shapeshifter")
.put("Sheep", "Sheep")
.put("Sirens", "Siren")
.put("Skeletons", "Skeleton")
.put("Sliths", "Slith")
.put("Slivers", "Sliver")
.put("Slugs", "Slug")
.put("Snakes", "Snake")
.put("Soldiers", "Soldier")
.put("Soltaris", "Soltari")
.put("Spawns", "Spawn")
.put("Specters", "Specter")
.put("Spellshapers", "Spellshaper")
.put("Sphinxes", "Sphinx")
.put("Spiders", "Spider")
.put("Spikes", "Spike")
.put("Spirits", "Spirit")
.put("Splinters", "Splinter")
.put("Sponges", "Sponge")
.put("Squids", "Squid")
.put("Squirrels", "Squirrel")
.put("Starfish", "Starfish")
.put("Surrakars", "Surrakar")
.put("Survivors", "Survivor")
.put("Tetravites", "Tetravite")
.put("Thalakoses", "Thalakos")
.put("Thopters", "Thopter")
.put("Thrulls", "Thrull")
.put("Treefolks", "Treefolk")
.put("Triskelavites", "Triskelavite")
.put("Trolls", "Troll")
.put("Turtles", "Turtle")
.put("Unicorns", "Unicorn")
.put("Vampires", "Vampire")
.put("Vedalkens", "Vedalken")
.put("Viashinos", "Viashino")
.put("Volvers", "Volver")
.put("Walls", "Wall")
.put("Warriors", "Warrior")
.put("Weirds", "Weird")
.put("Werewolves", "Werewolf")
.put("Whales", "Whale")
.put("Wizards", "Wizard")
.put("Wolves", "Wolf")
.put("Wolverines", "Wolverine")
.put("Wombats", "Wombat")
.put("Worms", "Worm")
.put("Wraiths", "Wraith")
.put("Wurms", "Wurm")
.put("Yetis", "Yeti")
.put("Zombies", "Zombie")
.put("Zuberas", "Zubera")
// Land Types
.put("Mountains", "Mountain")