diff --git a/Mage.Client/src/main/java/mage/client/util/comparators/CardViewEDHPowerLevelComparator.java b/Mage.Client/src/main/java/mage/client/util/comparators/CardViewEDHPowerLevelComparator.java index 9f70be139de..07e24941e3c 100644 --- a/Mage.Client/src/main/java/mage/client/util/comparators/CardViewEDHPowerLevelComparator.java +++ b/Mage.Client/src/main/java/mage/client/util/comparators/CardViewEDHPowerLevelComparator.java @@ -319,273 +319,351 @@ public class CardViewEDHPowerLevelComparator implements CardViewComparator { } String cn = card.getName().toLowerCase(Locale.ENGLISH); - if (cn.equals("acid rain") - || cn.equals("agent of treachery") + if (cn.equals("ancient tomb") || cn.equals("anafenza, the foremost") - || cn.equals("ancient tomb") - || cn.equals("animar, soul of element") - || cn.equals("animate artifact") - || cn.equals("apocalypse") - || cn.equals("archaeomancer") || cn.equals("arcum dagsson") || cn.equals("armageddon") - || cn.equals("ashnod's altar") - || cn.equals("atraxa, praetors' voice") - || cn.equals("aura flux") || cn.equals("aura shards") - || cn.equals("avacyn, angel of hope") || cn.equals("azami, lady of scrolls") || cn.equals("azusa, lost but seeking") || cn.equals("back to basics") || cn.equals("bane of progress") || cn.equals("basalt monolith") - || cn.equals("bend or break") || cn.equals("blightsteel collossus") - || cn.equals("blightsteel colossus") || cn.equals("blood moon") - || cn.equals("boil") - || cn.equals("boiling seas") - || cn.equals("brago, king eternal") || cn.equals("braids, cabal minion") - || cn.equals("bribery") - || cn.equals("burning sands") || cn.equals("cabal coffers") - || cn.equals("candelabra of tawnos") || cn.equals("captain sisay") - || cn.equals("card view") - || cn.equals("cataclysm") - || cn.equals("catastrophe") || cn.equals("celestial dawn") - || cn.equals("cephalid aristocrat") - || cn.equals("cephalid illusionist") - || cn.equals("changeling berserker") || cn.equals("child of alara") - || cn.equals("chulane, teller of tales") - || cn.equals("cinderhaze wretch") || cn.equals("coalition relic") - || cn.equals("confusion in the ranks") - || cn.equals("consecrated sphinx") - || cn.equals("contamination") || cn.equals("craterhoof behemoth") - || cn.equals("cryptic gateway") - || cn.equals("cyclonic rift") - || cn.equals("deadeye navigator") - || cn.equals("death cloud") - || cn.equals("decree of annihilation") - || cn.equals("decree of silence") || cn.equals("deepglow skate") - || cn.equals("demonic consultation") || cn.equals("derevi, empyrial tactician") - || cn.equals("devastation") || cn.equals("dig through time") - || cn.equals("divine intervention") - || cn.equals("dockside extortionist") - || cn.equals("doomsday") - || cn.equals("doubling season") - || cn.equals("drannith magistrate") - || cn.equals("dross scorpion") - || cn.equals("earthcraft") || cn.equals("edric, spymaster of trest") || cn.equals("elesh norn, grand cenobite") - || cn.equals("embargo") - || cn.equals("emrakul, the promised end") - || cn.equals("enter the infinite") || cn.equals("entomb") - || cn.equals("epicenter") - || cn.equals("erratic portal") - || cn.equals("expropriate") - || cn.equals("exquisite blood") - || cn.equals("fall of the thran") - || cn.equals("fierce guardianship") - || cn.equals("food chain") - || cn.equals("force of negation") || cn.equals("force of will") - || cn.equals("future sight") + || cn.equals("food chain") || cn.equals("gaddock teeg") || cn.equals("gaea's cradle") - || cn.equals("genesis chamber") - || cn.equals("ghave, guru of spores") - || 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("grave pact") - || cn.equals("grave titan") - || cn.equals("great whale") || cn.equals("grim monolith") - || cn.equals("grip of chaos") - || cn.equals("gush") - || cn.equals("hellkite charger") || cn.equals("hermit druid") || cn.equals("hokori, dust drinker") || cn.equals("humility") - || cn.equals("impending disaster") || cn.equals("imperial seal") - || cn.equals("intruder alarm") - || cn.equals("invoke prejudice") || cn.equals("iona, shield of emeria") || cn.equals("jin-gitaxias, core augur") - || cn.equals("jokulhaups") - || cn.equals("kaalia of the vast") || cn.equals("karador, ghost chieftain") || cn.equals("karakas") - || cn.equals("karn, silver golem") || cn.equals("kataki, war's wage") - || cn.equals("keldon firebombers") - || cn.equals("kiki-jiki, mirror breaker") - || cn.equals("kinnan, bonder prodigy") || cn.equals("knowledge pool") - || cn.equals("kozilek, butcher of truth") - || cn.equals("krark-clan ironworks") - || cn.equals("krenko, mob boss") - || cn.equals("krosan restorer") - || cn.equals("laboratory maniac") - || cn.equals("land equilibrium") - || cn.equals("leonin relic-warder") - || cn.equals("leovold, emissary of trest") - || cn.equals("leyline of the void") || cn.equals("linvala, keeper of silence") || cn.equals("living death") || cn.equals("llawan, cephalid empress") || cn.equals("loyal retainers") || cn.equals("maelstrom wanderer") - || cn.equals("magister sphinx") || cn.equals("malfegor") - || cn.equals("mana breach") + || cn.equals("master of cruelties") || cn.equals("mana crypt") || cn.equals("mana drain") || cn.equals("mana vault") - || cn.equals("mana vortex") - || cn.equals("master of cruelties") - || cn.equals("memnarch") - || cn.equals("meren of clan nel toth") || cn.equals("michiko konda, truth seeker") - || cn.equals("mikaeus the unhallowed") - || cn.equals("mikaeus, the unhallowed") - || cn.equals("mindcrank") - || cn.equals("mindslaver") - || cn.equals("minion reflector") - || cn.equals("mycosynth lattice") - || cn.equals("myr turbine") - || cn.equals("narset, enlightened master") - || cn.equals("narset, parter of veils") || cn.equals("nath of the gilt-leaf") || cn.equals("natural order") || cn.equals("necrotic ooze") - || cn.equals("negan, the cold-blooded") - || cn.equals("nekusar, the mindrazer") - || cn.equals("nether void") - || cn.equals("nexus of fate") || cn.equals("nicol bolas") - || cn.equals("norin the wary") - || cn.equals("notion thief") || cn.equals("numot, the devastator") || cn.equals("oath of druids") - || cn.equals("obliterate") - || cn.equals("oko, thief of crowns") - || cn.equals("oloro, ageless ascetic") - || cn.equals("omniscience") - || cn.equals("opalescence") - || cn.equals("opposition agent") - || cn.equals("oppression") - || cn.equals("ornithopter") - || cn.equals("overwhelming splendor") - || cn.equals("palinchron") - || cn.equals("paradox engine") || cn.equals("pattern of rebirth") - || cn.equals("peregrine drake") - || cn.equals("planar portal") - || cn.equals("possessed portal") - || cn.equals("power artifact") - || cn.equals("price of glory") - || cn.equals("prossh, skyraider of kher") || cn.equals("protean hulk") || cn.equals("purphoros, god of the forge") || cn.equals("ravages of war") || cn.equals("reclamation sage") + || cn.equals("sen triplets") + || cn.equals("serra's sanctum") + || cn.equals("sheoldred, whispering one") + || cn.equals("sol ring") + || cn.equals("spore frog") + || cn.equals("stasis") + || cn.equals("strip mine") + || cn.equals("the tabernacle at pendrell vale") + || cn.equals("tinker") + || cn.equals("treasure cruise") + || cn.equals("urabrask the hidden") + || cn.equals("vorinclex, voice of hunger") + || cn.equals("winter orb") + || cn.equals("zur the enchanter")) { + thisMaxPower = Math.max(thisMaxPower, 12); + } + + // Parts of infinite combos + if (cn.equals("animate artifact") || cn.equals("animar, soul of element") + || cn.equals("archaeomancer") + || cn.equals("ashnod's altar") || cn.equals("azami, lady of scrolls") + || cn.equals("aura flux") + || cn.equals("basalt monolith") || cn.equals("brago, king eternal") + || cn.equals("candelabra of tawnos") || cn.equals("cephalid aristocrat") + || cn.equals("cephalid illusionist") || cn.equals("changeling berserker") + || cn.equals("consecrated sphinx") + || cn.equals("cyclonic rift") + || cn.equals("the chain veil") + || cn.equals("cinderhaze wretch") || cn.equals("cryptic gateway") + || cn.equals("deadeye navigator") || cn.equals("derevi, empyrial tactician") + || cn.equals("doubling season") || cn.equals("dross scorpion") + || cn.equals("earthcraft") || cn.equals("erratic portal") + || cn.equals("enter the infinite") || cn.equals("omniscience") + || cn.equals("exquisite blood") || cn.equals("future sight") + || cn.equals("genesis chamber") + || cn.equals("ghave, guru of spores") + || cn.equals("grave pact") + || cn.equals("grave titan") || cn.equals("great whale") + || cn.equals("grim monolith") || cn.equals("gush") + || cn.equals("hellkite charger") || cn.equals("intruder alarm") + || cn.equals("helm of obedience") + || cn.equals("hermit druid") + || cn.equals("humility") + || cn.equals("iona, shield of emeria") + || cn.equals("karn, silver golem") || cn.equals("kiki-jiki, mirror breaker") + || cn.equals("krark-clan ironworks") || cn.equals("krenko, mob boss") + || cn.equals("krosan restorer") || cn.equals("laboratory maniac") + || cn.equals("leonin relic-warder") || cn.equals("leyline of the void") + || cn.equals("memnarch") + || cn.equals("meren of clan nel toth") || cn.equals("mikaeus, the unhallowed") + || cn.equals("mindcrank") || cn.equals("mindslaver") + || cn.equals("minion reflector") || cn.equals("mycosynth lattice") + || cn.equals("myr turbine") || cn.equals("narset, enlightened master") + || cn.equals("nekusar, the mindrazer") || cn.equals("norin the wary") + || cn.equals("notion thief") + || cn.equals("opalescence") || cn.equals("ornithopter") + || cn.equals("paradox engine") + || cn.equals("purphoros, god of the forge") + || cn.equals("peregrine drake") || cn.equals("palinchron") + || cn.equals("planar portal") || cn.equals("power artifact") + || cn.equals("rings of brighthearth") || cn.equals("rite of replication") + || cn.equals("sanguine bond") || cn.equals("sensei's divining top") + || cn.equals("splinter twin") || cn.equals("stony silence") + || cn.equals("sunder") + || cn.equals("storm cauldron") || cn.equals("teferi's puzzle box") + || cn.equals("tangle wire") + || cn.equals("teferi, mage of zhalfir") + || cn.equals("tezzeret the seeker") || cn.equals("time stretch") + || cn.equals("time warp") || cn.equals("training grounds") + || cn.equals("triskelavus") || cn.equals("triskelion") + || cn.equals("turnabout") || cn.equals("umbral mantle") + || cn.equals("uyo, silent prophet") || cn.equals("voltaic key") + || cn.equals("workhorse") || cn.equals("worldgorger dragon") + || cn.equals("worthy cause") || cn.equals("yawgmoth's will") + || cn.equals("zealous conscripts")) { + thisMaxPower = Math.max(thisMaxPower, 15); + numberInfinitePieces++; + } + + // Saltiest cards (edhrec) + if (cn.equals("acid rain") + || cn.equals("agent of treachery") + || cn.equals("apocalypse") + || cn.equals("armageddon") + || cn.equals("atraxa, praetors' voice") + || cn.equals("aura shards") + || cn.equals("avacyn, angel of hope") + || cn.equals("back to basics") + || cn.equals("bend or break") + || cn.equals("blightsteel colossus") + || cn.equals("blood moon") + || cn.equals("boil") + || cn.equals("boiling seas") + || cn.equals("bribery") + || cn.equals("burning sands") + || cn.equals("cataclysm") + || cn.equals("catastrophe") + || cn.equals("chulane, teller of tales") + || cn.equals("confusion in the ranks") + || cn.equals("consecrated sphinx") + || cn.equals("contamination") + || cn.equals("craterhoof behemoth") + || cn.equals("cyclonic rift") + || cn.equals("death cloud") + || cn.equals("decree of annihilation") + || cn.equals("decree of silence") + || 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("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") + || cn.equals("nether void") + || cn.equals("nexus of fate") + || cn.equals("notion thief") + || cn.equals("obliterate") + || cn.equals("oko, thief of crowns") + || cn.equals("oloro, ageless ascetic") + || 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") + || cn.equals("possessed portal") + || cn.equals("price of glory") + || cn.equals("protean hulk") + || cn.equals("ravages of war") || cn.equals("rhystic study") - || cn.equals("rick, steadfast leader") - || cn.equals("rings of brighthearth") || cn.equals("rising waters") - || cn.equals("rite of replication") || cn.equals("ruination") - || cn.equals("sanguine bond") || cn.equals("scrambleverse") || cn.equals("seedborn muse") || cn.equals("sen triplets") - || cn.equals("sensei's divining top") - || cn.equals("serra's sanctum") - || cn.equals("sheoldred, whispering one") + || cn.equals("sheoldred, the apocalypse") || cn.equals("sire of insanity") || cn.equals("skithiryx, the blight dragon") || cn.equals("smokestack") || cn.equals("smothering tithe") - || cn.equals("sol ring") || cn.equals("sorin markov") - || cn.equals("splinter twin") - || cn.equals("spore frog") || cn.equals("stasis") || cn.equals("static orb") - || cn.equals("stony silence") || cn.equals("storage matrix") - || cn.equals("storm cauldron") - || cn.equals("strip mine") || cn.equals("sunder") || cn.equals("survival of the fittest") - || cn.equals("table view") || cn.equals("tainted aether") - || cn.equals("tangle wire") || cn.equals("tectonic break") || cn.equals("teferi's protection") - || cn.equals("teferi's puzzle box") - || cn.equals("teferi, mage of zhalfir") || cn.equals("teferi, master of time") || cn.equals("teferi, time raveler") || cn.equals("temporal manipulation") || cn.equals("tergrid, god of fright") - || cn.equals("text view") - || cn.equals("tezzeret the seeker") || cn.equals("thassa's oracle") - || cn.equals("the chain veil") || 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("tinker") || cn.equals("tooth and nail") || cn.equals("torment of hailfire") || cn.equals("torpor orb") - || cn.equals("training grounds") - || cn.equals("treasure cruise") - || cn.equals("triskelavus") - || cn.equals("triskelion") + || cn.equals("toxrill, the corrosive") || cn.equals("triumph of the hordes") - || cn.equals("turnabout") || 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("umbral mantle") - || cn.equals("urabrask the hidden") || cn.equals("urza, lord high artificer") - || cn.equals("uyo, silent prophet") || cn.equals("void winnower") - || cn.equals("voltaic key") + || 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("workhorse") - || cn.equals("worldgorger dragon") - || cn.equals("worthy cause") + || cn.equals("worldfire") || cn.equals("xanathar, guild kingpin") - || cn.equals("yawgmoth's will") - || cn.equals("zealous conscripts") - || cn.equals("zur the enchanter")) { - thisMaxPower = Math.max(thisMaxPower, 12); - } + || 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); + } return thisMaxPower; }