From a30c9cbb1db90785e9a74b3f5d7f79ccf07f0cb9 Mon Sep 17 00:00:00 2001 From: spjspj Date: Fri, 28 Mar 2025 23:11:19 +1100 Subject: [PATCH] Update EDH Power level determiner Update with the latest (2024) saltiest list from EDHREC, add in a category for game changers from WoTC, update the walking dead series with their new, in universe names --- .../src/mage/deck/AbstractCommander.java | 80 +++++++++++++++++-- 1 file changed, 72 insertions(+), 8 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AbstractCommander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AbstractCommander.java index 0b6165ae087..a65cc28170c 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AbstractCommander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AbstractCommander.java @@ -739,7 +739,6 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("boiling seas") || cn.equals("bribery") || cn.equals("burning sands") - || cn.equals("card view") || cn.equals("cataclysm") || cn.equals("catastrophe") || cn.equals("chulane, teller of tales") @@ -754,47 +753,60 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("demonic consultation") || cn.equals("derevi, empyrial tactician") || cn.equals("devastation") + || cn.equals("dictate of erebos") || cn.equals("divine intervention") || cn.equals("dockside extortionist") || cn.equals("doomsday") || cn.equals("doubling season") || cn.equals("drannith magistrate") + || cn.equals("edgar markov") || cn.equals("elesh norn, grand cenobite") + || cn.equals("elesh norn, mother of machines") || cn.equals("embargo") || cn.equals("emrakul, the promised end") || cn.equals("epicenter") || cn.equals("expropriate") || cn.equals("fall of the thran") + || cn.equals("farewell") || cn.equals("fierce guardianship") + || cn.equals("flashfires") || cn.equals("food chain") || cn.equals("force of negation") || cn.equals("force of will") || cn.equals("gaddock teeg") || cn.equals("gaea's cradle") || cn.equals("gilded drake") - || cn.equals("glenn, the voice of calm") || cn.equals("global ruin") || cn.equals("golos, tireless pilgrim") || cn.equals("grand arbiter augustin iv") + || cn.equals("gregor, shrewd magistrate") + || cn.equals("greymond, avacyn's stalwart") || cn.equals("grip of chaos") || cn.equals("hokori, dust drinker") || cn.equals("humility") || cn.equals("impending disaster") || cn.equals("invoke prejudice") || cn.equals("iona, shield of emeria") + || cn.equals("jeweled lotus") || cn.equals("jin-gitaxias, core augur") + || cn.equals("jin-gitaxias, progress tyrant") || cn.equals("jokulhaups") + || cn.equals("karn, the great creator") || cn.equals("keldon firebombers") || cn.equals("kinnan, bonder prodigy") + || cn.equals("koma, cosmos serpent") + || cn.equals("korvold, fae-cursed king") || cn.equals("kozilek, butcher of truth") || cn.equals("land equilibrium") || cn.equals("linvala, keeper of silence") || cn.equals("magister sphinx") + || cn.equals("malik, grim manipulator") || cn.equals("mana breach") || cn.equals("mana crypt") || cn.equals("mana drain") || cn.equals("mana vortex") || cn.equals("mindslaver") + || cn.equals("nadu, winged wisdom") || cn.equals("narset, enlightened master") || cn.equals("narset, parter of veils") || cn.equals("negan, the cold-blooded") @@ -807,6 +819,7 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("omniscience") || cn.equals("opposition agent") || cn.equals("oppression") + || cn.equals("orcish bowmasters") || cn.equals("overwhelming splendor") || cn.equals("palinchron") || cn.equals("paradox engine") @@ -815,12 +828,12 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("protean hulk") || cn.equals("ravages of war") || cn.equals("rhystic study") - || cn.equals("rick, steadfast leader") || cn.equals("rising waters") || cn.equals("ruination") || cn.equals("scrambleverse") || cn.equals("seedborn muse") || cn.equals("sen triplets") + || cn.equals("sheoldred, the apocalypse") || cn.equals("sire of insanity") || cn.equals("skithiryx, the blight dragon") || cn.equals("smokestack") @@ -831,7 +844,6 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("storage matrix") || cn.equals("sunder") || cn.equals("survival of the fittest") - || cn.equals("table view") || cn.equals("tainted aether") || cn.equals("tectonic break") || cn.equals("teferi's protection") @@ -839,31 +851,82 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("teferi, time raveler") || cn.equals("temporal manipulation") || cn.equals("tergrid, god of fright") - || cn.equals("text view") || cn.equals("thassa's oracle") || cn.equals("the tabernacle at pendrell vale") || cn.equals("thieves' auction") || cn.equals("thoughts of ruin") || cn.equals("thrasios, triton hero") + || cn.equals("time sieve") || cn.equals("time stretch") || cn.equals("time warp") || cn.equals("tooth and nail") || cn.equals("torment of hailfire") || cn.equals("torpor orb") + || cn.equals("toxrill, the corrosive") || cn.equals("triumph of the hordes") || cn.equals("ugin, the spirit dragon") || cn.equals("ulamog, the ceaseless hunger") + || cn.equals("ulamog, the defiler") || cn.equals("ulamog, the infinite gyre") || cn.equals("urza, lord high artificer") || cn.equals("void winnower") + || cn.equals("vorinclex, monstrous raider") || cn.equals("vorinclex, voice of hunger") || cn.equals("wake of destruction") || cn.equals("warp world") + || cn.equals("winter moon") || cn.equals("winter orb") + || cn.equals("worldfire") || cn.equals("xanathar, guild kingpin") - || cn.equals("zur the enchanter")) { + || cn.equals("zur the enchanter") + ) { thisMaxPower = Math.max(thisMaxPower, 15); } + + // Game changers + if (cn.equals("ad nauseam") + || cn.equals("ancient tomb") + || cn.equals("bolas's citadel") + || cn.equals("chrome mox") + || cn.equals("cyclonic rift") + || cn.equals("demonic tutor") + || cn.equals("drannith magistrate") + || cn.equals("enlightened tutor") + || cn.equals("expropriate") + || cn.equals("fierce guardianship") + || cn.equals("force of will") + || cn.equals("gaea's cradle") + || cn.equals("glacial chasm") + || cn.equals("grand arbiter augustin iv") + || cn.equals("grim monolith") + || cn.equals("imperial seal") + || cn.equals("jeska's will") + || cn.equals("jin-gitaxias, core augur") + || cn.equals("kinnan, bonder prodigy") + || cn.equals("lion's eye diamond") + || cn.equals("mana vault") + || cn.equals("mox diamond") + || cn.equals("mystical tutor") + || cn.equals("opposition agent") + || cn.equals("rhystic study") + || cn.equals("serra's sanctum") + || cn.equals("smothering tithe") + || cn.equals("survival of the fittest") + || cn.equals("tergrid, god of fright") + || cn.equals("thassa's oracle") + || cn.equals("the one ring") + || cn.equals("the tabernacle at pendrell vale") + || cn.equals("trinisphere") + || cn.equals("trouble in pairs") + || cn.equals("underworld breach") + || cn.equals("urza, lord high artificer") + || cn.equals("vampiric tutor") + || cn.equals("vorinclex, voice of hunger") + || cn.equals("winota, joiner of forces") + || cn.equals("yuriko, the tiger's shadow")) { + thisMaxPower = Math.max(thisMaxPower, 20); + } + edhPowerLevel += thisMaxPower; } @@ -947,20 +1010,21 @@ public abstract class AbstractCommander extends Constructed { || cn.equals("elesh norn, grand cenobite") || cn.equals("emrakul, the promised end") || cn.equals("gaddock teeg") - || cn.equals("glenn, the voice of calm") || cn.equals("golos, tireless pilgrim") || cn.equals("grand arbiter augustin iv") + || cn.equals("gregor, shrewd magistrate") || cn.equals("hokori, dust drinker") || cn.equals("iona, shield of emeria") || cn.equals("jin-gitaxias, core augur") || cn.equals("kinnan, bonder prodigy") || cn.equals("kozilek, butcher of truth") || cn.equals("linvala, keeper of silence") + || cn.equals("malik, grim manipulator") || cn.equals("narset, enlightened master") || cn.equals("negan, the cold-blooded") || cn.equals("oko, thief of crowns") || cn.equals("oloro, ageless ascetic") - || cn.equals("rick, steadfast leader") + || cn.equals("greymond, avacyn's stalwart") || cn.equals("sen triplets") || cn.equals("skithiryx, the blight dragon") || cn.equals("teferi, master of time")