From 505a4b00a79971ced2c310173d05784d1a3900c4 Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 12:10:00 -0700 Subject: [PATCH 1/6] 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 From 6f93abfd5ad7f4dd3630f2eab093cb62ddd546f5 Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 14:23:53 -0700 Subject: [PATCH 2/6] ai ratings revamp code review changes * when resources are missing, fails gracefully * uses highest found rating, rather than most recently found for the case of sets containing duplicates * moved ratings files to their own directory * thread safe reading of all files --- .../java/mage/player/ai/utils/RateCard.java | 56 +- .../src/main/resources/ratings.txt | 1214 ----------------- .../src/main/resources/{ => ratings}/aer.csv | 0 .../src/main/resources/{ => ratings}/akh.csv | 0 .../src/main/resources/{ => ratings}/dom.csv | 0 .../src/main/resources/{ => ratings}/grn.csv | 0 .../src/main/resources/{ => ratings}/hou.csv | 0 .../src/main/resources/{ => ratings}/ima.csv | 0 .../src/main/resources/{ => ratings}/kld.csv | 0 .../src/main/resources/{ => ratings}/m13.csv | 0 .../src/main/resources/{ => ratings}/m19.csv | 0 .../src/main/resources/{ => ratings}/mm3.csv | 0 .../src/main/resources/{ => ratings}/rix.csv | 0 .../{ => ratings}/setsWithRatings.csv | 3 +- .../src/main/resources/{ => ratings}/xln.csv | 0 15 files changed, 41 insertions(+), 1232 deletions(-) delete mode 100644 Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings.txt rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/aer.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/akh.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/dom.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/grn.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/hou.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/ima.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/kld.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/m13.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/m19.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/mm3.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/rix.csv (100%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/setsWithRatings.csv (98%) rename Mage.Server.Plugins/Mage.Player.AI/src/main/resources/{ => ratings}/xln.csv (100%) 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 4d488be4c98..b31894e48ca 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 @@ -49,6 +49,9 @@ public final class RateCard { 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 String RATINGS_DIR = "/ratings/"; + private static String RATINGS_SET_LIST = RATINGS_DIR + "setsWithRatings.csv"; private static final Logger log = Logger.getLogger(RateCard.class); @@ -163,17 +166,7 @@ public final class RateCard { * @return Rating number from [1:100]. */ public static int getCardRating(Card card) { - 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); - } - } - } + readRatingSetList(); String exp = card.getExpansionSetCode().toLowerCase(); readRatings(exp); @@ -193,22 +186,47 @@ public final class RateCard { } return DEFAULT_NOT_RATED_CARD_RATING; } + + /** + * reads the list of sets that have ratings csv files + * populates the setsWithRatingsToBeLoaded + */ + private synchronized static void readRatingSetList(){ + try { + if (setsWithRatingsToBeLoaded == null){ + setsWithRatingsToBeLoaded = new LinkedList<>(); + InputStream is = RateCard.class.getResourceAsStream(RATINGS_SET_LIST); + Scanner scanner = new Scanner(is); + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + if (!line.substring(0,1).equals("#")){ + setsWithRatingsToBeLoaded.add(line); + } + } + } + }catch (Exception e) { + log.info("failed to read ratings set list file: " + RATINGS_SET_LIST ); + e.printStackTrace(); + } + } /** - * Reads ratings from resources. + * Reads ratings from resources and loads them into ratings map */ private synchronized static void readRatings(String expCode) { if (ratings == null) { ratings = new HashMap<>(); } if (setsWithRatingsToBeLoaded.contains(expCode)){ - System.out.println("reading draftbot ratings for the set" + expCode); - readFromFile("/" + expCode + ".csv"); + log.info("reading draftbot ratings for the set" + expCode); + readFromFile(RATINGS_DIR + expCode + ".csv"); setsWithRatingsToBeLoaded.remove(expCode); } } - - private static void readFromFile(String path) { + /** + * reads ratings from the file + */ + private synchronized static void readFromFile(String path) { Integer min = Integer.MAX_VALUE, max = 0; Map thisFileRatings = new HashMap<>(); try { @@ -233,9 +251,13 @@ public final class RateCard { for (String name: thisFileRatings.keySet()){ int r = thisFileRatings.get(name); int newrating = (int)(100.0f * (r - min) / (max - min)); - ratings.put(name, newrating); + if (!ratings.containsKey(name) || + (ratings.containsKey(name) && newrating > ratings.get(name)) ){ + ratings.put(name, newrating); + } } } catch (Exception e) { + log.info("failed to read ratings file: " + path ); e.printStackTrace(); } } diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings.txt b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings.txt deleted file mode 100644 index 6ccb175ffb4..00000000000 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings.txt +++ /dev/null @@ -1,1214 +0,0 @@ -1569 : Day of Judgment -1548 : Garruk Wildspeaker -1547 : Sword of Vengeance -1544 : Baneslayer Angel -1533 : Kargan Dragonlord -1526 : Frost Titan -1523 : Wurmcoil Engine -1522 : Ob Nixilis, the Fallen -1520 : Chandra Nalaar -1516 : Gideon Jura -1516 : Primeval Titan -1513 : Ajani Goldmane -1512 : Basilisk Collar -1511 : Vampire Nighthawk -1511 : Skithiryx, the Blight Dragon -1509 : Serra Angel -1508 : Koth of the Hammer -1507 : Jace, the Mind Sculptor -1507 : Avenger of Zendikar -1506 : Vengevine -1505 : Nissa Revane -1502 : Student of Warfare -1501 : Jace Beleren -1500 : Iona, Shield of Emeria -1500 : Glimmerpost -1500 : Transcendent Master -1500 : Guul Draz Assassin -1500 : Kozilek, Butcher of Truth -1500 : Omnath, Locus of Mana -1500 : Abyssal Persecutor -1500 : Dragonmaster Outcast -1500 : Kazuul, Tyrant of the Cliffs -1500 : Anowon, the Ruin Sage -1500 : Platinum Angel -1499 : Eldrazi Conscription -1499 : Drana, Kalastria Bloodchief -1499 : Conquering Manticore -1498 : Mul Daya Channelers -1498 : Lord of Shatterskull Pass -1498 : Admonition Angel -1498 : Archon of Redemption -1498 : Inferno Titan -1497 : Sorin Markov -1497 : Sword of Body and Mind -1496 : Terra Stomper -1496 : Carnifex Demon -1496 : Deathless Angel -1495 : Linvala, Keeper of Silence -1492 : Bloodghast -1492 : Steel Hellkite -1491 : Obsidian Fireheart -1489 : Guul Draz Specter -1489 : Kazandu Tuskcaller -1488 : Emrakul, the Aeons Torn -1488 : Coralhelm Commander -1488 : Wrexial, the Risen Deep -1487 : Nirkana Revenant -1486 : Scalding Tarn -1486 : Sphinx of Jwar Isle -1486 : Khalni Hydra -1485 : Felidar Sovereign -1485 : Halo Hunter -1485 : Sarkhan the Mad -1485 : Consume the Meek -1484 : Rampaging Baloths -1484 : Gigantiform -1483 : Consuming Vapors -1482 : It That Betrays -1481 : Eldrazi Monument -1481 : All Is Dust -1480 : Kalitas, Bloodchief of Ghet -1480 : Mimic Vat -1480 : Pestilence Demon -1480 : Stirring Wildwood -1480 : Mind Control -1479 : Comet Storm -1477 : Creeping Tar Pit -1476 : Harabaz Druid -1475 : Geth, Lord of the Vault -1475 : Pelakka Wurm -1473 : Lorthos, the Tidemaker -1473 : Elspeth Tirel -1473 : Grave Titan -1472 : Celestial Colonnade -1471 : Bear Umbra -1471 : Triskelion -1469 : Turntimber Ranger -1468 : Terastodon -1466 : Kazuul Warlord -1465 : Sphinx of Magosi -1464 : Luminarch Ascension -1464 : Lighthouse Chronologist -1464 : Stone Idol Trap -1464 : Chain Reaction -1463 : Sunblast Angel -1463 : Spawnsire of Ulamog -1463 : Royal Assassin -1462 : Misty Rainforest -1461 : Jwari Shapeshifter -1460 : Hellcarver Demon -1459 : Hellkite Charger -1459 : Rite of Replication -1458 : Eternity Vessel -1458 : Bala Ged Thief -1458 : Kalastria Highborn -1458 : Fireball -1456 : Precursor Golem -1456 : Venser, the Sojourner -1456 : Joraga Treespeaker -1456 : Wolfbriar Elemental -1456 : Mitotic Slime -1455 : Journey to Nowhere -1454 : Strata Scythe -1452 : Awakening Zone -1452 : Magmaw -1452 : Gaea's Revenge -1449 : Ezuri's Brigade -1448 : Strength of the Tajuru -1448 : Nantuko Shade -1446 : Ratchet Bomb -1445 : Sun Titan -1444 : Hand of the Praetors -1443 : Lotus Cobra -1441 : Nim Deathmantle -1440 : Arid Mesa -1439 : Scute Mob -1439 : Mystifying Maze -1437 : Argentum Armor -1436 : Chimeric Mass -1434 : Magma Phoenix -1433 : Chandra Ablaze -1433 : Scars of Mirrodin -1433 : Rise of the Eldrazi -1433 : Brittle Effigy -1432 : Blade of the Bloodchief -1432 : Oracle of Mul Daya -1432 : Kuldotha Phoenix -1432 : Mordant Dragon -1431 : Myr Battlesphere -1431 : Skinrender -1431 : Argent Sphinx -1431 : Talus Paladin -1430 : Vengeful Archon -1428 : Cunning Sparkmage -1426 : Celestial Mantle -1425 : Roil Elemental -1425 : Malakir Bloodwitch -1425 : Contagion Clasp -1424 : Trusty Machete -1424 : Sea Gate Loremaster -1424 : World Queller -1423 : Burst Lightning -1423 : Agadeem Occultist -1422 : Raging Ravine -1422 : Fauna Shaman -1421 : Valakut, the Molten Pinnacle -1421 : Seer's Sundial -1420 : Butcher of Malakir -1415 : Novablast Wurm -1414 : Liliana Vess -1413 : Marsh Flats -1412 : Obstinate Baloth -1412 : Condemn -1409 : Emeria Angel -1408 : Sphinx of Lost Truths -1408 : Goliath Sphinx -1407 : Kazandu Blademaster -1407 : Verdant Catacombs -1406 : Grasp of Darkness -1406 : Marshal's Anthem -1404 : Platinum Emperion -1404 : Doom Blade -1404 : Lightning Bolt -1403 : Grappling Hook -1403 : Ulamog, the Infinite Gyre -1402 : Conundrum Sphinx -1400 : Momentous Fall -1400 : Protean Hydra -1399 : Ancient Hellkite -1398 : Flame Slash -1396 : Kabira Evangel -1396 : Pacifism -1395 : Gelatinous Genesis -1394 : Arc Trail -1393 : Joraga Warcaller -1392 : Lavaclaw Reaches -1392 : Lodestone Golem -1390 : Liege of the Tangle -1389 : Grand Architect -1386 : Trigon of Corruption -1386 : Angelic Arbiter -1383 : True Conviction -1383 : Mox Opal -1383 : Spikeshot Elder -1380 : Devout Lightcaster -1379 : Gatekeeper of Malakir -1378 : Gigantomancer -1377 : Shepherd of the Lost -1375 : Bloodchief Ascension -1375 : Darksteel Axe -1375 : Livewire Lash -1372 : Hoarding Dragon -1368 : Darksteel Juggernaut -1367 : Conqueror's Pledge -1367 : Arrest -1367 : Pyroclasm -1364 : Galvanic Blast -1363 : Lux Cannon -1362 : Echo Mage -1361 : Quicksilver Gargantuan -1360 : Razor Hippogriff -1360 : Volition Reins -1360 : Rage Nimbus -1360 : Tuktuk the Explorer -1357 : Putrefax -1353 : Prototype Portal -1353 : Disaster Radius -1353 : Prodigal Pyromancer -1352 : Staggershock -1352 : Brimstone Mage -1351 : Punishing Fire -1348 : Rapacious One -1346 : Golem Artisan -1345 : Air Servant -1343 : Goblin Guide -1342 : Overwhelming Stampede -1342 : Cudgel Troll -1336 : Emeria, the Sky Ruin -1335 : Stoneforge Mystic -1334 : Engulfing Slagwurm -1333 : Kemba, Kha Regent -1332 : Etched Champion -1324 : Beastmaster Ascension -1324 : Warren Instigator -1315 : Plated Geopede -1315 : Kabira Vindicator -1315 : Chandra's Outrage -1313 : Oxidda Scrapmelter -1312 : Hideous End -1312 : Hedron Matrix -1312 : Blinding Mage -1311 : Slice in Twain -1311 : Knight Exemplar -1309 : Reassembling Skeleton -1308 : Embersmith -1308 : Hellion Eruption -1305 : Dispense Justice -1304 : Turn to Slag -1304 : Boar Umbra -1302 : Ulamog's Crusher -1299 : Artisan of Kozilek -1297 : Hada Freeblade -1296 : Eye of Ugin -1296 : Death's Shadow -1295 : Marsh Casualties -1295 : Kor Skyfisher -1294 : Summoning Trap -1293 : Smother -1292 : Howling Banshee -1290 : Domestication -1290 : Urge to Feed -1289 : Lightkeeper of Emeria -1287 : Demon of Death's Gate -1286 : Sylvok Replica -1286 : Vendetta -1284 : Broodwarden -1282 : Shatter -1281 : Asceticism -1280 : Assassinate -1279 : Cyclops Gladiator -1276 : Nomads' Assembly -1276 : Knight of Cliffhaven -1275 : Bestial Menace -1272 : Myrsmith -1272 : Necrotic Ooze -1272 : Aether Adept -1270 : Living Tsunami -1267 : Beastbreaker of Bala Ged -1264 : Adventuring Gear -1264 : Revoke Existence -1263 : Vampire Hexmage -1262 : Heavy Arbalest -1261 : Pathrazer of Ulamog -1260 : Disfigure -1258 : Forked Bolt -1258 : Stormfront Pegasus -1256 : Birds of Paradise -1253 : Nirkana Cutthroat -1253 : Voyager Drake -1251 : Heat Ray -1250 : Rust Tick -1250 : Crystal Ball -1248 : Windrider Eel -1245 : Acid Web Spider -1243 : Enclave Cryptologist -1238 : Myr Propagator -1238 : Kozilek's Predator -1237 : Vapor Snare -1236 : Steppe Lynx -1236 : Tempered Steel -1235 : Terminate -1234 : Palladium Myr -1234 : Tomb Hex -1234 : Garruk's Packleader -1233 : Electropotence -1231 : Black Knight -1230 : Narcolepsy -1229 : Acidic Slime -1226 : Oblivion Ring -1223 : Cystbearer -1221 : Rusted Relic -1221 : Azure Drake -1220 : Venerated Teacher -1220 : Splinter Twin -1220 : Searing Blaze -1219 : Tideforce Elemental -1218 : Trinket Mage -1218 : Whispersilk Cloak -1216 : Hada Spy Patrol -1216 : Jace's Ingenuity -1215 : Kor Aeronaut -1214 : Cerebral Eruption -1214 : Nest Invader -1214 : Water Servant -1213 : World at War -1212 : Bladetusk Boar -1211 : Traitorous Instinct -1210 : Plague Stinger -1210 : Ondu Giant -1210 : Cloud Crusader -1209 : Honor of the Pure -1207 : Barrage Ogre -1207 : Wall of Omens -1207 : Path to Exile -1206 : Umara Raptor -1206 : Mana Leak -1205 : Overgrown Battlement -1205 : Caustic Crawler -1205 : Behemoth Sledge -1203 : Growth Spasm -1202 : Bellowing Tanglewurm -1200 : Flesh Allergy -1199 : Cloud Elemental -1198 : Darkslick Drake -1198 : Quag Sickness -1197 : Myr Galvanizer -1195 : Barbed Battlegear -1195 : Assault Griffin -1193 : Foresee -1192 : Induce Despair -1192 : Greater Basilisk -1191 : Bloodhusk Ritualist -1189 : Leatherback Baloth -1188 : Kor Spiritdancer -1188 : Rise from the Grave -1187 : Kor Hookmaster -1187 : Sleep -1185 : Grafted Exoskeleton -1185 : Skywatcher Adept -1183 : Glimmerpoint Stag -1182 : Kuldotha Forgemaster -1182 : Mortician Beetle -1181 : Eldrazi Temple -1180 : Harrow -1178 : Ezuri, Renegade Leader -1175 : Hammer of Ruin -1172 : Contagious Nim -1169 : Cultivate -1168 : Mindbreak Trap -1168 : Pitfall Trap -1168 : Inferno Trap -1167 : Turntimber Basilisk -1167 : Ember Hauler -1166 : Martial Coup -1164 : Perilous Myr -1163 : Iona's Judgment -1163 : Child of Night -1161 : Painsmith -1161 : Ogre's Cleaver -1161 : Finest Hour -1160 : Myr Reservoir -1160 : Duskdale Wurm -1160 : Elspeth, Knight-Errant -1159 : Garruk's Companion -1158 : Horizon Drake -1157 : Emrakul's Hatcher -1157 : Jagwasp Swarm -1156 : Thought Gorger -1156 : Guard Gomazoa -1156 : Last Kiss -1155 : Thada Adel, Acquisitor -1154 : Quest for the Gravelord -1154 : Destructive Force -1154 : Armored Ascension -1153 : Trigon of Rage -1153 : Join the Ranks -1153 : Sylvan Ranger -1152 : Merfolk Seastalkers -1152 : Merfolk Skyscout -1152 : Kor Firewalker -1151 : Elvish Archdruid -1149 : Sadistic Sacrament -1149 : Glint Hawk -1148 : Predatory Urge -1148 : Liliana's Specter -1148 : Woolly Thoctar -1147 : Stonework Puma -1146 : Archive Trap -1146 : Wild Griffin -1146 : Llanowar Elves -1145 : Necrogen Scudder -1144 : Armament Master -1143 : Keening Stone -1141 : Blazing Torch -1141 : Dawnglare Invoker -1140 : Torch Slinger -1140 : Geyser Glider -1140 : Fire Servant -1138 : Heartstabber Mosquito -1138 : Caravan Escort -1138 : Wildheart Invoker -1137 : Welkin Tern -1137 : Squadron Hawk -1137 : Maelstrom Pulse -1136 : Throne of Geth -1136 : Bloodbraid Elf -1135 : Glint Hawk Idol -1135 : Trigon of Infestation -1135 : Clone -1135 : Putrid Leech -1134 : Giant Scorpion -1134 : Ajani Vengeant -1133 : Grazing Gladehart -1132 : Cosi's Trickster -1131 : Juggernaut -1130 : Hedron Crab -1130 : Into the Roil -1130 : Ichor Rats -1130 : Ogre Geargrabber -1129 : Lightning Helix -1128 : Oust -1127 : Act of Treason -1126 : Arrow Volley Trap -1126 : Vedalken Certarch -1126 : Deathforge Shaman -1126 : Bituminous Blast -1125 : Training Grounds -1124 : Mark of Mutiny -1124 : Knight of the White Orchid -1123 : Tumble Magnet -1121 : Lumengrid Drake -1121 : Necropede -1121 : Yavimaya Wurm -1120 : Noble Hierarch -1119 : River Boa -1119 : Scrapdiver Serpent -1119 : Renegade Doppelganger -1119 : Tajuru Preserver -1119 : White Knight -1119 : Vengeful Rebirth -1118 : Mindslaver -1118 : Genesis Wave -1118 : Frostwind Invoker -1118 : Ranger of Eos -1118 : Sarkhan Vol -1117 : Corrupt -1117 : Chandra's Spitfire -1116 : Bonds of Quicksilver -1115 : Surrakar Marauder -1114 : Explorer's Scope -1114 : Ice Cage -1114 : Steel Overseer -1114 : Earthquake -1113 : Vines of Vastwood -1113 : Strider Harness -1113 : Snapping Drake -1112 : Drake Umbra -1112 : Warlord's Axe -1111 : Sphinx of the Steel Wind -1110 : Hand of Emrakul -1109 : Aether Figment -1109 : Hagra Diabolist -1109 : Murasa Pyromancer -1107 : Apex Hawks -1107 : Dead Reckoning -1104 : Guul Draz Vampire -1104 : Overrun -1104 : Battlegrace Angel -1103 : Elvish Visionary -1102 : Goblin Ruinblaster -1102 : Smite -1099 : Graypelt Hunter -1099 : Rhox War Monk -1099 : Stun Sniper -1098 : Khalni Heart Expedition -1098 : Aven Squire -1097 : Greenweaver Druid -1097 : Broodmate Dragon -1096 : Goblin Bushwhacker -1096 : Riddlesmith -1096 : Steady Progress -1096 : Blight Mamba -1096 : Pawn of Ulamog -1094 : Spined Wurm -1094 : Glacial Fortress -1094 : Master of the Wild Hunt -1091 : Blood Seeker -1091 : Carapace Forger -1090 : Highland Berserker -1090 : Phylactery Lich -1089 : Skeletal Wurm -1089 : Refraction Trap -1089 : Tattered Drake -1087 : Tainted Strike -1087 : Lorescale Coatl -1087 : Sprouting Thrinax -1086 : Arbor Elf -1085 : Frontier Guide -1085 : Sign in Blood -1084 : Mammoth Umbra -1084 : Rakka Mar -1083 : Air Elemental -1082 : Madrush Cyclops -1080 : Preordain -1080 : Ant Queen -1080 : Fiery Fall -1078 : Ichorclaw Myr -1076 : Gomazoa -1076 : Horizon Spellbomb -1076 : War Priest of Thune -1076 : Scroll Thief -1075 : Might of Oaks -1074 : Hellfire Mongrel -1074 : Kor Cartographer -1074 : Kor Sanctifiers -1074 : Champion's Drake -1074 : Darklit Gargoyle -1074 : Knight of the Reliquary -1073 : Fledgling Griffin -1072 : Goblin Shortcutter -1072 : Infiltration Lens -1072 : Indomitable Archangel -1071 : Bogardan Hellkite -1071 : Kathari Remnant -1070 : See Beyond -1070 : Ethersworn Adjudicator -1069 : Deny Reality -1069 : Vampire Aristocrat -1069 : Ethercaste Knight -1068 : Bladed Pinions -1068 : Kemba's Skyguard -1068 : AEther Figment -1067 : Tajuru Archer -1067 : Tuktuk Grunts -1067 : Stoic Rebuttal -1067 : Auriok Edgewright -1067 : Great Sable Stag -1066 : Tangle Angler -1066 : Barony Vampire -1066 : Druid of the Anima -1065 : Court Archers -1064 : Mold Shambler -1064 : Feast of Blood -1064 : Ondu Cleric -1064 : Deadly Recluse -1064 : Thornling -1063 : Paralyzing Grasp -1063 : Aura Gnarlid -1062 : Zektar Shrine Expedition -1062 : Blood Tribute -1062 : Bleak Coven Vampires -1061 : Rafiq of the Many -1061 : Nulltread Gargantuan -1060 : Baloth Cage Trap -1060 : Loam Lion -1060 : Stormtide Leviathan -1060 : Ball Lightning -1059 : Spawning Breath -1059 : Shoreline Salvager -1059 : Jenara, Asura of War -1058 : Halt Order -1058 : Stabbing Pain -1056 : Courier's Capsule -1056 : Shock -1055 : Khalni Gem -1055 : Disperse -1055 : Sigiled Paladin -1054 : Timbermaw Larva -1054 : Puncturing Light -1054 : Canopy Cover -1053 : Windborne Charge -1053 : Lightmine Field -1053 : Reverberate -1052 : Crypt Ripper -1052 : Looming Shade -1051 : Spire Barrage -1051 : Cadaver Imp -1050 : Summoner's Bane -1050 : Perimeter Captain -1049 : Makindi Griffin -1048 : Lullmage Mentor -1048 : Primal Bellow -1048 : Surrakar Spellblade -1048 : Awakener Druid -1048 : Conquerors Pledge -1047 : Mind Sludge -1047 : Neurok Replica -1047 : Neurok Invisimancer -1047 : Trigon of Thought -1047 : Kitesail -1047 : Wild Nacatl -1046 : Reckless Scholar -1046 : Sky Ruin Drake -1046 : Grindclock -1046 : Explore -1045 : Nissa's Chosen -1045 : Flameborn Hellion -1045 : Ghalma's Warden -1045 : Berserkers of Blood Ridge -1045 : Goblin Outlander -1044 : Virulent Swipe -1044 : Time of Heroes -1044 : Nightwing Shade -1044 : Scarland Thrinax -1043 : Time Warp -1043 : Rhox Pikemaster -1042 : Zendikar -1042 : Lavaball Trap -1042 : Magma Rift -1042 : Snake Umbra -1042 : Giant Spider -1041 : Shatterskull Giant -1041 : Cliff Threader -1041 : Sea Gate Oracle -1041 : Nemesis Trap -1041 : Rootbound Crag -1040 : Auriok Sunchaser -1040 : Corpse Cur -1040 : Sacred Wolf -1040 : Beacon Behemoth -1040 : Hell's Thunder -1039 : Bloodhall Ooze -1039 : Winged Coatl -1038 : Regress -1038 : Tuktuk Scrapper -1038 : Ruthless Cullblade -1038 : Captivating Vampire -1038 : Mind Spring -1038 : Emerald Oryx -1038 : Steward of Valeron -1037 : Devastating Summons -1037 : Calcite Snapper -1037 : Blightning -1037 : Cloudheath Drake -1036 : Recurring Insight -1036 : Hellspark Elemental -1036 : Rhox Brute -1035 : Saberclaw Golem -1034 : Reality Spasm -1034 : Drowned Catacomb -1034 : Dragonskull Summit -1034 : Sigil of the Empty Throne -1033 : Tower of Calamities -1033 : Bojuka Brigand -1033 : Time Reversal -1032 : Bramblesnap -1032 : Groundswell -1032 : Treasure Hunt -1032 : Kathari Screecher -1031 : Vampire Lacerator -1031 : Daggerback Basilisk -1030 : Prey's Vengeance -1030 : Augury Owl -1030 : Fling -1029 : Blackcleave Goblin -1029 : Wall of Frost -1029 : Brave the Elements -1027 : Pyromancer Ascension -1027 : Grixis Slavedriver -1026 : Soulsurge Elemental -1026 : Putrefy -1025 : Makindi Shieldmate -1025 : Abuna Acolyte -1024 : Alpha Tyrannax -1023 : Quest for the Gemblades -1023 : Wind Zendikon -1023 : Mist Leopard -1023 : Esper Cormorants -1022 : Expedition Map -1022 : Dread Drone -1022 : Everflowing Chalice -1022 : Prized Unicorn -1022 : Griffin Sentinel -1022 : Skyknight Legionnaire -1022 : Ardent Plea -1021 : Nightguard Patrol -1020 : Giant Growth -1020 : Dregscape Zombie -1019 : Nacatl Outlander -1019 : Molten-Tail Masticore -1017 : Repel the Darkness -1017 : Gravitational Shift -1017 : Bloodthrone Vampire -1016 : Whiplash Trap -1016 : Bloodshot Trainee -1016 : Guard Duty -1016 : Akoum Battlesinger -1016 : Sejiri Merfolk -1016 : Gravedigger -1015 : Hyena Umbra -1014 : Æther Figment -1013 : Umbra Mystic -1013 : Akoum Boulderfoot -1012 : Crypt of Agadeem -1012 : Mnemonic Wall -1012 : Plummet -1012 : Watchwolf -1011 : Vastwood Gorger -1011 : Moriok Replica -1011 : Sky-Eel School -1011 : Zombie Outlander -1011 : Incurable Ogre -1010 : Emerge Unscathed -1010 : Runeclaw Bear -1010 : Vectis Silencers -1009 : Kor Duelist -1009 : Wall of Denial -1008 : Inexorable Tide -1007 : Chrome Steed -1007 : Survival Cache -1007 : Pilgrim's Eye -1006 : Jaddi Lifestrider -1006 : Vastwood Animist -1006 : Sigil of Distinction -1006 : Yoked Plowbeast -1005 : Sighted-Caste Sorcerer -1004 : Bala Ged Scorpion -1004 : Halimar Excavator -1004 : Sunpetal Grove -1004 : Stone Golem -1003 : Jwar Isle Refuge -1003 : Vectis Agents -1003 : Gold Myr -1002 : Mysteries of the Deep -1002 : Negate -1002 : Pestilent Kathari -1001 : Halimar Depths -1001 : Glass Golem -1000 : Lust for War -1000 : Realms Uncharted -1000 : Affa Guard Hound -1000 : Roc Egg -999 : Ajani's Pridemate -998 : Aether Tradewinds -998 : Weakness -997 : Eel Umbra -997 : Drudge Skeletons -995 : Vulshok Replica -995 : Ferrovore -995 : Molten Frame -995 : Jungle Weaver -994 : Akoum Refuge -994 : Wind Drake -993 : AEther Adept -992 : Cobra Trap -992 : Summit Apes -992 : Cylian Elf -992 : Talon Trooper -991 : Colossal Might -990 : Vulshok Heartstoker -990 : Warmonger's Chariot -990 : Silvercoat Lion -989 : Sunspear Shikari -988 : Slavering Nulls -986 : Spidersilk Net -986 : Unstable Footing -986 : Razorfield Thresher -986 : Gnarlid Pack -986 : Votary of the Conclave -986 : Zephyr Sprite -985 : Grappler Spider -985 : Grayscaled Gharial -984 : Snapsail Glider -984 : Goblin Chieftain -983 : Soul's Majesty -983 : Hellkite Overlord -982 : Diabolic Tutor -982 : Soul Warden -982 : Akrasan Squire -982 : Wildfield Borderpost -981 : Graypelt Refuge -980 : Sejiri Refuge -980 : Instill Infection -980 : Spider Umbra -980 : Celestial Purge -980 : Bone Saw -980 : Dispeller's Capsule -979 : Teetering Peaks -979 : Soliton -979 : Scepter of Insight -978 : Kazandu Refuge -978 : Valakut Fireboar -978 : Warpath Ghoul -977 : Filigree Angel -977 : Fume Spitter -976 : Inquisition of Kozilek -975 : Traumatize -975 : Tukatongue Thallid -975 : Aerie Mystics -974 : Savage Silhouette -974 : Kiln Fiend -973 : Rhox Bodyguard -972 : Vulshok Berserker -972 : Obelisk of Jund -971 : Marsh Threader -970 : Vampire's Bite -970 : Narrow Escape -970 : Wrap in Flames -970 : Diminish -970 : Cavern Thoctar -970 : Filigree Sages -969 : Stomper Cub -969 : Bazaar Trader -969 : Manic Vandal -969 : Scepter of Dominance -968 : Lavafume Invoker -968 : Font of Mythos -968 : Outrider of Jhess -968 : Undead Leotau -967 : Moriok Reaver -967 : Sporecap Spider -967 : Spell Contortion -967 : Arc Runner -967 : Firewild Borderpost -967 : Jhessian Lookout -966 : Brindle Boar -965 : Serra Ascendant -965 : Veinfire Borderpost -964 : Magosi, the Waterveil -964 : Deprive -964 : Lava Axe -962 : Thrummingbird -962 : Ezuri's Archers -962 : Copper Myr -962 : Lone Missionary -962 : Quest for Renewal -962 : Permafrost Trap -962 : Dimir Signet -962 : Etherium Abomination -962 : Glory of Warfare -961 : Hagra Crocodile -961 : Iron Myr -961 : Ikiral Outrider -961 : Null Champion -961 : Dreg Reaver -961 : Valeron Outlander -960 : Might of the Masses -960 : Golgari Signet -959 : Carrion Call -959 : Salvage Scout -958 : Ior Ruin Expedition -958 : Horned Turtle -957 : Molder Beast -957 : Halimar Wavewatch -956 : Molten Ravager -956 : Origin Spellbomb -956 : Goblin Roughrider -956 : Shiv's Embrace -955 : Alpha Tyrranax -954 : Vent Sentinel -954 : Gloomhunter -954 : Rampant Growth -953 : Kor Outfitter -953 : Needlebite Trap -953 : Wing Puncture -953 : Amulet of Vigor -952 : Obelisk of Naya -951 : Lifesmith -951 : Kranioceros -950 : Grim Discovery -950 : Kelinore Bat -950 : Quenchable Fire -949 : Slaughter Cry -949 : Merfolk Sovereign -948 : Seascape Aerialist -948 : Bant Battlemage -948 : Mistvein Borderpost -946 : Wall of Tanglecord -946 : Brood Birthing -946 : Guardians of Akrasa -945 : Joraga Bard -945 : Hedron Rover -944 : Goblin War Paint -944 : Exsanguinate -943 : Slingbow Trap -942 : Gloryscale Viashino -942 : Goblin Mountaineer -941 : Escaped Null -941 : Inspired Charge -941 : Terramorphic Expanse -941 : Temple Bell -941 : Excommunicate -941 : Onyx Goblet -940 : Culling Dais -940 : Elite Vanguard -939 : Kraken Hatchling -938 : Marble Chalice -937 : Quag Vampires -936 : Trailblazer's Boots -936 : Necrotic Plague -934 : Leyline of Vitality -933 : Wall of Bone -933 : Disorient -932 : Merfolk Wayfinder -932 : Withstand Death -931 : Distortion Strike -931 : Claws of Valakut -931 : Deathmark -930 : Soulbound Guardians -930 : Valiant Guard -930 : Spellbreaker Behemoth -930 : Vedalken Outlander -929 : Prophetic Prism -928 : Soul Stair Expedition -928 : Quest for Ula's Temple -926 : Cancel -926 : Ruinous Minotaur -926 : Psychic Miasma -924 : Skitter of Lizards -923 : Soul Parry -923 : Quest for the Nihil Stone -922 : Sylvok Lifestaff -922 : Pennon Blade -921 : Tempest Owl -921 : Combust -920 : Archmage Ascension -920 : Hedron Scrabbler -920 : Lagac Lizard -920 : Enclave Elite -920 : Obelisk of Grixis -919 : Selesnya Signet -918 : Scythe Tiger -918 : Flight Spellbomb -918 : Ruin Ghost -917 : Lay Bare -917 : Bog Wraith -917 : Acolyte of Xathrid -916 : Wall of Faith -914 : Surrakar Banisher -914 : Dread Statuary -914 : Obelisk of Esper -913 : Screeching Silcaw -913 : Furnace Celebration -913 : Snapping Creeper -912 : Battle Hurda -911 : Nether Horror -911 : Howling Mine -910 : Obelisk of Bant -910 : Knotvine Mystic -909 : Seismic Shudder -908 : Copperline Gorge -908 : Suffer the Past -907 : Corrupted Zendikon -907 : Oakenform -907 : Fieldmist Borderpost -906 : Dreamstone Hedron -905 : Fusion Elemental -904 : Terra Eternal -904 : Infantry Veteran -904 : Boros Signet -903 : Dreadwing -902 : Twitch -901 : Surreal Memoir -900 : Dross Hopper -900 : Quicksand -900 : Khalni Garden -899 : Earth Servant -899 : Constricting Tendrils -898 : Quest for Pure Flame -898 : Kabira Crossroads -898 : Leonin Arbiter -898 : Blackcleave Cliffs -897 : Ricochet Trap -897 : Gargoyle Sentinel -896 : Vastwood Zendikon -894 : Spreading Seas -894 : Seize the Initiative -894 : Seachrome Coast -894 : Baneful Omen -893 : Explosive Revelation -892 : Razorverge Thicket -891 : Roofstalker Wight -889 : Redirect -888 : Selective Memory -887 : Silver Myr -886 : Grotag Thrasher -886 : Sejiri Steppe -886 : Unsummon -884 : Shoal Serpent -884 : Darkslick Shores -884 : Semblance Anvil -882 : Goblin Arsonist -881 : Mind Rot -881 : Rotting Legion -880 : Crusher Zendikon -880 : Angel's Mercy -879 : Spell Pierce -879 : Corrupted Harvester -879 : Leaden Myr -878 : Alluring Siren -877 : Quest for the Holy Relic -877 : Cast Through Time -877 : Angelsong -876 : Shieldmate's Blessing -876 : Bold Defense -876 : Noble Vestige -876 : Tanglesap -876 : Scrib Nibblers -875 : Soaring Seacliff -875 : Landbind Ritual -874 : Nimbus Wings -874 : Pulse Tracker -874 : Canyon Minotaur -873 : Eland Umbra -872 : Zendikar Farguide -872 : Tunnel Ignus -872 : Goblin Piker -871 : Mighty Leap -870 : Luminous Wake -870 : Ogre Sentry -870 : Glory Seeker -868 : Quest for Ancient Secrets -868 : Turntimber Grove -868 : Brink of Disaster -868 : Kitesail Apprentice -867 : Auriok Replica -866 : Guardian Zendikon -865 : Relic Crush -865 : Fiery Hellhound -864 : Lethargy Trap -864 : Zof Shade -863 : Mire Blight -863 : Vector Asp -863 : Naturalize -863 : Silence -863 : Flashfreeze -860 : Dormant Gomazoa -860 : Leaf Arrow -859 : Call to Mind -859 : Inkwell Leviathan -858 : Caller of Gales -858 : Trapmaker's Snare -858 : Carnage Altar -858 : Memnite -858 : Nature's Claim -856 : Scoria Elemental -856 : Mass Polymorph -856 : Coral Merfolk -855 : Dark Tutelage -854 : Dissipation Field -853 : Kuldotha Rebirth -852 : Pillarfield Ox -851 : Irresistible Prey -848 : Shrivel -847 : Runeflare Trap -847 : Mindless Null -847 : Disentomb -846 : Veteran's Reflexes -845 : Cosi's Ravager -844 : Smoldering Spires -844 : Relentless Rats -842 : Piranha Marsh -842 : Oxidda Daredevil -842 : Thunder Strike -840 : Evolving Wilds -840 : Goblin Tunneler -840 : Viscera Seer -840 : Solemn Offering -838 : Rest for the Weary -838 : Palace Guard -836 : Nema Siltlurker -836 : Skittering Invasion -835 : Bog Tatters -835 : Siege Mastodon -833 : Plated Seastrider -833 : Volcanic Strength -833 : Kraken's Eye -832 : Copperhorn Scout -831 : Safe Passage -830 : Harmless Assault -830 : Armored Cancrix -829 : Bull Rush -828 : Harbor Serpent -828 : Merfolk Spy -827 : Leyline of Anticipation -827 : Unholy Strength -825 : Assault Strobe -821 : Holy Strength -821 : Jinxed Idol -819 : Beast Hunt -817 : Merfolk Observer -817 : Leyline of the Void -816 : Bog Raiders -816 : Goblin Balloon Brigade -816 : Phantom Beast -815 : Duress -814 : Repay In Kind -814 : Primal Cocoon -813 : Clone Shell -812 : Twisted Image -812 : Painful Quandary -812 : Haze Frog -810 : Panic Spellbomb -810 : Blunt the Assault -810 : Mire's Toll -808 : Necrogen Censer -808 : Curse of Wizardry -807 : Ravenous Trap -807 : Shared Discovery -806 : Desecrated Earth -806 : Accorder's Shield -806 : Venser's Journal -806 : Leyline of Punishment -805 : Turn Aside -805 : Fleeting Distraction -804 : Demolish -803 : Raid Bombardment -803 : Maritime Guard -803 : Wall of Vines -801 : Roiling Terrain -800 : Jace's Erasure -797 : Phantasmal Abomination -797 : Bojuka Bog -796 : Perish the Thought -796 : Demystify -793 : Sunspring Expedition -792 : Blistergrub -792 : Death Cultist -792 : Crab Umbra -790 : Caravan Hurda -790 : Ancient Stirrings -790 : Gravity Well -790 : Nature's Spiral -786 : Goblin Gaveleer -786 : Molten Psyche -786 : Dispel -785 : Ajani's Mantra -783 : Memoricide -782 : Razor Boomerang -782 : Feral Contest -780 : Hornet Sting -778 : Shape Anew -778 : Walking Atlas -777 : Jwari Scuttler -777 : Dragon's Claw -776 : Demon's Horn -775 : Leyline of Sanctity -775 : Tireless Missionaries -774 : Fulgent Distraction -774 : Loxodon Wayfarer -773 : Unified Will -764 : Trapfinder's Trick -763 : Trigon of Mending -758 : Quest for the Goblin Lord -756 : Pyretic Ritual -755 : Relic Putrescence -754 : Liquimetal Coating -750 : Darksteel Myr -750 : Nihil Spellbomb -750 : Goldenglow Moth -747 : Rumbling Aftershocks -745 : Fog -743 : Tome Scour -741 : Bloodcrazed Goblin -739 : Golem Foundry -739 : Viridian Revel -739 : Elixir of Immortality -739 : Wild Evocation -734 : Haunting Echoes -732 : Contaminated Ground -732 : Blood Tithe -726 : Enatu Golem -724 : Aura Finesse -723 : Back to Nature -721 : Demonic Appetite -715 : Vault Skyward -712 : Nighthaze -710 : Autumn's Veil -703 : Melt Terrain -702 : Reinforced Bulwark -696 : Vigil for the Lost -693 : Dryad's Favor -692 : Golden Urn -688 : Fissure Vent -686 : Living Destiny -684 : Ornithopter -679 : Echo Circlet -678 : Runed Servitor -669 : Hunters' Feast -650 : Liliana's Caress -644 : Not Of This World -640 : Golem's Heart -633 : Swamp -633 : Mountain -615 : Whitesun's Passage -612 : Sorcerer's Strongbox -604 : Incite -588 : Forest -586 : Voltaic Key -577 : Plains -574 : Island -572 : Tectonic Edge -554 : Angel's Feather -535 : Wurm's Tooth diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/aer.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/aer.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/akh.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/akh.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/akh.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/akh.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/dom.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/dom.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/dom.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/dom.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/grn.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/grn.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/grn.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/grn.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/hou.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/hou.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/hou.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/hou.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ima.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/ima.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ima.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/ima.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/kld.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/kld.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m13.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/m13.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m13.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/m13.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m19.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/m19.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/m19.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/m19.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/mm3.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/mm3.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/mm3.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/mm3.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/rix.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/rix.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/rix.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/rix.csv diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv similarity index 98% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv index 172ed6537e2..bede958f23b 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/setsWithRatings.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv @@ -16,4 +16,5 @@ aer kld mm3 ima -m13 \ No newline at end of file +m13 +ktk \ 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/ratings/xln.csv similarity index 100% rename from Mage.Server.Plugins/Mage.Player.AI/src/main/resources/xln.csv rename to Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/xln.csv From a95f3b2211ed8ad060b530d5a6194ae336c7772f Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 14:27:06 -0700 Subject: [PATCH 3/6] remove ktk from list of sets with ratings haven't commited the ktk rating numbers, need to remove it from the list --- .../src/main/resources/ratings/setsWithRatings.csv | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv index bede958f23b..172ed6537e2 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/setsWithRatings.csv @@ -16,5 +16,4 @@ aer kld mm3 ima -m13 -ktk \ No newline at end of file +m13 \ No newline at end of file From 08d895d110bd3838bfe8b1ed5d2452d4060213b8 Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 15:20:51 -0700 Subject: [PATCH 4/6] fix typos in card ratings files --- .../Mage.Player.AI/src/main/resources/ratings/aer.csv | 2 +- .../Mage.Player.AI/src/main/resources/ratings/akh.csv | 2 +- .../Mage.Player.AI/src/main/resources/ratings/kld.csv | 2 +- .../Mage.Player.AI/src/main/resources/ratings/mm3.csv | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv index d586ce8d8cb..d5bc30212e6 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv @@ -181,4 +181,4 @@ Wrangle:543 Ornithopter:177 Gonti’s Machinations:167 Prizefighter Construct:123 -184 Secret Salvage 77 \ No newline at end of file +Secret Salvage 77 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/akh.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/akh.csv index aa35d0b68e0..168d2671cc7 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/akh.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/akh.csv @@ -246,4 +246,4 @@ 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 +Gate to the Afterlife 95 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv index d586ce8d8cb..8801646b1ab 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv @@ -181,4 +181,4 @@ Wrangle:543 Ornithopter:177 Gonti’s Machinations:167 Prizefighter Construct:123 -184 Secret Salvage 77 \ No newline at end of file +Secret Salvage:77 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/mm3.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/mm3.csv index d088c3d513c..3d175cd059c 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/mm3.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/mm3.csv @@ -235,7 +235,7 @@ Auramancer:1346 Haunted Fengraf:1343 Strionic Resonator:1342 Act of Heroism:1341 -Borrowing:100,000 Arrows 1338 +Borrowing 100,000 Arrows:1338 Jackal Pup:1337 Valor in Akros:1337 Nihil Spellbomb:1316 From 43f32f9640bb8d6b9ed8c2549c92752197262206 Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 15:24:06 -0700 Subject: [PATCH 5/6] card ratings files fixes/updates fixed kld and aer --- .../src/main/resources/ratings/aer.csv | 2 +- .../src/main/resources/ratings/kld.csv | 458 +++++++++++------- 2 files changed, 275 insertions(+), 185 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv index d5bc30212e6..8801646b1ab 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/aer.csv @@ -181,4 +181,4 @@ Wrangle:543 Ornithopter:177 Gonti’s Machinations:167 Prizefighter Construct:123 -Secret Salvage 77 \ No newline at end of file +Secret Salvage:77 \ No newline at end of file diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv index 8801646b1ab..21f062e5c16 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv @@ -1,184 +1,274 @@ -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 -Secret Salvage:77 \ No newline at end of file +Sword of Feast and Famine : 6746 +Chandra, Torch of Defiance :6461 +Skysovereign, Consul Flagship :6340 +Noxious Gearhulk :6262 +Sword of Fire and Ice :6222 +Angel of Invention :6000 +Verdurous Gearhulk :5971 +Demon of Dark Schemes :5893 +Sol Ring :5688 +Cataclysmic Gearhulk :5638 +Torrential Gearhulk :5628 +Nissa, Vital Force :5565 +Hangarback Walker :5500 +Gonti, Lord of Luxury :5474 +Steel Overseer :5392 +Skyship Stalker :5383 +Pia Nalaar :5351 +Sword of Light and Shadow :5346 +Smuggler's Copter :5342 +Confiscation Coup :5338 +Combustible Gearhulk :5326 +Oviya Pashiri, Sage Lifecrafte :5317 +Mana Crypt :5268 +Solemn Simulacrum :5257 +Mana Vault :5228 +Harnessed Lightning :5209 +Aetherstorm Roc :5194 +Cultivator's Caravan :5103 +Fairgrounds Warden :5100 +Rashmi, Eternities Crafter :5054 +Dovin Baan :5038 +Aerial Responder :5017 +Saheeli's Artistry :5014 +Bristling Hydra :4996 +Master Trinketeer :4979 +Welding Sparks :4971 +Cultivator of Blades :4895 +Aethersquall Ancient :4780 +Longtusk Cub :4744 +Unlicensed Disintegration :4673 +Snare Thopter :4657 +Fleetwheel Cruiser :4639 +Depala, Pilot Exemplar :4628 +Multiform Wonder :4625 +Cloudblazer :4603 +Filigree Familiar :4589 +Gauntlet of Power :4586 +Skywhaler's Shot :4582 +Renegade Freighter :4580 +Fumigate :4541 +Chromatic Lantern :4425 +Champion's Helm :4328 +Revoke Privileges :4313 +Peema Outrider :4305 +Arborback Stomper :4263 +Architect of the Untamed :4245 +Tidy Conclusion :4243 +Servant of the Conduit :4224 +Aetherborn Marauder :4185 +Essence Extraction :4136 +Saheeli Rai :4130 +Chief of the Foundry :4124 +Syndicate Trafficker :4030 +Lathnu Hellion :4026 +Bomat Bazaar Barge :4021 +Visionary Augmenter :3975 +Foundry Inspector :3930 +Wispweaver Angel :3924 +Gearshift Ace :3921 +Mox Opal :3921 +Key to the City :3912 +Furious Reprisal :3892 +Captured by the Consulate :3890 +Scrapheap Scrounger :3837 +Aethertorch Renegade :3817 +Die Young :3810 +Whirler Virtuoso :3801 +Animation Module :3776 +Æther Vial :3765 +Marionette Master :3742 +Nature's Way :3737 +Chandra's Pyrohelix :3714 +Long-Finned Skywhale :3713 +Aether Meltdown :3699 +Restoration Gearsmith :3653 +Empyreal Voyager :3650 +Ovalchase Daredevil :3634 +Thriving Rhino :3584 +Hunt the Weak :3579 +Veteran Motorist :3553 +Voltaic Brawler :3544 +Lightning Greaves :3531 +Dynavolt Tower :3505 +Scroll Rack :3483 +Padeem, Consul of Innovation :3470 +Shrewd Negotiation :3470 +Propeller Pioneer :3422 +Kambal, Consul of Allocation :3405 +Malfunction :3399 +Brazen Scourge :3395 +Chrome Mox :3369 +Ballista Charger :3358 +Sculpting Steel :3327 +Glint-Sleeve Artisan :3308 +Gearseeker Serpent :3290 +Glint-Nest Crane :3289 +Armorcraft Judge :3279 +Thriving Grubs :3265 +Sky Skiff :3264 +Speedway Fanatic :3261 +Riparian Tiger :3250 +Underhanded Designs :3235 +Kujar Seedsculptor :3231 +Maulfist Doorbuster :3227 +Subtle Strike :3186 +Mind's Eye :3172 +Impeccable Timing :3164 +Spontaneous Artist :3155 +Foundry Screecher :3125 +Elegant Edgecrafters :3112 +Weaponcraft Enthusiast :3093 +Contraband Kingpin :3085 +Consul's Shieldguard :3077 +Glimmer of Genius :3068 +Eliminate the Competition :3032 +Metalwork Colossus :3028 +Aetherworks Marvel :3020 +Aviary Mechanic :3008 +Aether Hub :2995 +Fateful Showdown :2968 +Prophetic Prism :2950 +Experimental Aviator :2940 +Metallurgic Summonings :2937 +Aether Theorist :2936 +Rings of Brighthearth :2869 +Toolcraft Exemplar :2860 +Attune with Aether :2849 +Thriving Ibex :2845 +Narnam Cobra :2841 +Quicksmith Genius :2826 +Fabrication Module :2806 +Lotus Petal :2788 +Thriving Rats :2782 +Insidious Will :2777 +Embraal Bruiser :2772 +Maulfist Squad :2766 +Dhund Operative :2751 +Cloudstone Curio :2739 +Salivating Gremlins :2709 +Janjeet Sentry :2690 +Static Orb :2655 +Era of Innovation :2652 +Fairgrounds Trumpeter :2651 +Wind Drake :2651 +Lawless Broker :2634 +Ovalchase Dragster :2629 +Fragmentize :2614 +Blossoming Defense :2592 +Built to Last :2582 +Territorial Gorger :2581 +Skyswirl Harrier :2566 +Rush of Vitality :2565 +Wild Wanderer :2549 +Deadlock Trap :2538 +Spireside Infiltrator :2522 +Durable Handicraft :2512 +Prakhata Pillar-Bug :2508 +Dukhara Peafowl :2503 +Sage of Shaila's Claim :2492 +Incendiary Sabotage :2474 +Weldfast Monitor :2463 +Trusty Companion :2452 +Iron League Steed :2450 +Spark of Creativity :2440 +Self-Assembler :2433 +Make Obsolete :2431 +Select for Inspection :2431 +Live Fast :2420 +Ambitious Aetherborn :2404 +Thriving Turtle :2397 +Nimble Innovator :2390 +Eager Construct :2382 +Servo Exhibition :2377 +Appetite for the Unnatural :2372 +Midnight Oil :2357 +Eddytrail Hawk :2352 +Æther Tradewinds :2337 +Reckless Fireweaver :2334 +Weldfast Wingsmith :2332 +Ghirapur Guide :2331 +Electrostatic Pummeler :2322 +Painter's Servant :2300 +Bastion Mastodon :2293 +Highspire Artisan :2258 +Cathartic Reunion :2239 +Wayward Giant :2226 +Acrobatic Maneuver :2225 +Crucible of Worlds :2221 +Built to Smash :2214 +Prakhata Club Security :2214 +Vedalken Blademaster :2205 +Panharmonicon :2186 +Decoction Module :2185 +Inventor's Apprentice :2178 +Fretwork Colony :2120 +Hightide Hermit :2102 +Spirebluff Canal :2095 +Botanical Sanctum :2072 +Blooming Marsh :2018 +Whirlermaker :1951 +Concealed Courtyard :1946 +Wildest Dreams :1930 +Tezzeret's Ambition :1922 +Ninth Bridge Patrol :1884 +Metalspinner's Puzzleknot :1872 +Inspiring Vantage :1868 +Ruinous Gremlin :1845 +Inventors' Fair :1830 +Herald of the Fair :1812 +Hazardous Conditions :1749 +Glassblower's Puzzleknot :1703 +Hijack :1693 +Engineered Might :1676 +Bomat Courier :1673 +Night Market Lookout :1670 +Inventor's Goggles :1664 +Cowl Prowler :1640 +Dukhara Scavenger :1638 +Ornamental Courage :1593 +Fortuitous Find :1586 +Demolition Stomper :1578 +Cogworker's Puzzleknot :1563 +Creeping Mold :1526 +Aradara Express :1518 +Minister of Inquiries :1499 +Harsh Scrutiny :1487 +Accomplished Automaton :1480 +Woodweaver's Puzzleknot :1459 +Failed Inspection :1458 +Diabolic Tutor :1454 +Consulate Skygate :1452 +Refurbish :1452 +Disappearing Act :1425 +Pressure Point :1424 +Authority of the Consuls :1398 +Workshop Assistant :1383 +Inspired Charge :1365 +Take Down :1343 +Renegade Tactics :1330 +Larger Than Life :1326 +Revolutionary Rebuff :1320 +Ceremonious Rejection :1318 +Torch Gauntlet :1295 +Fireforger's Puzzleknot :1285 +Morbid Curiosity :1273 +Ghirapur Orrery :1261 +Paradoxical Outcome :1257 +Curio Vendor :1234 +Aetherflux Reservoir :1222 +Start Your Engines :1221 +Terror of the Fairgrounds :1200 +Demolish :1197 +Wily Bandar :1181 +Consulate Surveillance :1167 +Giant Spectacle :1101 +Mind Rot :1101 +Lost Legacy :1092 +Commencement of Festivities :1064 +Sequestered Stash :1062 +Madcap Experiment :1061 +Tasseled Dromedary :1028 +Dramatic Reversal :1001 +Perpetual Timepiece :993 +Dubious Challenge :976 \ No newline at end of file From 83afff5a05f432ae91d0ad263c88b4fe83a1c565 Mon Sep 17 00:00:00 2001 From: brodee Date: Sun, 28 Oct 2018 16:18:53 -0700 Subject: [PATCH 6/6] kld card ratings draftaholics data was very skewed towards masterpieces. which meant decent cards were ranking very low relatively I used the relative ranking from draftaholics and generated a normal distribution mean60 std 20 for these rankings to smooth it out. --- .../src/main/resources/ratings/kld.csv | 548 +++++++++--------- 1 file changed, 274 insertions(+), 274 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv index 21f062e5c16..b477e4f3600 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/resources/ratings/kld.csv @@ -1,274 +1,274 @@ -Sword of Feast and Famine : 6746 -Chandra, Torch of Defiance :6461 -Skysovereign, Consul Flagship :6340 -Noxious Gearhulk :6262 -Sword of Fire and Ice :6222 -Angel of Invention :6000 -Verdurous Gearhulk :5971 -Demon of Dark Schemes :5893 -Sol Ring :5688 -Cataclysmic Gearhulk :5638 -Torrential Gearhulk :5628 -Nissa, Vital Force :5565 -Hangarback Walker :5500 -Gonti, Lord of Luxury :5474 -Steel Overseer :5392 -Skyship Stalker :5383 -Pia Nalaar :5351 -Sword of Light and Shadow :5346 -Smuggler's Copter :5342 -Confiscation Coup :5338 -Combustible Gearhulk :5326 -Oviya Pashiri, Sage Lifecrafte :5317 -Mana Crypt :5268 -Solemn Simulacrum :5257 -Mana Vault :5228 -Harnessed Lightning :5209 -Aetherstorm Roc :5194 -Cultivator's Caravan :5103 -Fairgrounds Warden :5100 -Rashmi, Eternities Crafter :5054 -Dovin Baan :5038 -Aerial Responder :5017 -Saheeli's Artistry :5014 -Bristling Hydra :4996 -Master Trinketeer :4979 -Welding Sparks :4971 -Cultivator of Blades :4895 -Aethersquall Ancient :4780 -Longtusk Cub :4744 -Unlicensed Disintegration :4673 -Snare Thopter :4657 -Fleetwheel Cruiser :4639 -Depala, Pilot Exemplar :4628 -Multiform Wonder :4625 -Cloudblazer :4603 -Filigree Familiar :4589 -Gauntlet of Power :4586 -Skywhaler's Shot :4582 -Renegade Freighter :4580 -Fumigate :4541 -Chromatic Lantern :4425 -Champion's Helm :4328 -Revoke Privileges :4313 -Peema Outrider :4305 -Arborback Stomper :4263 -Architect of the Untamed :4245 -Tidy Conclusion :4243 -Servant of the Conduit :4224 -Aetherborn Marauder :4185 -Essence Extraction :4136 -Saheeli Rai :4130 -Chief of the Foundry :4124 -Syndicate Trafficker :4030 -Lathnu Hellion :4026 -Bomat Bazaar Barge :4021 -Visionary Augmenter :3975 -Foundry Inspector :3930 -Wispweaver Angel :3924 -Gearshift Ace :3921 -Mox Opal :3921 -Key to the City :3912 -Furious Reprisal :3892 -Captured by the Consulate :3890 -Scrapheap Scrounger :3837 -Aethertorch Renegade :3817 -Die Young :3810 -Whirler Virtuoso :3801 -Animation Module :3776 -Æther Vial :3765 -Marionette Master :3742 -Nature's Way :3737 -Chandra's Pyrohelix :3714 -Long-Finned Skywhale :3713 -Aether Meltdown :3699 -Restoration Gearsmith :3653 -Empyreal Voyager :3650 -Ovalchase Daredevil :3634 -Thriving Rhino :3584 -Hunt the Weak :3579 -Veteran Motorist :3553 -Voltaic Brawler :3544 -Lightning Greaves :3531 -Dynavolt Tower :3505 -Scroll Rack :3483 -Padeem, Consul of Innovation :3470 -Shrewd Negotiation :3470 -Propeller Pioneer :3422 -Kambal, Consul of Allocation :3405 -Malfunction :3399 -Brazen Scourge :3395 -Chrome Mox :3369 -Ballista Charger :3358 -Sculpting Steel :3327 -Glint-Sleeve Artisan :3308 -Gearseeker Serpent :3290 -Glint-Nest Crane :3289 -Armorcraft Judge :3279 -Thriving Grubs :3265 -Sky Skiff :3264 -Speedway Fanatic :3261 -Riparian Tiger :3250 -Underhanded Designs :3235 -Kujar Seedsculptor :3231 -Maulfist Doorbuster :3227 -Subtle Strike :3186 -Mind's Eye :3172 -Impeccable Timing :3164 -Spontaneous Artist :3155 -Foundry Screecher :3125 -Elegant Edgecrafters :3112 -Weaponcraft Enthusiast :3093 -Contraband Kingpin :3085 -Consul's Shieldguard :3077 -Glimmer of Genius :3068 -Eliminate the Competition :3032 -Metalwork Colossus :3028 -Aetherworks Marvel :3020 -Aviary Mechanic :3008 -Aether Hub :2995 -Fateful Showdown :2968 -Prophetic Prism :2950 -Experimental Aviator :2940 -Metallurgic Summonings :2937 -Aether Theorist :2936 -Rings of Brighthearth :2869 -Toolcraft Exemplar :2860 -Attune with Aether :2849 -Thriving Ibex :2845 -Narnam Cobra :2841 -Quicksmith Genius :2826 -Fabrication Module :2806 -Lotus Petal :2788 -Thriving Rats :2782 -Insidious Will :2777 -Embraal Bruiser :2772 -Maulfist Squad :2766 -Dhund Operative :2751 -Cloudstone Curio :2739 -Salivating Gremlins :2709 -Janjeet Sentry :2690 -Static Orb :2655 -Era of Innovation :2652 -Fairgrounds Trumpeter :2651 -Wind Drake :2651 -Lawless Broker :2634 -Ovalchase Dragster :2629 -Fragmentize :2614 -Blossoming Defense :2592 -Built to Last :2582 -Territorial Gorger :2581 -Skyswirl Harrier :2566 -Rush of Vitality :2565 -Wild Wanderer :2549 -Deadlock Trap :2538 -Spireside Infiltrator :2522 -Durable Handicraft :2512 -Prakhata Pillar-Bug :2508 -Dukhara Peafowl :2503 -Sage of Shaila's Claim :2492 -Incendiary Sabotage :2474 -Weldfast Monitor :2463 -Trusty Companion :2452 -Iron League Steed :2450 -Spark of Creativity :2440 -Self-Assembler :2433 -Make Obsolete :2431 -Select for Inspection :2431 -Live Fast :2420 -Ambitious Aetherborn :2404 -Thriving Turtle :2397 -Nimble Innovator :2390 -Eager Construct :2382 -Servo Exhibition :2377 -Appetite for the Unnatural :2372 -Midnight Oil :2357 -Eddytrail Hawk :2352 -Æther Tradewinds :2337 -Reckless Fireweaver :2334 -Weldfast Wingsmith :2332 -Ghirapur Guide :2331 -Electrostatic Pummeler :2322 -Painter's Servant :2300 -Bastion Mastodon :2293 -Highspire Artisan :2258 -Cathartic Reunion :2239 -Wayward Giant :2226 -Acrobatic Maneuver :2225 -Crucible of Worlds :2221 -Built to Smash :2214 -Prakhata Club Security :2214 -Vedalken Blademaster :2205 -Panharmonicon :2186 -Decoction Module :2185 -Inventor's Apprentice :2178 -Fretwork Colony :2120 -Hightide Hermit :2102 -Spirebluff Canal :2095 -Botanical Sanctum :2072 -Blooming Marsh :2018 -Whirlermaker :1951 -Concealed Courtyard :1946 -Wildest Dreams :1930 -Tezzeret's Ambition :1922 -Ninth Bridge Patrol :1884 -Metalspinner's Puzzleknot :1872 -Inspiring Vantage :1868 -Ruinous Gremlin :1845 -Inventors' Fair :1830 -Herald of the Fair :1812 -Hazardous Conditions :1749 -Glassblower's Puzzleknot :1703 -Hijack :1693 -Engineered Might :1676 -Bomat Courier :1673 -Night Market Lookout :1670 -Inventor's Goggles :1664 -Cowl Prowler :1640 -Dukhara Scavenger :1638 -Ornamental Courage :1593 -Fortuitous Find :1586 -Demolition Stomper :1578 -Cogworker's Puzzleknot :1563 -Creeping Mold :1526 -Aradara Express :1518 -Minister of Inquiries :1499 -Harsh Scrutiny :1487 -Accomplished Automaton :1480 -Woodweaver's Puzzleknot :1459 -Failed Inspection :1458 -Diabolic Tutor :1454 -Consulate Skygate :1452 -Refurbish :1452 -Disappearing Act :1425 -Pressure Point :1424 -Authority of the Consuls :1398 -Workshop Assistant :1383 -Inspired Charge :1365 -Take Down :1343 -Renegade Tactics :1330 -Larger Than Life :1326 -Revolutionary Rebuff :1320 -Ceremonious Rejection :1318 -Torch Gauntlet :1295 -Fireforger's Puzzleknot :1285 -Morbid Curiosity :1273 -Ghirapur Orrery :1261 -Paradoxical Outcome :1257 -Curio Vendor :1234 -Aetherflux Reservoir :1222 -Start Your Engines :1221 -Terror of the Fairgrounds :1200 -Demolish :1197 -Wily Bandar :1181 -Consulate Surveillance :1167 -Giant Spectacle :1101 -Mind Rot :1101 -Lost Legacy :1092 -Commencement of Festivities :1064 -Sequestered Stash :1062 -Madcap Experiment :1061 -Tasseled Dromedary :1028 -Dramatic Reversal :1001 -Perpetual Timepiece :993 -Dubious Challenge :976 \ No newline at end of file +Sword of Feast and Famine:100 +Chandra, Torch of Defiance:99 +Skysovereign, Consul Flagship:98 +Noxious Gearhulk:97 +Sword of Fire and Ice:96 +Angel of Invention:95 +Verdurous Gearhulk:94 +Demon of Dark Schemes:94 +Sol Ring:93 +Cataclysmic Gearhulk:92 +Torrential Gearhulk:92 +Nissa, Vital Force:91 +Hangarback Walker:90 +Gonti, Lord of Luxury:90 +Steel Overseer:89 +Skyship Stalker:89 +Pia Nalaar:88 +Sword of Light and Shadow:88 +Smuggler's Copter:87 +Confiscation Coup:87 +Combustible Gearhulk:86 +Oviya Pashiri, Sage Lifecrafte:86 +Mana Crypt:86 +Solemn Simulacrum:85 +Mana Vault:85 +Harnessed Lightning:84 +Aetherstorm Roc:84 +Cultivator's Caravan:84 +Fairgrounds Warden:83 +Rashmi, Eternities Crafter:83 +Dovin Baan:83 +Aerial Responder:82 +Saheeli's Artistry:82 +Bristling Hydra:82 +Master Trinketeer:81 +Welding Sparks:81 +Cultivator of Blades:81 +Aethersquall Ancient:80 +Longtusk Cub:80 +Unlicensed Disintegration:80 +Snare Thopter:79 +Fleetwheel Cruiser:79 +Depala, Pilot Exemplar:79 +Multiform Wonder:79 +Cloudblazer:78 +Filigree Familiar:78 +Gauntlet of Power:78 +Skywhaler's Shot:78 +Renegade Freighter:77 +Fumigate:77 +Chromatic Lantern:77 +Champion's Helm:77 +Revoke Privileges:76 +Peema Outrider:76 +Arborback Stomper:76 +Architect of the Untamed:76 +Tidy Conclusion:75 +Servant of the Conduit:75 +Aetherborn Marauder:75 +Essence Extraction:75 +Saheeli Rai:74 +Chief of the Foundry:74 +Syndicate Trafficker:74 +Lathnu Hellion:74 +Bomat Bazaar Barge:73 +Visionary Augmenter:73 +Foundry Inspector:73 +Wispweaver Angel:73 +Gearshift Ace:73 +Mox Opal:72 +Key to the City:72 +Furious Reprisal:72 +Captured by the Consulate:72 +Scrapheap Scrounger:71 +Aethertorch Renegade:71 +Die Young:71 +Whirler Virtuoso:71 +Animation Module:71 +Æther Vial:70 +Marionette Master:70 +Nature's Way:70 +Chandra's Pyrohelix:70 +Long-Finned Skywhale:70 +Aether Meltdown:69 +Restoration Gearsmith:69 +Empyreal Voyager:69 +Ovalchase Daredevil:69 +Thriving Rhino:69 +Hunt the Weak:68 +Veteran Motorist:68 +Voltaic Brawler:68 +Lightning Greaves:68 +Dynavolt Tower:68 +Scroll Rack:67 +Padeem, Consul of Innovation:67 +Shrewd Negotiation:67 +Propeller Pioneer:67 +Kambal, Consul of Allocation:67 +Malfunction:66 +Brazen Scourge:66 +Chrome Mox:66 +Ballista Charger:66 +Sculpting Steel:66 +Glint-Sleeve Artisan:66 +Gearseeker Serpent:65 +Glint-Nest Crane:65 +Armorcraft Judge:65 +Thriving Grubs:65 +Sky Skiff:65 +Speedway Fanatic:64 +Riparian Tiger:64 +Underhanded Designs:64 +Kujar Seedsculptor:64 +Maulfist Doorbuster:64 +Subtle Strike:64 +Mind's Eye:63 +Impeccable Timing:63 +Spontaneous Artist:63 +Foundry Screecher:63 +Elegant Edgecrafters:63 +Weaponcraft Enthusiast:62 +Contraband Kingpin:62 +Consul's Shieldguard:62 +Glimmer of Genius:62 +Eliminate the Competition:62 +Metalwork Colossus:62 +Aetherworks Marvel:61 +Aviary Mechanic:61 +Aether Hub:61 +Fateful Showdown:61 +Prophetic Prism:61 +Experimental Aviator:60 +Metallurgic Summonings:60 +Aether Theorist:60 +Rings of Brighthearth:60 +Toolcraft Exemplar:60 +Attune with Aether:60 +Thriving Ibex:59 +Narnam Cobra:59 +Quicksmith Genius:59 +Fabrication Module:59 +Lotus Petal:59 +Thriving Rats:58 +Insidious Will:58 +Embraal Bruiser:58 +Maulfist Squad:58 +Dhund Operative:58 +Cloudstone Curio:58 +Salivating Gremlins:57 +Janjeet Sentry:57 +Static Orb:57 +Era of Innovation:57 +Fairgrounds Trumpeter:57 +Wind Drake:56 +Lawless Broker:56 +Ovalchase Dragster:56 +Fragmentize:56 +Blossoming Defense:56 +Built to Last:56 +Territorial Gorger:55 +Skyswirl Harrier:55 +Rush of Vitality:55 +Wild Wanderer:55 +Deadlock Trap:55 +Spireside Infiltrator:54 +Durable Handicraft:54 +Prakhata Pillar-Bug:54 +Dukhara Peafowl:54 +Sage of Shaila's Claim:54 +Incendiary Sabotage:54 +Weldfast Monitor:53 +Trusty Companion:53 +Iron League Steed:53 +Spark of Creativity:53 +Self-Assembler:53 +Make Obsolete:52 +Select for Inspection:52 +Live Fast:52 +Ambitious Aetherborn:52 +Thriving Turtle:52 +Nimble Innovator:51 +Eager Construct:51 +Servo Exhibition:51 +Appetite for the Unnatural:51 +Midnight Oil:51 +Eddytrail Hawk:50 +Æther Tradewinds:50 +Reckless Fireweaver:50 +Weldfast Wingsmith:50 +Ghirapur Guide:50 +Electrostatic Pummeler:49 +Painter's Servant:49 +Bastion Mastodon:49 +Highspire Artisan:49 +Cathartic Reunion:49 +Wayward Giant:48 +Acrobatic Maneuver:48 +Crucible of Worlds:48 +Built to Smash:48 +Prakhata Club Security:47 +Vedalken Blademaster:47 +Panharmonicon:47 +Decoction Module:47 +Inventor's Apprentice:47 +Fretwork Colony:46 +Hightide Hermit:46 +Spirebluff Canal:46 +Botanical Sanctum:46 +Blooming Marsh:45 +Whirlermaker:45 +Concealed Courtyard:45 +Wildest Dreams:45 +Tezzeret's Ambition:44 +Ninth Bridge Patrol:44 +Metalspinner's Puzzleknot:44 +Inspiring Vantage:44 +Ruinous Gremlin:43 +Inventors' Fair:43 +Herald of the Fair:43 +Hazardous Conditions:43 +Glassblower's Puzzleknot:42 +Hijack:42 +Engineered Might:42 +Bomat Courier:42 +Night Market Lookout:41 +Inventor's Goggles:41 +Cowl Prowler:41 +Dukhara Scavenger:41 +Ornamental Courage:40 +Fortuitous Find:40 +Demolition Stomper:40 +Cogworker's Puzzleknot:39 +Creeping Mold:39 +Aradara Express:39 +Minister of Inquiries:38 +Harsh Scrutiny:38 +Accomplished Automaton:38 +Woodweaver's Puzzleknot:37 +Failed Inspection:37 +Diabolic Tutor:37 +Consulate Skygate:36 +Refurbish:36 +Disappearing Act:36 +Pressure Point:35 +Authority of the Consuls:35 +Workshop Assistant:34 +Inspired Charge:34 +Take Down:34 +Renegade Tactics:33 +Larger Than Life:33 +Revolutionary Rebuff:32 +Ceremonious Rejection:32 +Torch Gauntlet:31 +Fireforger's Puzzleknot:31 +Morbid Curiosity:30 +Ghirapur Orrery:30 +Paradoxical Outcome:29 +Curio Vendor:28 +Aetherflux Reservoir:28 +Start Your Engines:27 +Terror of the Fairgrounds:26 +Demolish:26 +Wily Bandar:25 +Consulate Surveillance:24 +Giant Spectacle:23 +Mind Rot:22 +Lost Legacy:21 +Commencement of Festivities:20 +Sequestered Stash:18 +Madcap Experiment:16 +Tasseled Dromedary:14 +Dramatic Reversal:11 +Perpetual Timepiece:6 +Dubious Challenge:0 \ No newline at end of file