From 505a4b00a79971ced2c310173d05784d1a3900c4 Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 12:10:00 -0700 Subject: [PATCH] AI Draftbot rating system reworked, ratings added for 10 sets the way stored ratings for cards has been reworked 1. each set has its own ratings file and it will be loaded dynamically if the AI needs it 2. each ratings file for a set is normalized within itself, so the rating systems don't need to be scaled to match eachother. essentially cards are rated within the context of their set 3. changed the rarity rating booster to only apply to unrated cards 4. the file setsWithRatings.csv explains how to add additional ratings. no code changes are required, but a recompilation will be required to add the files to the jar. --- .../java/mage/player/ai/ComputerPlayer.java | 4 +- .../java/mage/player/ai/utils/RateCard.java | 92 ++++--- .../Mage.Player.AI/src/main/resources/aer.csv | 184 +++++++++++++ .../Mage.Player.AI/src/main/resources/akh.csv | 249 +++++++++++++++++ .../Mage.Player.AI/src/main/resources/dom.csv | 249 +++++++++++++++++ .../Mage.Player.AI/src/main/resources/grn.csv | 259 +++++++++++++++++ .../Mage.Player.AI/src/main/resources/hou.csv | 184 +++++++++++++ .../Mage.Player.AI/src/main/resources/ima.csv | 249 +++++++++++++++++ .../Mage.Player.AI/src/main/resources/kld.csv | 184 +++++++++++++ .../Mage.Player.AI/src/main/resources/m19.csv | 260 ++++++++++++++++++ .../Mage.Player.AI/src/main/resources/mm3.csv | 249 +++++++++++++++++ .../Mage.Player.AI/src/main/resources/rix.csv | 191 +++++++++++++ .../src/main/resources/setsWithRatings.csv | 19 ++ .../Mage.Player.AI/src/main/resources/xln.csv | 259 +++++++++++++++++ 14 files changed, 2591 insertions(+), 41 deletions(-) create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/aer.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/akh.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/dom.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/grn.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/hou.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ima.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/kld.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m19.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/mm3.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/rix.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv create mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/xln.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 8362963995a..4ebe78b127a 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -2074,14 +2074,14 @@ public class ComputerPlayer extends PlayerImpl implements Player { int maxScore = RateCard.rateCard(bestCard, chosenColors); int pickedCardRate = RateCard.getCardRating(bestCard); - if (pickedCardRate <= 3) { + if (pickedCardRate <= 30) { // if card is bad // try to counter pick without any color restriction Card counterPick = pickBestCard(cards, null); int counterPickScore = RateCard.getCardRating(counterPick); // card is really good // take it! - if (counterPickScore >= 8) { + if (counterPickScore >= 80) { bestCard = counterPick; maxScore = RateCard.rateCard(bestCard, chosenColors); } diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java index 35d7c3bbebd..4d488be4c98 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java @@ -36,14 +36,19 @@ import mage.target.common.TargetPlayerOrPlaneswalker; public final class RateCard { private static Map ratings; + private static List setsWithRatingsToBeLoaded; private static final Map rated = new HashMap<>(); - private static Integer min = Integer.MAX_VALUE, max = 0; /** * Rating that is given for new cards. * Ratings are in [1,10] range, so setting it high will make new cards appear more often. + * nowadays, cards that are more rare are more powerful, lets trust that and play the shiny cards. + * */ - private static final int DEFAULT_NOT_RATED_CARD_RATING = 4; + private static final int DEFAULT_NOT_RATED_CARD_RATING = 40; + private static final int DEFAULT_NOT_RATED_UNCOMMON_RATING = 60; + private static final int DEFAULT_NOT_RATED_RARE_RATING = 75; + private static final int DEFAULT_NOT_RATED_MYTHIC_RATING = 90; private static final Logger log = Logger.getLogger(RateCard.class); @@ -81,8 +86,8 @@ public final class RateCard { } else { type = 6; } - int score = 10 * getCardRating(card) + 2 * type + getManaCostScore(card, allowedColors) - + 40 * isRemoval(card) + getRarityScore(card); + int score = getCardRating(card) + 2 * type + getManaCostScore(card, allowedColors) + + 40 * isRemoval(card); if (allowedColors == null) rated.put(card.getName(), score); return score; @@ -148,7 +153,6 @@ public final class RateCard { } } } - return 0; } @@ -156,17 +160,36 @@ public final class RateCard { * Return rating of the card. * * @param card Card to rate. - * @return Rating number from [1;10]. + * @return Rating number from [1:100]. */ public static int getCardRating(Card card) { - if (ratings == null) { - readRatings(); + if (setsWithRatingsToBeLoaded == null){ + setsWithRatingsToBeLoaded = new LinkedList<>(); + InputStream is = RateCard.class.getResourceAsStream("/setsWithRatings.csv"); + Scanner scanner = new Scanner(is); + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + if (line.substring(0,1) != "#"){ + setsWithRatingsToBeLoaded.add(line); + } + } } - if (ratings.containsKey(card.getName())) { - int r = ratings.get(card.getName()); - // normalize to [1..10] - float f = 10.0f * (r - min) / (max - min); - return (int) Math.round(f); + String exp = card.getExpansionSetCode().toLowerCase(); + readRatings(exp); + + if (ratings != null && ratings.containsKey(card.getName())) { + return ratings.get(card.getName()); + } + + Rarity r = card.getRarity(); + if (Rarity.COMMON == r){ + return DEFAULT_NOT_RATED_CARD_RATING; + }else if (Rarity.UNCOMMON == r){ + return DEFAULT_NOT_RATED_UNCOMMON_RATING; + }else if (Rarity.RARE == r){ + return DEFAULT_NOT_RATED_RARE_RATING; + }else if (Rarity.MYTHIC == r){ + return DEFAULT_NOT_RATED_MYTHIC_RATING; } return DEFAULT_NOT_RATED_CARD_RATING; } @@ -174,14 +197,20 @@ public final class RateCard { /** * Reads ratings from resources. */ - private synchronized static void readRatings() { + private synchronized static void readRatings(String expCode) { if (ratings == null) { ratings = new HashMap<>(); - readFromFile("/m13.csv"); + } + if (setsWithRatingsToBeLoaded.contains(expCode)){ + System.out.println("reading draftbot ratings for the set" + expCode); + readFromFile("/" + expCode + ".csv"); + setsWithRatingsToBeLoaded.remove(expCode); } } - + private static void readFromFile(String path) { + Integer min = Integer.MAX_VALUE, max = 0; + Map thisFileRatings = new HashMap<>(); try { InputStream is = RateCard.class.getResourceAsStream(path); Scanner scanner = new Scanner(is); @@ -197,12 +226,17 @@ public final class RateCard { if (rating < min) { min = rating; } - ratings.put(name, rating); + thisFileRatings.put(name, rating); } } + // normalize for the file to [1..100] + for (String name: thisFileRatings.keySet()){ + int r = thisFileRatings.get(name); + int newrating = (int)(100.0f * (r - min) / (max - min)); + ratings.put(name, newrating); + } } catch (Exception e) { e.printStackTrace(); - ratings.clear(); // no rating available on exception } } @@ -263,27 +297,7 @@ public final class RateCard { } return rate; } - - /** - * Get rarity score. - * nowadays, cards that are more rare are more powerful, lets - * trust that and play the shiny cards. - * - * @param card - * @return integer rating value - */ - private static int getRarityScore(Card card) { - Rarity r = card.getRarity(); - if (Rarity.MYTHIC == r){ - return 60; - }else if (Rarity.RARE == r){ - return 40; - }else if (Rarity.UNCOMMON == r){ - return 20; - }else{ - return 0; - } - } + /** * Determines whether mana symbol is color. * diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/aer.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/aer.csv new file mode 100644 index 00000000000..d586ce8d8cb --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/aer.csv @@ -0,0 +1,184 @@ +Ajani Unyielding:40114 +Herald of Anguish:39905 +Rishkar, Peema Renegade:39137 +Aethersphere Harvester:38827 +Heart of Kiran:37403 +Yahenni’s Expertise:37199 +Tezzeret the Schemer:34694 +Solemn Recruit:34338 +Untethered Express:33419 +Battle at the Bridge:33072 +Yahenni, Undying Partisan:32377 +Fatal Push:32126 +Sram’s Expertise:32076 +Walking Ballista:31052 +Baral’s Expertise:30879 +Freejam Regent:30870 +Glint-Sleeve Siphoner:30022 +Ridgescale Tusker:30018 +Quicksmith Spy:29214 +Scrapper Champion:29176 +Aethertide Whale:28976 +Daring Demolition:28538 +Gifted Aetherborn:28163 +Quicksmith Rebel:27792 +Hungry Flames:27737 +Thopter Arrest:27574 +Exquisite Archangel:27415 +Kari Zev, Skyship Raider:27188 +Aetherwind Basker:26371 +Treasure Keeper:26283 +Greenbelt Rampager:26185 +Vengeful Rebel:25902 +Aethergeode Miner:25711 +Rishkar’s Expertise:25327 +Lightning Runner:25297 +Shock:25129 +Caught in the Brights:24815 +Lifecrafter’s Bestiary:24466 +Midnight Entourage:23732 +Sram, Senior Edificer:23386 +Metallic Mimic:23383 +Maulfist Revolutionary:23093 +Greenwheel Liberator:21817 +Chandra’s Revolution:21713 +Maverick Thopterist:21685 +Airdrop Aeronauts:21061 +Narnam Renegade:20406 +Winding Constrictor:20174 +Scrap Trawler:20001 +Monstrous Onslaught:19528 +Wind-Kin Raiders:19507 +Deadeye Harpooner:19305 +Skyship Plunderer:18967 +Aether Poisoner:18617 +Cruel Finality:18352 +Release the Gremlins:18286 +Aether Chaser:17813 +Rogue Refiner:17646 +Reckless Racer:17299 +Dawnfeather Eagle:17238 +Felidar Guardian:17122 +Prey Upon:16986 +Spire Patrol:16942 +Druid of the Cowl:16941 +Aetherstream Leopard:16826 +Reverse Engineer:15858 +Daredevil Dragster:15795 +Shielded Aether Thief:15596 +Scrounging Bandar:14827 +Lifecraft Cavalry:14821 +Pacification Array:14672 +Renegade Rallier:14442 +Trophy Mage:14084 +Enraged Giant:13989 +Foundry Hornet:13907 +Call for Unity:13832 +Renegade Wheelsmith:13717 +Peacewalker Colossus:13604 +Sweatworks Brawler:13229 +Aether Swooper:13171 +Outland Boar:13074 +Restoration Specialist:12713 +Perilous Predicament:12702 +Aeronaut Admiral:12409 +Tezzeret’s Touch:12281 +Oath of Ajani:11663 +Bastion Inventor:11485 +Weldfast Engineer:11309 +Countless Gears Renegade:11144 +Mechanized Production:10887 +Hinterland Drake:10667 +Consulate Crackdown:10549 +Renegade Map:10115 +Peema Aether-Seer:9906 +Unbridled Growth:9661 +Lifecraft Awakening:9620 +Baral, Chief of Compliance:9382 +Merchant’s Dockhand:9033 +Barricade Breaker:8635 +Lifecrafter’s Gift:8248 +Hidden Herbalists:8012 +Mobile Garrison:7976 +Aether Herder:7964 +Disallow:7550 +Kari Zev’s Expertise:7472 +Cogwork Assembler:7463 +Heroic Intervention:6922 +Hidden Stockpile:6732 +Illusionist’s Stratagem:6678 +Leave in the Dust:6675 +Ghirapur Osprey:6597 +Decommission:6354 +Ice Over:6297 +Night Market Aeronaut:6198 +Gremlin Infestation:6195 +Spire of Industry:6181 +Audacious Infiltrator:6084 +Sly Requisitioner:5718 +Alley Strangler:5595 +Silkweaver Elite:5574 +Aid from the Cowl:5463 +Highspire Infusion:5402 +Frontline Rebel:5350 +Invigorated Rampage:5268 +Defiant Salvager:5211 +Watchful Automaton:5147 +Siege Modification:5142 +Inspiring Statuary:4932 +Embraal Gear-Smasher:4847 +Deft Dismissal:4727 +Shipwreck Moray:4645 +Metallic Rebuke:4618 +Dispersal Technician:4389 +Resourceful Return:4325 +Efficient Construction:4108 +Welder Automaton:4076 +Aether Inspector:3989 +Ravenous Intruder:3963 +Ironclad Revolutionary:3930 +Implement of Ferocity:3720 +Alley Evasion:3712 +Hope of Ghirapur:3699 +Aerial Modification:3671 +Gonti’s Aether Heart:3295 +Foundry Assembler:3292 +Fen Hauler:3265 +Natural Obsolescence:3262 +Destructive Tampering:3239 +Implement of Examination:3217 +Irontread Crusher:3097 +Filigree Crawler:3020 +Servo Schematic:3006 +Verdant Automaton:2979 +Reservoir Walker:2918 +Whir of Invention:2916 +Paradox Engine:2714 +Salvage Scuttler:2677 +Augmenting Automaton:2636 +Fourth Bridge Prowler:2448 +Conviction:2411 +Lathnu Sailback:2352 +Planar Bridge:2348 +Night Market Guard:2244 +Bastion Enforcer:2236 +Precise Strike:2179 +Universal Solvent:2128 +Implement of Malice:2089 +Crackdown Construct:1926 +Dark Intimations:1876 +Pia’s Revolution:1850 +Renegade’s Getaway:1472 +Aegis Automaton:1355 +Consulate Dreadnought:1255 +Indomitable Creativity:1206 +Negate:1016 +Consulate Turret:1014 +Implement of Combustion:806 +Take into Custody:678 +Implement of Improvement:624 +Wrangle:543 +Ornithopter:177 +Gonti’s Machinations:167 +Prizefighter Construct:123 +184 Secret Salvage 77 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/akh.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/akh.csv new file mode 100644 index 00000000000..aa35d0b68e0 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/akh.csv @@ -0,0 +1,249 @@ +Angel of Sanctions:1638 +Glorybringer:1590 +Oketra the True:1512 +Rhonas the Indomitable:1456 +Gideon of the Trials:1445 +Hazoret the Fervent:1404 +Liliana, Death’s Majesty:1370 +Archfiend of Ifnir:1346 +Cast Out:1331 +Curator of Mysteries:1329 +Regal Caracal:1324 +Glyph Keeper:1312 +Cut /// Ribbons:1310 +Dusk /// Dawn:1266 +Vizier of Many Faces:1252 +Never /// Return:1251 +Vizier of the Menagerie:1243 +Heart-Piercer Manticore:1220 +Liliana’s Mastery:1216 +Trial of Zeal:1195 +Samut, Voice of Dissent:1190 +Nissa, Steward of Elements:1174 +Magma Spray:1157 +Honored Hydra:1132 +Sweltering Suns:1126 +Glory-Bound Initiate:1125 +Lord of the Accursed:1119 +Ahn-Crop Crasher:1115 +Insult /// Injury:1113 +Champion of Rhonas:1096 +Plague Belcher:1095 +Angler Drake:1091 +Cartouche of Strength:1089 +Electrify:1083 +Combat Celebrant:1079 +Compulsory Rest:1073 +Crocodile of the Crossing:1061 +Gust Walker:1058 +Scaled Behemoth:1055 +Decimator Beetle:1050 +Bone Picker:1048 +Drake Haven:1042 +Mouth /// Feed:1039 +Channeler Initiate:1038 +Deem Worthy:1031 +Bontu the Glorified:1022 +Trial of Solidarity:1018 +Final Reward:1013 +Stir the Sands:1010 +Hapatra, Vizier of Poisons:1009 +Start /// Finish:1005 +Trial of Strength:1002 +Emberhorn Minotaur:999 +Prepare /// Fight:998 +Baleful Ammit:997 +Cartouche of Knowledge:989 +Cruel Reality:989 +Sandwurm Convergence:973 +Prowling Serpopard:965 +Trial of Ambition:962 +Devoted Crop-Mate:959 +Oketra’s Attendant:955 +Commit /// Memory:952 +Neheb, the Worthy:952 +Aven Wind Guide:944 +Bloodrage Brawler:944 +Fan Bearer:936 +Dread Wanderer:930 +Temmet, Vizier of Naktamun:924 +Oketra’s Monument:921 +Edifice of Authority:919 +Cartouche of Ambition:918 +Wayward Servant:905 +Lay Claim:903 +Splendid Agony:896 +Tah-Crop Elite:894 +Kefnet the Mindful:884 +Gravedigger:871 +Harsh Mentor:864 +Soulstinger:863 +Exemplar of Strength:862 +Cartouche of Zeal:861 +Defiant Greatmaw:846 +Enigma Drake:846 +Cartouche of Solidarity:840 +Labyrinth Guardian:836 +Vizier of Deferment:835 +Naga Vitalist:834 +Pull from Tomorrow:832 +Rags /// Riches:832 +Khenra Charioteer:829 +Hooded Brawler:828 +Horror of the Broken Lands:815 +Trueheart Duelist:815 +Honored Crop-Captain:813 +Bitterblade Warrior:812 +Shefet Monitor:808 +Heaven /// Earth:807 +Seraph of the Suns:805 +Nef-Crop Entangler:803 +Greater Sandwurm:802 +Ruthless Sniper:799 +Cursed Minotaur:798 +Rhet-Crop Spearmaster:796 +Soul-Scar Mage:796 +Trial of Knowledge:787 +Trueheart Twins:785 +Battlefield Scavenger:784 +Aven Initiate:782 +Wasteland Scorpion:778 +Impeccable Timing:774 +Essence Scatter:773 +Open into Wonder:769 +Unwavering Initiate:767 +Warfire Javelineer:765 +Manticore of the Gauntlet:762 +Binding Mummy:760 +Approach of the Second Sun:758 +Ahn-Crop Champion:757 +Synchronized Strike:756 +Winged Shepherd:747 +Ornery Kudu:742 +Cryptic Serpent:741 +Shimmerscale Drake:739 +Hieroglyphic Illumination:737 +Censor:733 +Illusory Wrappings:731 +Watchful Naga:731 +Vizier of Tumbling Sands:724 +Minotaur Sureshot:720 +Rhonas’s Monument:719 +Galestrike:718 +Merciless Javelineer:718 +Bounty of the Luxa:712 +Aven Mindcensor:708 +Naga Oracle:705 +Thresher Lizard:692 +Quarry Hauler:689 +Irrigated Farmland:688 +Pathmaker Initiate:681 +Shadowstorm Vizier:678 +Grim Strider:676 +Flameblade Adept:674 +Sheltered Thicket:672 +Destined /// Lead:668 +Wander in Death:668 +Weaver of Currents:663 +Blighted Bat:651 +Nest of Scarabs:648 +Oracle’s Vault:646 +Canyon Slough:643 +Evolving Wilds:640 +Colossapede:638 +Sacred Cat:637 +Doomed Dissenter:635 +Fetid Pools:628 +Festering Mummy:616 +Onward /// Victory:615 +Throne of the God-Pharaoh:613 +Anointed Procession:608 +Gift of Paradise:602 +Anointer Priest:599 +Consuming Fervor:595 +Limits of Solidarity:594 +Spring /// Mind:593 +Desert Cerodon:592 +Sparring Mummy:592 +River Serpent:584 +Seeker of Insight:582 +Shed Weakness:582 +Gideon’s Intervention:580 +Slither Blade:580 +Tah-Crop Skirmisher:580 +Initiate’s Companion:570 +Pitiless Vizier:567 +Scattered Groves:563 +Supernatural Stamina:563 +Vizier of Remedies:563 +Hekma Sentinels:562 +Bloodlust Inciter:559 +Pouncing Cheetah:559 +Winds of Rebuke:550 +Cancel:540 +Painful Lesson:536 +Mighty Leap:535 +Pyramid of the Pantheon:535 +Reduce /// Rubble:533 +Brute Strength:530 +Floodwaters:530 +Faith of the Devoted:529 +Manglehorn:529 +Miasmic Mummy:522 +Fling:519 +Oashra Cultivator:512 +In Oketra’s Name:510 +Forsake the Worldly:506 +Supply Caravan:505 +Time to Reflect:505 +Decision Paralysis:504 +Giant Spider:504 +Hapatra’s Mark:500 +Nimble-Blade Khenra:499 +Harvest Season:497 +Failure /// Comply:496 +Zenith Seeker:494 +Those Who Serve:491 +Bontu’s Monument:488 +As Foretold:487 +Tormenting Voice:487 +Hazoret’s Monument:485 +New Perspectives:484 +Pursue Glory:478 +Unburden:476 +Djeru’s Resolve:469 +Spidery Grasp:468 +Kefnet’s Monument:466 +Lay Bare the Heart:464 +Scribe of the Mindful:463 +Honed Khopesh:450 +Stinging Shot:443 +Trespasser’s Curse:431 +Blazing Volley:430 +Watchers of the Dead:415 +Sixth Sense:413 +Dune Beetle:386 +Cradle of the Accursed:382 +Glorious End:380 +Sacred Excavation:379 +Grasping Dunes:372 +Shadow of the Grave:370 +Cascading Cataracts:357 +Hyena Pack:356 +Benefaction of Rhonas:354 +Dissenter’s Deliverance:353 +Painted Bluffs:348 +Renewed Faith:337 +Hazoret’s Favor:305 +Violent Impact:284 +Haze of Pollen:277 +Scarab Feast:268 +Compelling Argument:265 +Embalmer’s Tools:260 +Luxa River Shrine:213 +By Force:201 +Ancient Crab:198 +Sunscorched Desert:186 +Dispossess:109 +Protection of the Hekma:108 +249 Gate to the Afterlife 95 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/dom.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/dom.csv new file mode 100644 index 00000000000..b14997dc930 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/dom.csv @@ -0,0 +1,249 @@ +Lyra Dawnbringer:2375 +Karn, Scion of Urza:2372 +Shalai, Voice of Plenty:2234 +Teferi, Hero of Dominaria:2215 +Verix Bladewing:2207 +Aryel, Knight of Windgrace:2166 +Multani, Yavimaya’s Avatar:2150 +History of Benalia:2123 +Siege-Gang Commander:2091 +In Bolas’s Clutches:2047 +Josu Vess, Lich Knight:2044 +Cast Down:2025 +Demonlord Belzenlok:2016 +Eviscerate:2010 +Serra Angel:2000 +Slimefoot, the Stowaway:1995 +Seal Away:1985 +Tatyova, Benthic Druid:1981 +Zahid, Djinn of the Lamp:1971 +Darigaaz Reincarnated:1959 +Weatherlight:1952 +Phyrexian Scriptures:1951 +Forebear’s Blade:1928 +Adeliz, the Cinder Wind:1919 +The Eldest Reborn:1919 +Teshar, Ancestor’s Apostle:1913 +Territorial Allosaurus:1896 +Danitha Capashen, Paragon:1895 +Muldrotha, the Gravetide:1881 +Fight with Fire:1879 +Shivan Fire:1879 +Helm of the Host:1876 +Knight of Grace:1863 +Vicious Offering:1859 +Pegasus Courser:1856 +Icy Manipulator:1849 +Benalish Marshal:1837 +Untamed Kavu:1836 +Goblin Chainwhirler:1834 +Raff Capashen, Ship’s Mage:1834 +Blessed Light:1833 +Rite of Belzenlok:1827 +Naru Meha, Master Wizard:1824 +Grand Warlord Radha:1817 +Two-Headed Giant:1817 +Llanowar Elves:1815 +Shanna, Sisay’s Legacy:1814 +Steel Leaf Champion:1811 +Song of Freyalise:1807 +Settle the Score:1804 +Time of Ice:1804 +Grunn, the Lonely King:1793 +Knight of Malice:1786 +Arvad the Cursed:1783 +Jhoira, Weatherlight Captain:1780 +Saproling Migration:1780 +Wizard’s Lightning:1779 +Tempest Djinn:1777 +Urgoros, the Empty One:1773 +Cloudreader Sphinx:1769 +Baloth Gorger:1768 +Skittering Surveyor:1765 +Baird, Steward of Argive:1762 +Blackblade Reforged:1760 +Hallar, the Firefletcher:1760 +On Serra’s Wings:1753 +Evra, Halcyon Witness:1748 +Traxos, Scourge of Kroog:1746 +Blink of an Eye:1742 +Triumph of Gerrard:1725 +Deep Freeze:1723 +Kazarov, Sengir Pureblood:1718 +Tiana, Ship’s Caretaker:1712 +Merfolk Trickster:1709 +Squee, the Immortal:1708 +Valduk, Keeper of the Flame:1708 +Kwende, Pride of Femeref:1707 +Whisper, Blood Liturgist:1707 +Academy Drake:1705 +Jaya Ballard:1704 +Gideon’s Reproach:1703 +Warcry Phoenix:1703 +Sporecrown Thallid:1698 +Yavimaya Sapherd:1692 +Rona, Disciple of Gix:1686 +Wizard’s Retort:1684 +Elfhame Druid:1683 +Fiery Intervention:1682 +Torgaar, Famine Incarnate:1682 +Yawgmoth’s Vile Offering:1677 +Deathbloom Thallid:1665 +Fungal Infection:1662 +Daring Archaeologist:1658 +Cold-Water Snapper:1656 +Thorn Elemental:1656 +Call the Cavalry:1649 +Sylvan Awakening:1648 +Jaya’s Immolating Inferno:1646 +Verdant Force:1642 +Fungal Plots:1636 +Spore Swarm:1635 +Divination:1629 +Syncopate:1626 +Marwyn, the Nurturer:1625 +Sergeant-at-Arms:1625 +Garna, the Bloodflame:1624 +Ghitu Chronicler:1622 +Tetsuko Umezawa, Fugitive:1612 +Dread Shade:1602 +Stronghold Confessor:1601 +Academy Journeymage:1599 +Chainer’s Torment:1593 +Thallid Omnivore:1592 +Thallid Soothsayer:1592 +Jousting Lance:1587 +Firefist Adept:1581 +Goblin Barrage:1580 +Naban, Dean of Iteration:1579 +Caligo Skin-Witch:1577 +Karn’s Temporal Sundering:1577 +Keldon Overseer:1574 +Dauntless Bodyguard:1572 +Opt:1572 +Ghitu Journeymage:1570 +The Mending of Dominaria:1568 +The Mirari Conjecture:1568 +Wild Onslaught:1567 +Haphazard Bombardment:1566 +Skizzik:1565 +Mammoth Spider:1558 +Serra Disciple:1558 +Clifftop Retreat:1557 +Aven Sentry:1556 +Mishra’s Self-Replicator:1552 +Ancient Animus:1550 +D’Avenant Trapper:1550 +Gilded Lotus:1549 +Jhoira’s Familiar:1548 +Champion of the Flame:1547 +Ghitu Lavarunner:1547 +Woodland Cemetery:1543 +Keldon Raider:1541 +Grow from the Ashes:1536 +Radiating Lightning:1536 +Sanctum Spirit:1533 +Windgrace Acolyte:1532 +Urza’s Ruinous Blast:1531 +Sulfur Falls:1527 +The Antiquities War:1522 +Adamant Will:1519 +Goblin Warchief:1518 +Adventurous Impulse:1516 +Mesa Unicorn:1512 +Bloodtallow Candle:1510 +Hinterland Harbor:1509 +Lingering Phantom:1506 +Short Sword:1499 +Llanowar Scout:1495 +Juggernaut:1493 +Frenzied Rage:1490 +Slinn Voda, the Rising Deep:1489 +Dub:1484 +Cabal Paladin:1482 +Gift of Growth:1482 +Dark Bargain:1481 +Benalish Honor Guard:1480 +Isolated Chapel:1473 +Kamahl’s Druidic Vow:1472 +Memorial to Glory:1469 +Sentinel of the Pearl Trident:1466 +Krosan Druid:1465 +Guardians of Koilos:1457 +Llanowar Envoy:1455 +Pardic Wanderer:1450 +Soul Salvage:1449 +The Flame of Keld:1448 +Arcane Flight:1445 +Divest:1444 +Feral Abomination:1441 +Artificer’s Assistant:1439 +Memorial to Unity:1439 +Yargle, Glutton of Urborg:1436 +Sparring Construct:1431 +Mox Amber:1429 +Weight of Memory:1426 +Precognition Field:1424 +The First Eruption:1420 +Invoke the Divine:1414 +Unwind:1413 +Primordial Wurm:1409 +Bloodstone Goblin:1408 +Vodalian Arcanist:1401 +Cabal Stronghold:1400 +Urza’s Tome:1393 +Lich’s Mastery:1390 +Primevals’ Glorious Rebirth:1390 +Run Amok:1390 +Gaea’s Protector:1382 +Pierce the Sky:1382 +Relic Runner:1381 +Jodah, Archmage Eternal:1378 +Excavation Elephant:1377 +Knight of New Benalia:1377 +Aesthir Glider:1376 +Befuddle:1375 +Homarid Explorer:1372 +Memorial to Folly:1371 +Howling Golem:1369 +Voltaic Servant:1369 +Nature’s Spiral:1368 +Sorcerer’s Wand:1366 +Corrosive Ooze:1360 +Broken Bond:1357 +Curator’s Ward:1355 +Tolarian Scholar:1354 +Memorial to Genius:1349 +Rampaging Cyclops:1347 +Warlord’s Fury:1328 +Fervent Strike:1321 +Demonic Vigor:1320 +Keldon Warcaller:1319 +Arbor Armament:1314 +Final Parting:1313 +Diligent Excavator:1312 +Navigator’s Compass:1308 +Charge:1307 +Amaranthine Wall:1305 +Cabal Evangel:1305 +Fire Elemental:1304 +Shield of the Realm:1304 +Oath of Teferi:1300 +Tragic Poet:1283 +Blessing of Belzenlok:1272 +Board the Weatherlight:1258 +Thran Temporal Gateway:1256 +Drudge Sentinel:1248 +Orcish Vandal:1247 +Skirk Prospector:1246 +Zhalfirin Void:1239 +Sage of Lat-Nam:1232 +Rescue:1225 +Gaea’s Blessing:1218 +Healing Grace:1200 +Rat Colony:1191 +Powerstone Shard:1162 +Seismic Shift:1152 +Damping Sphere:1133 +Fall of the Thran:1104 +Memorial to War:1089 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/grn.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/grn.csv new file mode 100644 index 00000000000..b8ec1234861 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/grn.csv @@ -0,0 +1,259 @@ +Doom Whisperer:2332 +Aurelia, Exemplar of Justice:2258 +Vraska, Golgari Queen:2211 +Ral, Izzet Viceroy:2196 +Dream Eater:2180 +Thief of Sanity:2164 +Assassin's Trophy:2153 +Trostani Discordant:2141 +Beast Whisperer:2102 +Nullhide Ferox:2102 +Legion Warboss:2100 +March of the Multitudes:2094 +Conclave Tribunal:2092 +Niv-Mizzet, Parun:2088 +Light of the Legion:2073 +Price of Fame:2036 +Etrata, the Silencer:2019 +Venerated Loxodon:2017 +Justice Strike:2016 +Tajic, Legion's Edge:2005 +Underrealm Lich:1985 +Pelt Collector:1984 +Izoni, Thousand-Eyed:1977 +Find // Finality:1976 +Lazav, the Multifarious:1973 +Nightveil Sprite:1968 +Midnight Reaper:1964 +Lava Coil:1963 +Watcher in the Mist:1961 +Response // Resurgence:1958 +Knight of Autumn:1950 +Dimir Spybug:1948 +Integrity // Intervention:1945 +Nightveil Predator:1943 +Emmara, Soul of the Accord:1942 +Luminous Bonds:1932 +Artful Takedown:1923 +Ritual of Soot:1914 +Blood Operative:1903 +Conclave Cavalier:1902 +Truefire Captain:1902 +Runaway Steam-Kin:1901 +Murmuring Mystic:1899 +Arclight Phoenix:1894 +Risk Factor:1893 +Boros Challenger:1887 +Dead Weight:1887 +Bounty of Might:1886 +Connive // Concoct:1886 +Status // Statue:1885 +Deadly Visit:1878 +Deafening Clarion:1878 +Roc Charger:1864 +Kraul Harpooner:1839 +Citywatch Sphinx:1837 +Assure // Assemble:1836 +Expansion // Explosion:1836 +Capture Sphere:1834 +Thoughtbound Phantasm:1832 +Crackling Drake:1830 +Dawn of Hope:1827 +Disinformation Campaign:1826 +House Guildmage:1824 +Quasiduplicate:1816 +Sunhome Stalwart:1815 +Skyknight Legionnaire:1805 +Darkblade Agent:1788 +Plaguecrafter:1786 +Goblin Cratermaker:1773 +Affectionate Indrik:1772 +Whisper Agent:1771 +Notion Rain:1761 +Ledev Champion:1757 +Charnel Troll:1751 +Thought Erasure:1750 +Golgari Findbroker:1749 +Chemister's Insight:1743 +Goblin Banneret:1737 +Swiftblade Vindicator:1736 +Command the Storm:1728 +Camaraderie:1726 +Wee Dragonauts:1723 +District Guide:1722 +Hypothesizzle:1715 +League Guildmage:1712 +Direct Current:1711 +Experimental Frenzy:1711 +Discovery // Dispersal:1708 +Rampaging Monument:1705 +Rosemane Centaur:1698 +Inescapable Blaze:1693 +Watery Grave:1687 +Legion Guildmage:1680 +Chamber Sentry:1674 +Inspiring Unicorn:1671 +Ionize:1669 +Flower // Flourish:1663 +Divine Visitation:1656 +Dimir Informant:1653 +Healer's Hawk:1651 +Conclave Guildmage:1648 +Sinister Sabotage:1647 +Parhelion Patrol:1640 +Ochran Assassin:1639 +Goblin Electromancer:1634 +Glowspore Shaman:1631 +Siege Wurm:1629 +Wojek Bodyguard:1629 +Hellkite Whelp:1626 +Hired Poisoner:1625 +Unexplained Disappearance:1625 +Overgrown Tomb:1624 +Prey Upon:1624 +Pitiless Gorgon:1622 +Flight of Equenauts:1621 +Hatchery Spider:1621 +Temple Garden:1621 +Beacon Bolt:1620 +Citywide Bust:1615 +Bounty Agent:1613 +Piston-Fist Cyclops:1605 +Steam Vents:1600 +Erratic Cyclops:1582 +Swarm Guildmage:1582 +Sacred Foundry:1581 +Mission Briefing:1580 +Muse Drake:1574 +Arboretum Elemental:1572 +Worldsoul Colossus:1572 +Skyline Scout:1569 +Smelt-Ward Minotaur:1568 +Burglar Rat:1561 +Whispering Snitch:1560 +Fresh-Faced Recruit:1555 +Necrotic Wound:1554 +Electrostatic Field:1541 +Disdainful Stroke:1534 +Gruesome Menagerie:1534 +Sprouting Renewal:1534 +Sonic Assault:1533 +Sure Strike:1527 +Severed Strands:1522 +Beamsplitter Mage:1521 +Chromatic Lantern:1516 +Ledev Guardian:1510 +Radical Idea:1502 +Pilfering Imp:1500 +Vernadi Shieldmate:1497 +Ornery Goblin:1495 +Gatekeeper Gargoyle:1489 +Barging Sergeant:1484 +Blade Instructor:1483 +Rhizome Lurcher:1481 +Invert // Invent:1477 +Ironshell Beetle:1477 +Generous Stray:1474 +Demotion:1469 +Might of the Masses:1468 +Molderhulk:1467 +Selective Snare:1466 +Hammer Dropper:1463 +Swathcutter Giant:1462 +Firemind's Research:1460 +Devkarin Dissident:1459 +Mnemonic Betrayal:1459 +Vigorspore Wurm:1459 +Haazda Marshal:1457 +Lotleth Giant:1455 +Righteous Blow:1451 +Fire Urchin:1446 +Gird for Battle:1441 +Kraul Swarm:1437 +Veiled Shade:1437 +Centaur Peacemaker:1434 +Golgari Raiders:1434 +Passwall Adept:1434 +Sworn Companions:1434 +Erstwhile Trooper:1432 +Hunted Witness:1431 +Kraul Foragers:1431 +Collar the Culprit:1427 +Mausoleum Secrets:1424 +Take Heart:1424 +Dazzling Lights:1419 +Rubblebelt Boar:1418 +Sumala Woodshaper:1418 +Intrusive Packbeast:1416 +Loxodon Restorer:1415 +Omnispell Adept:1415 +Spinal Centipede:1415 +Glaive of the Guildpact:1414 +Vivid Revival:1410 +Douser of Lights:1409 +Devious Cover-Up:1404 +Chance for Glory:1402 +Child of Night:1402 +Enhanced Surveillance:1399 +Hitchclaw Recluse:1398 +Mephitic Vapors:1395 +Circuitous Route:1389 +Cosmotronic Wave:1389 +Leapfrog:1379 +Goblin Locksmith:1377 +Guildmages' Forum:1370 +Guild Summit:1368 +Bartizan Bats:1367 +Undercity Uprising:1363 +Thousand-Year Storm:1355 +Drowned Secrets:1349 +Boros Guildgate :1345 +Grappling Sundew:1344 +Boros Guildgate :1343 +Tenth District Guard:1342 +Izzet Guildgate :1338 +Crushing Canopy:1335 +Portcullis Vine:1333 +Undercity Necrolisk:1332 +Dimir Guildgate :1331 +Barrier of Bones:1327 +Wild Ceratok:1327 +Izzet Guildgate :1326 +Gravitic Punch:1320 +Silent Dart:1310 +Wary Okapi:1309 +Pack's Favor:1307 +Garrison Sergeant:1303 +Vedalken Mesmerist:1303 +Golgari Guildgate :1295 +Golgari Guildgate :1286 +Dimir Guildgate :1280 +Maniacal Rage:1280 +Selesnya Guildgate :1280 +Urban Utopia:1278 +Wall of Mist:1273 +Maximize Altitude:1268 +Join Shields:1267 +Selesnya Guildgate :1266 +Book Devourer:1263 +Wishcoin Crab:1262 +Narcomoeba:1257 +Crush Contraband:1248 +Gateway Plaza:1248 +Fearless Halberdier:1246 +Torch Courier:1242 +Candlelight Vigil:1241 +Moodmark Painter:1230 +Creeping Chill:1218 +Izzet Locket:1217 +Dimir Locket:1202 +Maximize Velocity:1200 +Unmoored Ego:1184 +Never Happened:1175 +Golgari Locket:1173 +Selesnya Locket:1154 +Boros Locket:1128 +Street Riot:1110 +Vicious Rumors:1101 +Pause for Reflection:1089 +Wand of Vertebrae:1073 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/hou.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/hou.csv new file mode 100644 index 00000000000..5687f1f849e --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/hou.csv @@ -0,0 +1,184 @@ +The Scarab God:2272 +Angel of Condemnation:2079 +The Locust God:2077 +The Scorpion God:2048 +Pride Sovereign:2046 +Crested Sunmare:1996 +Nicol Bolas, God-Pharaoh:1965 +Majestic Myriarch:1915 +Neheb, the Eternal:1906 +Hour of Devastation:1901 +Adorned Pouncer:1889 +Ammit Eternal:1881 +Samut, the Tested:1874 +Razaketh, the Foulblooded:1856 +Grind // Dust:1855 +Resilient Khenra:1832 +Sand Strangler:1822 +Ramunap Hydra:1818 +Abrade:1816 +Desert’s Hold:1813 +Champion of Wits:1810 +Bontu’s Last Reckoning:1807 +Nimble Obstructionist:1796 +Chaos Maw:1788 +Sifter Wurm:1783 +Unesh, Criosphinx Sovereign:1776 +Hour of Glory:1771 +River Hoopoe:1769 +Ominous Sphinx:1754 +Torment of Hailfire:1754 +Open Fire:1751 +Torment of Venom:1743 +Dreamstealer:1740 +Struggle // Survive:1737 +Burning-Fist Minotaur:1734 +Ambuscade:1732 +God-Pharaoh’s Gift:1731 +Accursed Horde:1729 +Doomfall:1727 +Earthshaker Khenra:1716 +Aerial Guide:1711 +Khenra Scrapper:1709 +Oketra’s Avenger:1691 +Bloodwater Entity:1689 +Rhonas’s Last Stand:1686 +Angel of the God-Pharaoh:1685 +Tenacious Hunter:1685 +Hour of Promise:1684 +Eternal of Harsh Truths:1680 +Fervent Paincaster:1677 +Lethal Sting:1673 +Vizier of the Anointed:1673 +Wildfire Eternal:1671 +Puncturing Blow:1668 +Sandblast:1668 +Sunscourge Champion:1661 +Spellweaver Eternal:1656 +Vizier of the True:1656 +Banewhip Punisher:1652 +Kefnet’s Last Word:1652 +Merciless Eternal:1648 +Vile Manifestation:1647 +Bitterbow Sharpshooters:1646 +Driven // Despair:1643 +Supreme Will:1638 +Hour of Revelation:1637 +Torment of Scarabs:1637 +Oasis Ritualist:1636 +Farm // Market:1628 +Unraveling Mummy:1628 +Obelisk Spider:1617 +Mirage Mirror:1615 +Manticore Eternal:1613 +Resolute Survivors:1610 +Ruin Rat:1610 +Overwhelming Splendor:1608 +Unconventional Tactics:1608 +Hour of Eternity:1606 +Devotee of Strength:1605 +Sinuous Striker:1604 +Sunset Pyramid:1602 +Riddleform:1600 +Solitary Camel:1600 +Harrier Naga:1598 +Steward of Solidarity:1597 +Sidewinder Naga:1595 +Dauntless Aven:1591 +Feral Prowler:1591 +Thorned Moloch:1586 +Striped Riverwinder:1584 +Frontline Devastator:1580 +Appeal // Authority:1578 +Aven of Enduring Hope:1577 +Mummy Paramount:1571 +Uncage the Menagerie:1570 +Consign // Oblivion:1564 +Hollow One:1561 +Aven Reedstalker:1560 +Rhonas’s Stalwart:1559 +Unsummon:1557 +Desert of the Glorified:1556 +Manalith:1555 +Hope Tender:1551 +Granitic Titan:1550 +Ifnir Deadlands:1550 +Blur of Blades:1547 +Marauding Boneslasher:1547 +Shefet Dunes:1547 +Claim // Fame:1545 +Magmaroth:1545 +Beneath the Sands:1543 +Ramunap Excavator:1542 +Desert of the Mindful:1541 +Khenra Eternal:1541 +Reason // Believe:1541 +Rampaging Hippo:1540 +Unquenchable Thirst:1539 +Razaketh’s Rite:1537 +Saving Grace:1532 +Steadfast Sentinel:1531 +Wall of Forgotten Pharaohs:1531 +Imminent Doom:1530 +Defiant Khenra:1526 +Cunning Survivor:1525 +Ramunap Ruins:1525 +Hashep Oasis:1524 +Overcome:1523 +Abandoned Sarcophagus:1514 +Carrion Screecher:1514 +Firebrand Archer:1510 +Frilled Sandwalla:1507 +Hazoret’s Undying Fury:1505 +Inferno Jet:1499 +Crypt of the Eternals:1496 +Gift of Strength:1495 +Kindled Fury:1493 +Ipnu Rivulet:1492 +Act of Heroism:1491 +Without Weakness:1489 +Desert of the Indomitable:1487 +Fraying Sanity:1485 +Hostile Desert:1484 +Traveler’s Amulet:1482 +God-Pharaoh’s Faithful:1477 +Desert of the Fervent:1476 +Apocalypse Demon:1474 +Wretched Camel:1472 +Dagger of the Worthy:1468 +Refuse // Cooperate:1468 +Quarry Beetle:1464 +Countervailing Winds:1460 +Gilded Cerodon:1455 +Djeru, With Eyes Open:1450 +Strategic Planning:1450 +Tragic Lesson:1449 +Scrounger of Souls:1447 +Dune Diviner:1438 +Desert of the True:1436 +Chandra’s Defeat:1433 +Proven Combatant:1430 +Survivors’ Encampment:1427 +Djeru’s Renunciation:1425 +Disposal Mummy:1422 +Imaginary Threats:1418 +Moaning Wall:1416 +Dutiful Servants:1403 +Oketra’s Last Mercy:1403 +Crash Through:1400 +Lurching Rotbeast:1397 +Swarm Intelligence:1397 +Life Goes On:1395 +Grisly Survivor:1388 +Dunes of the Dead:1381 +Jace’s Defeat:1369 +Endless Sands:1367 +Seer of the Last Tomorrow:1360 +Graven Abomination:1352 +Gideon’s Defeat:1346 +Liliana’s Defeat:1345 +Leave // Chance:1324 +Solemnity:1265 +Scavenger Grounds:1256 +Crook of Condemnation:1228 +Nissa’s Defeat:1185 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ima.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ima.csv new file mode 100644 index 00000000000..d9afedab23a --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ima.csv @@ -0,0 +1,249 @@ +Consecrated Sphinx:2182 +Ancestral Vision:2144 +Archangel of Thune:2141 +Elesh Norn, Grand Cenobite:2135 +Mana Drain:2124 +Urabrask the Hidden:2107 +Sheoldred, Whispering One:2106 +Swords to Plowshares:2106 +Primeval Titan:2103 +Ob Nixilis, the Fallen:2081 +Doom Blade:2064 +Rampaging Baloths:2056 +Thundermaw Hellkite:2053 +Restoration Angel:2044 +Keiga, the Tide Star:2042 +Avacyn, Angel of Hope:2029 +Kiki-Jiki, Mirror Breaker:2024 +Kokusho, the Evening Star:2020 +Cryptic Command:2012 +Supreme Verdict:2002 +Genesis Hydra:2001 +Fireball:2000 +Emeria Angel:1992 +Austere Command:1969 +Blood Baron of Vizkopa:1968 +Lotus Cobra:1955 +Sphinx of Uthuun:1927 +Yosei, the Morning Star:1924 +Rift Bolt:1912 +Scourge of Valkas:1909 +Bogardan Hellkite:1907 +Ryusei, the Falling Star:1907 +Spiritmonger:1900 +Vorinclex, Voice of Hunger:1897 +Indulgent Tormentor:1888 +Heroes’ Bane:1885 +Jugan, the Rising Star:1877 +Simic Sky Swallower:1874 +Serra Angel:1873 +Grisly Spectacle:1865 +Rune-Scarred Demon:1864 +Channel:1861 +Hypersonic Dragon:1856 +Lightning Helix:1856 +Teferi, Mage of Zhalfir:1854 +Knight of the Reliquary:1848 +Thran Dynamo:1848 +Thoughtseize:1839 +Anger of the Gods:1836 +Savageborn Hydra:1829 +Charmbreaker Devils:1828 +Staggershock:1824 +Malfegor:1812 +Palladium Myr:1808 +Draconic Roar:1796 +Ulcerate:1795 +Heat Ray:1794 +Mahamoti Djinn:1793 +Hoarding Dragon:1786 +Corpsejack Menace:1783 +Abyssal Persecutor:1774 +Firemane Angel:1771 +Curse of Predation:1766 +Electrolyze:1754 +Reave Soul:1754 +Oblivion Stone:1744 +Overgrown Battlement:1738 +Claustrophobia:1736 +Obstinate Baloth:1732 +Blizzard Specter:1724 +Pillar of Flame:1724 +Wall of Roots:1723 +Undercity Troll:1721 +Cephalid Broker:1717 +Abzan Battle Priest:1716 +Abzan Falconer:1698 +Mind Stone:1697 +Illusory Ambusher:1691 +Fog Bank:1690 +Mana Leak:1689 +Genesis Wave:1686 +Condescend:1685 +Rosheen Meanderer:1682 +Aether Vial:1681 +Wing Shards:1680 +Bladewing the Risen:1677 +Vizkopa Guildmage:1671 +Aetherize:1669 +Bloodghast:1667 +Horizon Canopy:1662 +Noxious Dragon:1661 +Seeker of the Way:1657 +Azorius Charm:1650 +Topan Freeblade:1650 +Ajani’s Pridemate:1649 +Guttersnipe:1648 +Orzhov Basilica:1648 +Necropotence:1645 +Prodigal Pyromancer:1641 +Monastery Swiftspear:1639 +Phantom Monster:1637 +Search for Tomorrow:1637 +Phyrexian Rager:1630 +Frost Lynx:1624 +Carven Caryatid:1621 +Hunt the Weak:1621 +Izzet Boilerworks:1620 +Blinding Mage:1616 +Amass the Components:1610 +Iona’s Judgment:1605 +Repeal:1602 +Serra Ascendant:1601 +Star Compass:1600 +Kiln Fiend:1597 +Simic Growth Chamber:1596 +Auriok Champion:1592 +Illusory Angel:1588 +Day of the Dragons:1587 +Jungle Barrier:1586 +Rakdos Carnarium:1586 +Dimir Aqueduct:1575 +Golgari Rot Farm:1572 +Jin-Gitaxias, Core Augur:1570 +Bladewing’s Thrall:1562 +Mnemonic Wall:1562 +Ainok Bond-Kin:1561 +Crowned Ceratok:1556 +Jhessian Thief:1555 +Boros Garrison:1551 +Selesnya Sanctuary:1551 +Grove of the Burnwillows:1547 +Chronicler of Heroes:1546 +Glimpse the Unthinkable:1543 +Manakin:1537 +Riverwheel Aerialists:1531 +Guardian Idol:1525 +Assault Formation:1520 +Graven Cairns:1520 +Mer-Ek Nightblade:1519 +Stalwart Aven:1518 +Netcaster Spider:1516 +Angelic Accord:1514 +Doomed Traveler:1514 +Thrill-Kill Assassin:1514 +Distortion Strike:1511 +Azorius Chancery:1509 +Skywise Teachings:1503 +Borderland Marauder:1497 +Sustainer of the Realm:1495 +Furnace Whelp:1494 +Sultai Flayer:1493 +Ivy Elemental:1490 +Darksteel Axe:1487 +Gruul Turf:1486 +Path of Bravery:1485 +Wight of Precinct Six:1480 +Dissolve:1477 +Doorkeeper:1476 +Evolving Wilds:1472 +Keldon Halberdier:1468 +Foul-Tongue Invocation:1465 +Durkwood Baloth:1462 +Nantuko Shaman:1462 +Vent Sentinel:1461 +Scion of Ugin:1460 +Splatter Thug:1459 +Mishra’s Bauble:1458 +Child of Night:1454 +Ojutai’s Breath:1454 +Night of Souls’ Betrayal:1449 +Greater Basilisk:1448 +Butcher’s Glee:1446 +Surreal Memoir:1443 +Magus of the Moon:1438 +Battle-Rattle Shaman:1435 +Guard Duty:1429 +Sandstone Oracle:1426 +Enlarge:1425 +Jace’s Phantasm:1425 +Pristine Talisman:1424 +Duskdale Wurm:1423 +Elusive Spellfist:1423 +Dragon Egg:1421 +Flusterstorm:1421 +Kolaghan Monument:1415 +Balustrade Spy:1410 +Dragon Bell Monk:1407 +Student of Ojutai:1407 +Dragon Tempest:1406 +Angel of Mercy:1405 +Dragonloft Idol:1395 +Sanguine Bond:1394 +Dead Reveler:1393 +Wrench Mind:1393 +Diminish:1392 +Wildsize:1392 +Windfall:1392 +Guided Strike:1391 +Survival Cache:1391 +Lord of the Pit:1390 +Nimbus Maze:1390 +Rakdos Drake:1384 +Phantom Tiger:1381 +River of Tears:1381 +Moonglove Extract:1380 +Timberland Guide:1378 +Trepanation Blade:1378 +Burrenton Forge-Tender:1376 +Virulent Swipe:1376 +Hunting Pack:1367 +Fury Charm:1364 +Infantry Veteran:1360 +Coordinated Assault:1356 +Jaddi Offshoot:1353 +Inspiring Call:1350 +Shriekgeist:1349 +Thought Scour:1345 +Pentarch Ward:1344 +Bogbrew Witch:1343 +Tavern Swindler:1342 +Prey’s Vengeance:1341 +Serum Powder:1340 +Rotfeaster Maggot:1338 +Emerge Unscathed:1322 +Lead the Stampede:1322 +Bala Ged Scorpion:1321 +Dragonlord’s Servant:1321 +Great Teacher’s Decree:1313 +Eternal Thirst:1312 +Hammerhand:1302 +Haunting Hymn:1301 +Festering Newt:1287 +Tormenting Voice:1286 +Earth Elemental:1278 +Benevolent Ancestor:1264 +Trumpet Blast:1253 +Bewilder:1252 +Mark of Mutiny:1245 +Crucible of Fire:1242 +Bubbling Cauldron:1241 +Duress:1236 +Lure:1228 +Mindcrank:1225 +Radiant Fountain:1224 +Disenchant:1215 +Runed Servitor:1213 +Aerial Predation:1196 +Shimmering Grotto:1163 +Nature’s Claim:1137 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/kld.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/kld.csv new file mode 100644 index 00000000000..d586ce8d8cb --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/kld.csv @@ -0,0 +1,184 @@ +Ajani Unyielding:40114 +Herald of Anguish:39905 +Rishkar, Peema Renegade:39137 +Aethersphere Harvester:38827 +Heart of Kiran:37403 +Yahenni’s Expertise:37199 +Tezzeret the Schemer:34694 +Solemn Recruit:34338 +Untethered Express:33419 +Battle at the Bridge:33072 +Yahenni, Undying Partisan:32377 +Fatal Push:32126 +Sram’s Expertise:32076 +Walking Ballista:31052 +Baral’s Expertise:30879 +Freejam Regent:30870 +Glint-Sleeve Siphoner:30022 +Ridgescale Tusker:30018 +Quicksmith Spy:29214 +Scrapper Champion:29176 +Aethertide Whale:28976 +Daring Demolition:28538 +Gifted Aetherborn:28163 +Quicksmith Rebel:27792 +Hungry Flames:27737 +Thopter Arrest:27574 +Exquisite Archangel:27415 +Kari Zev, Skyship Raider:27188 +Aetherwind Basker:26371 +Treasure Keeper:26283 +Greenbelt Rampager:26185 +Vengeful Rebel:25902 +Aethergeode Miner:25711 +Rishkar’s Expertise:25327 +Lightning Runner:25297 +Shock:25129 +Caught in the Brights:24815 +Lifecrafter’s Bestiary:24466 +Midnight Entourage:23732 +Sram, Senior Edificer:23386 +Metallic Mimic:23383 +Maulfist Revolutionary:23093 +Greenwheel Liberator:21817 +Chandra’s Revolution:21713 +Maverick Thopterist:21685 +Airdrop Aeronauts:21061 +Narnam Renegade:20406 +Winding Constrictor:20174 +Scrap Trawler:20001 +Monstrous Onslaught:19528 +Wind-Kin Raiders:19507 +Deadeye Harpooner:19305 +Skyship Plunderer:18967 +Aether Poisoner:18617 +Cruel Finality:18352 +Release the Gremlins:18286 +Aether Chaser:17813 +Rogue Refiner:17646 +Reckless Racer:17299 +Dawnfeather Eagle:17238 +Felidar Guardian:17122 +Prey Upon:16986 +Spire Patrol:16942 +Druid of the Cowl:16941 +Aetherstream Leopard:16826 +Reverse Engineer:15858 +Daredevil Dragster:15795 +Shielded Aether Thief:15596 +Scrounging Bandar:14827 +Lifecraft Cavalry:14821 +Pacification Array:14672 +Renegade Rallier:14442 +Trophy Mage:14084 +Enraged Giant:13989 +Foundry Hornet:13907 +Call for Unity:13832 +Renegade Wheelsmith:13717 +Peacewalker Colossus:13604 +Sweatworks Brawler:13229 +Aether Swooper:13171 +Outland Boar:13074 +Restoration Specialist:12713 +Perilous Predicament:12702 +Aeronaut Admiral:12409 +Tezzeret’s Touch:12281 +Oath of Ajani:11663 +Bastion Inventor:11485 +Weldfast Engineer:11309 +Countless Gears Renegade:11144 +Mechanized Production:10887 +Hinterland Drake:10667 +Consulate Crackdown:10549 +Renegade Map:10115 +Peema Aether-Seer:9906 +Unbridled Growth:9661 +Lifecraft Awakening:9620 +Baral, Chief of Compliance:9382 +Merchant’s Dockhand:9033 +Barricade Breaker:8635 +Lifecrafter’s Gift:8248 +Hidden Herbalists:8012 +Mobile Garrison:7976 +Aether Herder:7964 +Disallow:7550 +Kari Zev’s Expertise:7472 +Cogwork Assembler:7463 +Heroic Intervention:6922 +Hidden Stockpile:6732 +Illusionist’s Stratagem:6678 +Leave in the Dust:6675 +Ghirapur Osprey:6597 +Decommission:6354 +Ice Over:6297 +Night Market Aeronaut:6198 +Gremlin Infestation:6195 +Spire of Industry:6181 +Audacious Infiltrator:6084 +Sly Requisitioner:5718 +Alley Strangler:5595 +Silkweaver Elite:5574 +Aid from the Cowl:5463 +Highspire Infusion:5402 +Frontline Rebel:5350 +Invigorated Rampage:5268 +Defiant Salvager:5211 +Watchful Automaton:5147 +Siege Modification:5142 +Inspiring Statuary:4932 +Embraal Gear-Smasher:4847 +Deft Dismissal:4727 +Shipwreck Moray:4645 +Metallic Rebuke:4618 +Dispersal Technician:4389 +Resourceful Return:4325 +Efficient Construction:4108 +Welder Automaton:4076 +Aether Inspector:3989 +Ravenous Intruder:3963 +Ironclad Revolutionary:3930 +Implement of Ferocity:3720 +Alley Evasion:3712 +Hope of Ghirapur:3699 +Aerial Modification:3671 +Gonti’s Aether Heart:3295 +Foundry Assembler:3292 +Fen Hauler:3265 +Natural Obsolescence:3262 +Destructive Tampering:3239 +Implement of Examination:3217 +Irontread Crusher:3097 +Filigree Crawler:3020 +Servo Schematic:3006 +Verdant Automaton:2979 +Reservoir Walker:2918 +Whir of Invention:2916 +Paradox Engine:2714 +Salvage Scuttler:2677 +Augmenting Automaton:2636 +Fourth Bridge Prowler:2448 +Conviction:2411 +Lathnu Sailback:2352 +Planar Bridge:2348 +Night Market Guard:2244 +Bastion Enforcer:2236 +Precise Strike:2179 +Universal Solvent:2128 +Implement of Malice:2089 +Crackdown Construct:1926 +Dark Intimations:1876 +Pia’s Revolution:1850 +Renegade’s Getaway:1472 +Aegis Automaton:1355 +Consulate Dreadnought:1255 +Indomitable Creativity:1206 +Negate:1016 +Consulate Turret:1014 +Implement of Combustion:806 +Take into Custody:678 +Implement of Improvement:624 +Wrangle:543 +Ornithopter:177 +Gonti’s Machinations:167 +Prizefighter Construct:123 +184 Secret Salvage 77 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m19.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m19.csv new file mode 100644 index 00000000000..82164b0866a --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m19.csv @@ -0,0 +1,260 @@ +Resplendent Angel:2323 +Tezzeret, Artifice Master:2297 +Ajani, Adversary of Tyrants:2268 +Vivien Reid:2257 +Nicol Bolas, the Ravager:2210 +Bone Dragon:2163 +Demanding Dragon:2122 +Murder:2118 +Banefire:2116 +Lathliss, Dragon Queen:2111 +Djinn of Wishes:2092 +Isareth the Awakener:2083 +Demon of Catastrophes:2078 +Leonin Warleader:2036 +Hieromancer's Cage:2031 +Lightning Strike:2030 +Goreclaw, Terror of Qal Sisma:1990 +Angel of the Dawn:1965 +Vine Mare:1962 +Cleansing Nova:1957 +Luminous Bonds:1957 +Hungering Hydra:1956 +Pelakka Wurm:1948 +Palladia-Mors, the Ruiner:1940 +Thorn Lieutenant:1931 +Rabid Bite:1929 +Dismissive Pyromancer:1919 +Lena, Selfless Champion:1914 +Herald of Faith:1911 +Sigiled Sword of Valeron:1906 +Vaevictis Asmadi, the Dire:1898 +Lich's Caress:1895 +Graveyard Marshal:1885 +Pegasus Courser:1878 +Chromium, the Mutable:1875 +Volcanic Dragon:1869 +Mentor of the Meek:1866 +Vampire Sovereign:1860 +Valiant Knight:1855 +Poison-Tip Archer:1851 +Spit Flame:1851 +Windreader Sphinx:1846 +Death Baron:1844 +Skyrider Patrol:1844 +Shock:1841 +Regal Bloodlord:1840 +Ajani's Pridemate:1836 +Psychic Symbiont:1833 +Liliana, Untouched by Death:1825 +Exclusion Mage:1824 +Star-Crowned Stag:1823 +Sleep:1817 +Heroic Reinforcements:1805 +Patient Rebuilding:1804 +Druid of the Cowl:1790 +Horizon Scholar:1784 +Skymarch Bloodletter:1777 +Sarkhan, Fireblood:1776 +Runic Armasaur:1774 +Prodigious Growth:1773 +Take Vengeance:1772 +Aven Wind Mage:1770 +Dryad Greenseeker:1761 +Electrify:1751 +Sarkhan's Unsealing:1743 +Plague Mare:1739 +Gallant Cavalry:1736 +Mystic Archaeologist:1724 +Draconic Disciple:1723 +Essence Scatter:1723 +Vigilant Baloth:1719 +Skeleton Archer:1717 +Arcades, the Strategist:1715 +Militia Bugler:1715 +Departed Deckhand:1713 +Fell Specter:1708 +Strangling Spores:1703 +Bristling Boar:1699 +Snapping Drake:1693 +Enigma Drake:1692 +Knightly Valor:1692 +Gravedigger:1690 +Sai, Master Thopterist:1688 +Aviation Pioneer:1685 +Skyscanner:1683 +Shield Mare:1680 +Meteor Golem:1674 +Sparktongue Dragon:1673 +Brawl-Bash Ogre:1667 +Remorseful Cleric:1666 +Sift:1663 +Fiery Finish:1654 +Transmogrifying Wand:1653 +Aerial Engineer:1649 +Cavalry Drillmaster:1648 +Ghastbark Twins:1645 +Reclamation Sage:1640 +Ajani's Last Stand:1637 +Metamorphic Alteration:1634 +Mirror Image:1633 +Omenspeaker:1633 +Vivien's Invocation:1633 +Dark-Dweller Oracle:1630 +Boggart Brute:1628 +Dwindle:1625 +Goblin Trashmaster:1625 +Make a Stand:1624 +Liliana's Contract:1623 +Giant Spider:1622 +Open the Graves:1621 +Colossal Dreadmaw:1616 +Divination:1615 +Goblin Instigator:1614 +Supreme Phantom:1613 +Chaos Wand:1605 +Rhox Oracle:1603 +Elvish Rejuvenator:1602 +Skilled Animator:1600 +Leonin Vanguard:1597 +Declare Dominance:1596 +Reassembling Skeleton:1595 +Daggerback Basilisk:1591 +Bone to Ash:1585 +Rise from the Grave:1585 +Gift of Paradise:1582 +Titanic Growth:1582 +Arcane Encyclopedia:1581 +Switcheroo:1581 +Doomed Dissenter:1579 +Gigantosaurus:1579 +Siegebreaker Giant:1577 +Child of Night:1575 +Surge Mare:1575 +Cancel:1561 +Volley Veteran:1560 +Epicure of Blood:1559 +Vampire Neonate:1555 +Guttersnipe:1554 +Aethershield Artificer:1553 +Rogue's Gloves:1553 +Macabre Waltz:1550 +Hired Blade:1548 +Salvager of Secrets:1545 +Diamond Mare:1543 +Blood Divination:1542 +Nightmare's Thirst:1542 +Gargoyle Sentinel:1539 +Act of Treason:1538 +Lightning Mare:1534 +Abnormal Endurance:1531 +Inspired Charge:1531 +Gearsmith Guardian:1527 +Dragon Egg:1521 +Anticipate:1519 +Viashino Pyromancer:1519 +Rustwing Falcon:1514 +Two-Headed Zombie:1513 +Blanchwood Armor:1511 +Hostile Minotaur:1510 +Druid of Horns:1508 +Marauder's Axe:1508 +Diregraf Ghoul:1507 +Havoc Devils:1506 +Satyr Enchanter:1505 +Centaur Courser:1502 +Plummet:1497 +Disperse:1494 +Sure Strike:1494 +Inferno Hellion:1491 +Novice Knight:1491 +Oakenform:1483 +Knight of the Tusk:1482 +Fountain of Renewal:1477 +Ravenous Harpy:1474 +Knight's Pledge:1469 +Thornhide Wolves:1463 +Dragon's Hoard:1461 +Daybreak Chaplain:1459 +Ghirapur Guide:1457 +Greenwood Sentinel:1456 +Recollect:1455 +Goblin Motivator:1452 +Talons of Wildwood:1449 +Colossal Majesty:1447 +Gearsmith Prodigy:1441 +Scholar of Stars:1439 +Ajani's Welcome:1433 +Mighty Leap:1432 +Naturalize:1431 +Trusty Packbeast:1431 +Dwarven Priest:1426 +Uncomfortable Chill:1423 +Oreskos Swiftclaw:1422 +Psychic Corrosion:1421 +Loxodon Line Breaker:1419 +Aether Tunnel:1404 +Frilled Sea Serpent:1403 +Infernal Scarring:1403 +Phylactery Lich:1398 +Mind Rot:1396 +Explosive Apparatus:1395 +Amulet of Safekeeping:1390 +Duress:1390 +Magistrate's Scepter:1388 +Suspicious Bookcase:1388 +Invoke the Divine:1385 +Manalith:1384 +Onakke Ogre:1384 +Tormenting Voice:1384 +One with the Machine:1378 +Meandering River:1374 +Lava Axe:1369 +Stone Quarry:1369 +Thud:1368 +Field Creeper:1367 +Rupture Spire:1366 +Elvish Clancaller:1365 +Wall of Mist:1363 +Suncleanser:1357 +Highland Game:1352 +Walking Corpse:1352 +Fire Elemental:1351 +Tectonic Rift:1348 +Totally Lost:1348 +Woodland Stream:1346 +Trumpet Blast:1339 +Millstone:1329 +Crash Through:1327 +Bogstomper:1326 +Aegis of the Heavens:1323 +Forsaken Sanctuary:1323 +Apex of Power:1307 +Tranquil Expanse:1304 +Cinder Barrens:1296 +Infernal Reckoning:1294 +Revitalize:1293 +Wall of Vines:1292 +Detection Tower:1283 +Timber Gorge:1282 +Submerged Boneyard:1277 +Mistcaller:1273 +Ghostform:1272 +Catalyst Elemental:1268 +Omniscience:1267 +Tolarian Scholar:1267 +Stitcher's Supplier:1263 +Desecrated Tomb:1258 +Scapeshift:1251 +Sovereign's Bite:1250 +Highland Lake:1245 +Infectious Horror:1241 +Doublecast:1240 +Fraying Omnipotence:1220 +Crucible of Worlds:1209 +Root Snare:1201 +Smelt:1199 +Reliquary Tower:1197 +Foul Orchard:1190 +Isolate:1139 +Alpine Moon:1068 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/mm3.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/mm3.csv new file mode 100644 index 00000000000..d088c3d513c --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/mm3.csv @@ -0,0 +1,249 @@ +Jace, the Mind Sculptor:2196 +Master of the Wild Hunt:2148 +Lightning Bolt:2107 +Swords to Plowshares:2060 +Vendilion Clique:2058 +Ravenous Chupacabra:2057 +Courser of Kruphix:1981 +Reef Worm:1962 +Vindicate:1961 +Pillory of the Sleepless:1926 +Akroma, Angel of Fury:1923 +Gisela, Blade of Goldnight:1918 +Akroma, Angel of Wrath:1913 +Animar, Soul of Elements:1902 +Murder:1900 +Ruric Thar, the Unbowed:1896 +Protean Hulk:1894 +Pacifism:1888 +Akroma’s Vengeance:1885 +Murder of Crows:1885 +Phyrexian Obliterator:1882 +Rancor:1864 +Vesuvan Shapeshifter:1858 +Niv-Mizzet, the Firemind:1854 +Shadowmage Infiltrator:1854 +Fiend Hunter:1844 +Pernicious Deed:1841 +Thalia, Guardian of Thraben:1829 +Living Death:1827 +Man-o’-War:1827 +Elvish Piper:1825 +Imperial Recruiter:1810 +Sundering Titan:1806 +Decree of Justice:1803 +Prossh, Skyraider of Kher:1803 +Cloudblazer:1798 +Laquatus’s Champion:1795 +Darien, King of Kjeldor:1787 +Grenzo, Dungeon Warden:1787 +Pyroclasm:1787 +Brion Stoutarm:1786 +Utopia Sprawl:1785 +Counterspell:1772 +Coalition Relic:1765 +Disfigure:1755 +Kongming, “Sleeping Dragon”:1752 +Spikeshot Goblin:1752 +Blightning:1750 +Arbor Elf:1748 +Bident of Thassa:1743 +Hell’s Caretaker:1739 +Cultivate:1728 +Kindle:1726 +Luminarch Ascension:1719 +Fallen Angel:1718 +Krosan Tusker:1718 +Promise of Bunrei:1713 +Squadron Hawk:1712 +Mystic Snake:1711 +Horseshoe Crab:1707 +Ensnaring Bridge:1706 +Lorescale Coatl:1702 +Nicol Bolas:1702 +Boros Charm:1701 +Treasure Keeper:1701 +Undead Gladiator:1699 +Baloth Null:1698 +Chandra’s Outrage:1691 +Notion Thief:1691 +Merfolk Looter:1689 +Willbender:1689 +Azusa, Lost but Seeking:1686 +Quicksilver Dagger:1686 +Armageddon:1683 +Dusk Legion Zealot:1678 +Zombify:1678 +Urbis Protector:1676 +Rishadan Port:1673 +Blue Sun’s Zenith:1672 +Mesmeric Fiend:1669 +Chalice of the Void:1668 +Zulaport Cutthroat:1662 +Epic Confrontation:1658 +Exclude:1658 +Eidolon of the Great Revel:1655 +Nyx-Fleece Ram:1653 +Diabolic Edict:1651 +Brainstorm:1648 +Magus of the Wheel:1648 +Zada, Hedron Grinder:1645 +Court Hussar:1638 +Sift:1638 +Iwamori of the Open Fist:1637 +Twisted Abomination:1633 +Izzet Chemister:1632 +Ire Shaman:1629 +Kavu Predator:1628 +Street Wraith:1628 +Dauntless Cathar:1625 +Cloudshift:1622 +Mystic of the Hidden Way:1622 +Summoner’s Pact:1622 +Ball Lightning:1621 +Skeletonize:1620 +Ruthless Ripper:1614 +Hordeling Outburst:1609 +Path of Peace:1609 +Loyal Sentry:1607 +Eladamri’s Call:1606 +Mishra’s Factory:1604 +Ash Barrens:1602 +Griffin Protector:1591 +Myriad Landscape:1588 +Hanna, Ship’s Navigator:1586 +Flash:1585 +Prophetic Prism:1585 +Unearth:1584 +Enthralling Victor:1583 +Freed from the Real:1581 +Fathom Seer:1578 +Sai of the Shinobi:1578 +Ancient Craving:1577 +Bloodhunter Bat:1577 +Invigorate:1576 +Watchwolf:1575 +Mogg Flunkies:1571 +Vessel of Nascency:1571 +Whitemane Lion:1571 +Swiftfoot Boots:1570 +Plague Wind:1569 +Perilous Myr:1568 +Karona’s Zealot:1567 +Geist of the Moors:1563 +Jalira, Master Polymorphist:1563 +Cascade Bluffs:1560 +Elvish Aberration:1560 +Kavu Climber:1555 +Thresher Lizard:1555 +Horror of the Broken Lands:1551 +Ainok Survivalist:1549 +Genju of the Falls:1549 +Frenzied Goblin:1547 +Pyre Hound:1545 +Stangg:1544 +Twilight Mire:1544 +Broodhatch Nantuko:1542 +Kor Firewalker:1542 +Ratcatcher:1542 +Presence of Gond:1541 +Noble Templar:1539 +Brine Elemental:1537 +Death’s-Head Buzzard:1537 +Fierce Empath:1537 +Timberpack Wolf:1537 +Skirk Commando:1536 +Ghost Ship:1535 +Ember Weaver:1533 +Pact of Negation:1531 +Shoreline Ranger:1531 +Woolly Loxodon:1526 +Curiosity:1525 +Gods Willing:1523 +Deadly Designs:1521 +Phyrexian Ghoul:1519 +Giant Growth:1518 +Fortune Thief:1517 +Genju of the Spires:1517 +Angelic Page:1516 +Nettle Sentinel:1516 +Wildheart Invoker:1514 +Ambassador Oak:1513 +Nezumi Cutthroat:1511 +Knight of the Skyward Eye:1510 +Dark Ritual:1509 +Supernatural Stamina:1509 +Flooded Grove:1503 +Ordeal of Heliod:1503 +Fetid Heath:1500 +Accumulated Knowledge:1498 +Balduvian Horde:1497 +Vampire Lacerator:1491 +Chartooth Cougar:1487 +Lunarch Mantle:1487 +Pendelhaven:1487 +Doomsday:1486 +Colossal Dreadmaw:1485 +Krosan Colossus:1483 +Retraction Helix:1473 +Arcane Denial:1472 +Quicksand:1472 +Fencing Ace:1470 +Goblin War Drums:1467 +Self-Assembler:1463 +Rugged Prairie:1461 +Caustic Tar:1459 +Erg Raiders:1458 +Simian Spirit Guide:1458 +Regrowth:1454 +Mikokoro, Center of the Sea:1450 +Returned Phalanx:1449 +Cursecatcher:1445 +Tree of Redemption:1445 +Soulbright Flamekin:1444 +Primal Clay:1443 +Uncaged Fury:1443 +Will-o’-the-Wisp:1443 +Browbeat:1434 +Heavy Arbalest:1430 +Echoing Courage:1429 +Blood Moon:1425 +Choking Tethers:1424 +Stampede Driver:1422 +Crimson Mage:1421 +Relentless Rats:1421 +Living Wish:1420 +Totally Lost:1418 +Humble Defector:1417 +Ihsan’s Shade:1417 +Zoetic Cavern:1412 +Act of Treason:1405 +Savannah Lions:1404 +Coralhelm Guide:1398 +Trumpet Blast:1397 +Twisted Image:1397 +Dragon’s Eye Savants:1392 +Blue Elemental Blast:1385 +Ancient Stirrings:1377 +Phantasmal Bear:1374 +Rest in Peace:1373 +Dirge of Dread:1372 +Red Elemental Blast:1361 +Triskaidekaphobia:1361 +Cinder Storm:1352 +Auramancer:1346 +Haunted Fengraf:1343 +Strionic Resonator:1342 +Act of Heroism:1341 +Borrowing:100,000 Arrows 1338 +Jackal Pup:1337 +Valor in Akros:1337 +Nihil Spellbomb:1316 +Assembly-Worker:1301 +Pillage:1300 +Disenchant:1271 +Renewed Faith:1250 +Plummet:1238 +Congregate:1218 +Lull:1212 +Conflux:1208 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/rix.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/rix.csv new file mode 100644 index 00000000000..4d561540870 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/rix.csv @@ -0,0 +1,191 @@ +Rekindling Phoenix:2418 +Tetzimoc, Primal Death:2401 +Ravenous Chupacabra:2290 +Twilight Prophet:2282 +Etali, Primal Storm:2192 +Angrath, the Flame-Chained:2180 +The Immortal Sun:2168 +Profane Procession:2155 +Jadelight Ranger:2143 +Ghalta, Primal Hunger:2131 +Tendershoot Dryad:2121 +Bishop of Binding:2103 +Kumena, Tyrant of Orazca:2098 +Dire Fleet Poisoner:2094 +Trapjaw Tyrant:2087 +Bombard:2052 +Moment of Craving:2039 +Huatli, Radiant Champion:2029 +Hadana’s Climb:2019 +Reaver Ambush:2001 +Warkite Marauder:2001 +Champion of Dusk:2000 +Baffling End:1990 +Luminous Bonds:1970 +Impale:1966 +Golden Demise:1946 +Journey to Eternity:1941 +Crested Herdcaller:1936 +Azor, the Lawbringer:1914 +Thrashing Brontodon:1908 +Raging Regisaur:1902 +Zacama, Primal Calamity:1901 +Legion Lieutenant:1898 +Deeproot Elite:1893 +Sadistic Skymarcher:1893 +Needletooth Raptor:1889 +Elenda, the Dusk Rose:1888 +Dire Fleet Daredevil:1883 +Merfolk Mistbinder:1881 +Hunt the Weak:1839 +Forerunner of the Legion:1828 +Zetalpa, Primal Dawn:1820 +Golden Guardian:1819 +Radiant Destiny:1816 +Vona’s Hunger:1798 +Polyraptor:1793 +Tilonalli’s Summoner:1792 +Swift Warden:1774 +Slaughter the Strong:1767 +Protean Raider:1764 +Waterknot:1762 +Seafloor Oracle:1761 +Forerunner of the Empire:1760 +Divine Verdict:1759 +Reckless Rage:1758 +Dusk Legion Zealot:1755 +Squire’s Devotion:1754 +Temple Altisaur:1753 +Forerunner of the Heralds:1749 +Deadeye Brawler:1748 +Nezahal, Primal Tide:1742 +Captain’s Hook:1722 +Curious Obsession:1720 +Charging Tuskodon:1717 +Azor’s Gateway:1706 +Dire Fleet Neckbreaker:1703 +Wayward Swordtooth:1699 +Resplendent Griffin:1698 +Jungle Creeper:1693 +Siegehorn Ceratops:1690 +Kitesail Corsair:1689 +Martyr of Dusk:1689 +Exultant Skymarcher:1686 +Sailor of Means:1683 +Silvergill Adept:1680 +Atzocan Seer:1675 +Jungleborn Pioneer:1674 +Path of Discovery:1669 +Skymarcher Aspirant:1667 +Siren Reaver:1661 +Paladin of Atonement:1655 +Forerunner of the Coalition:1652 +Mutiny:1648 +Storm Fleet Sprinter:1638 +Relentless Raptor:1634 +Everdawn Champion:1625 +Goblin Trailblazer:1622 +Storm Fleet Swashbuckler:1606 +Spire Winder:1600 +Strength of the Pack:1594 +Secrets of the Golden City:1593 +Mausoleum Harpy:1586 +Slippery Scoundrel:1585 +Colossal Dreadmaw:1584 +Knight of the Stampede:1584 +Dusk Charger:1579 +Expel from Orazca:1578 +Oathsworn Vampire:1578 +Overgrown Armasaur:1576 +Daring Buccaneer:1562 +Deadeye Rig-Hauler:1557 +Sun-Crested Pterodon:1557 +Soul of the Rapids:1549 +Cherished Hatchling:1547 +Crashing Tide:1538 +Recover:1538 +Arch of Orazca:1537 +Majestic Heliopterus:1531 +Sanguine Glorifier:1525 +Form of the Dinosaur:1523 +Pride of Conquerors:1523 +Famished Paladin:1516 +Moment of Triumph:1515 +Silverclad Ferocidons:1511 +Frilled Deathspitter:1509 +Kumena’s Awakening:1505 +Snubhorn Sentry:1504 +Voracious Vampire:1504 +Fathom Fleet Boarder:1501 +Buccaneer’s Bravado:1492 +Thunderherd Migration:1487 +Legion Conquistador:1483 +See Red:1481 +Riverwise Augur:1478 +Cacophodon:1477 +Tomb Robber:1475 +Giltgrove Stalker:1472 +Swaggering Corsair:1472 +Evolving Wilds:1463 +Dinosaur Hunter:1461 +World Shaper:1452 +Path of Mettle:1447 +Hardy Veteran:1446 +Mist-Cloaked Herald:1443 +Fanatical Firebrand:1442 +Jadecraft Artisan:1440 +Stampeding Horncrest:1439 +Admiral’s Order:1436 +Timestream Navigator:1433 +Brazen Freebooter:1427 +Imperial Ceratops:1415 +Aggressive Urge:1413 +Traveler’s Amulet:1412 +Grasping Scoundrel:1403 +Jade Bearer:1384 +Aquatic Incursion:1375 +Shake the Foundations:1374 +Vampire Revenant:1368 +Orazca Raptor:1363 +Sun Sentinel:1362 +Hornswoggle:1350 +Mastermind’s Acquisition:1344 +Raptor Companion:1340 +Sea Legs:1332 +Sun-Collared Raptor:1322 +Tilonalli’s Crown:1318 +Gleaming Barrier:1307 +Enter the Unknown:1301 +Storm the Vault:1297 +Crafty Cutpurse:1291 +Pitiless Plunderer:1288 +Forsaken Sanctuary:1281 +Pirate’s Pillage:1274 +Arterial Flow:1255 +Woodland Stream:1246 +Orazca Frillback:1244 +Dead Man’s Chest:1233 +River Darter:1233 +Naturalize:1224 +Cleansing Ray:1203 +Highland Lake:1199 +Strider Harness:1198 +Negate:1195 +Stone Quarry:1192 +Dark Inquiry:1187 +Release to the Wind:1165 +Plummet:1160 +Foul Orchard:1146 +Orazca Relic:1123 +Flood of Recollection:1121 +Canal Monitor:1094 +Blazing Hope:1069 +Brass’s Bounty:1064 +Sworn Guardian:1060 +Blood Sun:1059 +Gruesome Fate:1036 +Awakened Amalgam:1017 +Induced Amnesia:1003 +Silent Gravestone:968 +Sphinx’s Decree:961 +Shatter:907 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv new file mode 100644 index 00000000000..172ed6537e2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv @@ -0,0 +1,19 @@ +# this file specifies which sets have set files. +# each line must be exactly the 3 letter expansion code. this corresponds to a csv resource file in the same directory +# The .csv files have a strict format: +# each line must be: +# cardname : integer rating +# each set's ratings are post-processed to have a normalized score [1..100], so the files don't need to have the same rating system. +# I created the first few files with draftaholicsanonymous but you can use any integer rating system you want +grn +m19 +dom +rix +xln +hou +akh +aer +kld +mm3 +ima +m13 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/xln.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/xln.csv new file mode 100644 index 00000000000..3e92060d88e --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/xln.csv @@ -0,0 +1,259 @@ +Vraska, Relic Seeker:2381 +Hostage Taker:2336 +Carnage Tyrant:2332 +Regisaur Alpha:2276 +Ripjaw Raptor:2228 +Captivating Crew:2225 +Vraska’s Contempt:2214 +Vona, Butcher of Magan:2192 +Huatli, Warrior Poet:2173 +Repeating Barrage:2144 +Charging Monstrosaur:2133 +Lightning Strike:2122 +Walk the Plank:2096 +Ixalan’s Binding:2083 +Burning Sun’s Avatar:2068 +Mavren Fein, Dusk Apostle:2061 +Settle the Wreckage:2057 +Waker of the Wilds:2033 +Kinjalli’s Sunwing:2032 +Sanctum Seeker:2003 +Rampaging Ferocidon:2000 +Legion’s Landing:1999 +Territorial Hammerskull:1990 +Dreamcaller Siren:1983 +Bishop of Rebirth:1975 +Vanquish the Weak:1969 +River’s Rebuke:1967 +Fathom Fleet Captain:1950 +Imperial Aerosaur:1939 +Drover of the Mighty:1932 +Deathgorge Scavenger:1917 +Snapping Sailback:1916 +Shapers of Nature:1913 +Entrancing Melody:1911 +Contract Killing:1910 +Adanto Vanguard:1901 +Air Elemental:1901 +Dire Fleet Ravager:1889 +Merfolk Branchwalker:1889 +Jace, Cunning Castaway:1881 +Savage Stomp:1878 +Kitesail Freebooter:1877 +Raging Swordtooth:1858 +Ruin Raider:1856 +Vance’s Blasting Cannons:1854 +Unfriendly Fire:1844 +Captain Lannery Storm:1843 +Pious Interdiction:1842 +Firecannon Blast:1837 +Ranging Raptors:1835 +Treasure Map:1832 +Sky Terror:1824 +Vanquisher’s Banner:1823 +Watertrap Weaver:1811 +Pirate’s Cutlass:1806 +Emperor’s Vanguard:1805 +Storm Fleet Aerialist:1805 +Tempest Caller:1798 +Daring Saboteur:1795 +Search for Azcanta:1794 +Rowdy Crew:1793 +Seekers’ Squire:1777 +Skulduggery:1773 +Glorifier of Dusk:1757 +Siren Lookout:1757 +One With the Wind:1754 +Admiral Beckett Brass:1752 +Bishop of the Bloodstained:1752 +Wanted Scoundrels:1750 +Pounce:1748 +Jade Guardian:1740 +Vineshaper Mystic:1740 +Skymarch Bloodletter:1739 +Gishath, Sun’s Avatar:1733 +Call to the Feast:1730 +Paladin of the Bloodstained:1729 +Emissary of Sunrise:1725 +Otepec Huntmaster:1719 +Thundering Spineback:1710 +Tishana’s Wayfinder:1707 +Fiery Cannonade:1697 +Verdant Sun’s Avatar:1692 +Dark Nourishment:1682 +Deadeye Tracker:1679 +Siren Stormtamer:1679 +Chart a Course:1674 +Dire Fleet Captain:1673 +Inspiring Cleric:1671 +Bishop’s Soldier:1669 +Deathless Ancient:1669 +Deeproot Warrior:1669 +Tilonalli’s Knight:1669 +Deadeye Plunderers:1664 +Conqueror’s Galleon:1657 +Bright Reprisal:1654 +Shining Aerosaur:1654 +Raptor Hatchling:1653 +Wakening Sun’s Avatar:1651 +Fell Flagship:1649 +Herald of Secret Streams:1645 +Headstrong Brute:1643 +Fathom Fleet Firebrand:1641 +Colossal Dreadmaw:1637 +Vicious Conquistador:1636 +Bloodcrazed Paladin:1635 +Bellowing Aegisaur:1629 +Tishana, Voice of Thunder:1628 +Kopala, Warden of Waves:1626 +New Horizons:1624 +Deadeye Tormentor:1621 +Marauding Looter:1621 +Kumena’s Speaker:1619 +Vampire’s Zeal:1618 +Duskborne Skymarcher:1616 +Ixalli’s Diviner:1616 +Ravenous Daggertooth:1615 +Angrath’s Marauders:1613 +Perilous Voyage:1613 +Slash of Talons:1613 +Shaper Apprentice:1612 +Wildgrowth Walker:1609 +Storm Fleet Spy:1607 +Sailor of Means:1605 +Bonded Horncrest:1600 +Grazing Whiptail:1597 +Thaumatic Compass:1596 +Thrash of Raptors:1594 +Legion’s Judgment:1591 +Queen’s Commission:1590 +Deeproot Champion:1587 +Steadfast Armasaur:1581 +River Heralds’ Boon:1579 +Rigging Runner:1575 +Goring Ceratops:1572 +Skittering Heartstopper:1572 +Storm Fleet Arsonist:1571 +Dire Fleet Hoarder:1569 +Commune with Dinosaurs:1566 +Atzocan Archer:1562 +River Sneak:1562 +Skyblade of the Legion:1560 +Run Aground:1558 +Anointed Deacon:1557 +Pterodon Knight:1557 +Mark of the Vampire:1555 +Fathom Fleet Cutthroat:1552 +Prosperous Pirates:1549 +Shipwreck Looter:1546 +Arguel’s Blood Fast:1536 +Wind Strider:1535 +Legion Conquistador:1533 +Depths of Desire:1531 +Ruthless Knave:1531 +Sunbird’s Invocation:1531 +Growing Rites of Itlimoc:1525 +Lookout’s Dispersal:1525 +Lightning-Rig Crew:1517 +Sure Strike:1517 +Boneyard Parley:1515 +Dusk Legion Dreadnought:1515 +Priest of the Wakening Sun:1514 +Brazen Buccaneers:1513 +Star of Extinction:1513 +Raptor Companion:1511 +Rallying Roar:1505 +Heartless Pillage:1501 +Sleek Schooner:1500 +Fleet Swallower:1498 +Ixalli’s Keeper:1497 +Dive Down:1496 +Sheltering Light:1492 +Sun-Crowned Hunters:1483 +Cobbled Wings:1474 +Dire Fleet Interloper:1473 +Lurking Chupacabra:1465 +Storm Fleet Pyromancer:1463 +Dowsing Dagger:1456 +Shadowed Caravel:1455 +Spike-Tailed Ceratops:1455 +Kinjalli’s Caller:1454 +Deeproot Waters:1452 +Rootbound Crag:1451 +Verdant Rebirth:1451 +Storm Sculptor:1448 +Frenzied Raptor:1446 +Opt:1440 +Jungle Delver:1438 +Sword-Point Diplomacy:1438 +Nest Robber:1436 +Tilonalli’s Skinshifter:1434 +Siren’s Ruse:1433 +Crushing Canopy:1431 +Dinosaur Stampede:1429 +Overflowing Insight:1425 +Swashbuckling:1418 +Crash the Ramparts:1413 +Sunpetal Grove:1412 +Favorable Winds:1406 +Shapers’ Sanctuary:1406 +Queen’s Bay Soldier:1405 +Deadeye Quartermaster:1401 +Queen’s Agent:1397 +Dual Shot:1396 +Pirate’s Prize:1394 +March of the Drowned:1387 +Blossom Dryad:1385 +Drowned Catacomb:1383 +Tocatli Honor Guard:1373 +Dragonskull Summit:1372 +Raiders’ Wake:1371 +Spell Swindle:1368 +Sunrise Seeker:1361 +Desperate Castaways:1342 +Prying Blade:1338 +Sorcerous Spyglass:1334 +Blight Keeper:1330 +Costly Plunder:1310 +Primal Amulet:1306 +Unclaimed Territory:1306 +Fire Shrine Keeper:1301 +Imperial Lancer:1297 +Belligerent Brontodon:1296 +Emergent Growth:1293 +Wily Goblin:1293 +Cancel:1287 +Duress:1286 +Old-Growth Dryads:1282 +Navigator’s Ruin:1273 +Glacial Fortress:1262 +Trove of Temptation:1259 +Pillar of Origins:1252 +Hijack:1236 +Rile:1234 +Revel in Riches:1232 +Headwater Sentries:1225 +Grim Captain’s Call:1214 +Elaborate Firecannon:1209 +Looming Altisaur:1206 +Encampment Keeper:1199 +Slice in Twain:1198 +Spell Pierce:1186 +Makeshift Munitions:1183 +Rummaging Goblin:1182 +Axis of Mortality:1179 +Unknown Shores:1173 +Shore Keeper:1172 +Ancient Brontodon:1165 +Sanguine Sacrament:1162 +Arcane Adaptation:1151 +Ashes of the Abhorrent:1135 +Ritual of Rejuvenation:1102 +Field of Ruin:1097 +Hierophant’s Chalice:1077 +Gilded Sentinel:1035 +Blinding Fog:1033 +Demystify:1023 +Sentinel Totem:998 +Demolish:994 +Spreading Rot:935 \ No newline at end of file