nerdphoenix

Magic Ability Damage

Jan 5th, 2022 (edited)
1,204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 24.61 KB | None | 0 0
  1. from __future__ import print_function
  2. from tkinter import *
  3. from itertools import combinations
  4. from itertools import chain
  5.  
  6.  
  7. class Item():
  8.     def __init__ (self,name,power,flatPen,percentPen,attackSpeed,critChance,lifesteal,cdr,mana,health,basicAttackDamage,gold):
  9.         self.name = name
  10.         self.power = power
  11.         self.flatPen = flatPen
  12.         self.percentPen = percentPen
  13.         self.attackSpeed = attackSpeed
  14.         self.critChance = critChance
  15.         self.lifesteal = lifesteal
  16.         self.cdr = cdr
  17.         self.mana = mana
  18.         self.health = health
  19.         self.basicAttackDamage = basicAttackDamage
  20.         self.gold = gold
  21.  
  22. bookofthoth = Item("Book Of Thoth",80,0,0,0,0,0,0,1000,0,0,2500)
  23. poly = Item("Polynomicon",95,0,0,0,0,0.12,0,300,0,0,2300)
  24. soulreaver = Item("Soul Reaver",95,0,0,0,0,0,0,300,0,0,2650)
  25. bookofthedead = Item("Book Of the Dead",120,0,0,0,0,0,0,200,0,0,2600)
  26. myrddin = Item("Staff Of Myrddin",105,0,0.1,0,0,0,0.1,0,0,0,2800)
  27. warlocks = Item("Warlock's Staff",155,0,0.1,0,0,0,0,200,225,0,2500)
  28. asclepius = Item("Rod Of Asclepius",90,0,0,0,0,0,0,0,200,0,2600)
  29. estaff = Item("Ethereal Staff",90,0,0,0,0,0,0,0,200,0,2600)
  30. gemOfIsolation = Item("Gem Of Isoloation",90,0,0,0,0,0,0,0,200,0,2700)
  31. divine = Item("Divine Ruin",100,12,0,0,0,0,0,0,0,0,2300)
  32. magus = Item("Spear Of The Magus",110,12,0,0,0,0.12,0,0,0,0,2550)
  33. deso = Item("Spear Of Desolation",110,12,0,0,0,0,0.1,0,0,0,2600)
  34. obby = Item("Obsidian Shard",100,0,0.2,0,0,0,0,0,0,0,2450)
  35. celestial = Item("Celestial Legion Helm",70,0,0,0,0,0,0,0,0,0,2150)
  36. lotus = Item("Lotus Crown",30,0,0,0,0,0,0,0,0,0,2050)
  37. jadeEmps = Item("Jade Emperor's Crown",40,0,0,0,0,0,0,0,300,0,2600)
  38. tyrannical = Item("Tyrannical Plate Helm",85,0,0,0,0,0,0,0,0,0,2400)
  39. voidStone = Item("Void Stone",40,0,0,0,0,0,0,0,150,0,2250)
  40. fal = Item("Stone Of Fal",20,0,0,0,0,0,0,0,200,0,2350)
  41. binding = Item("Stone Of Binding",30,0,0,0,0,0,0,0,0,0,1700)
  42. pythags = Item("Pythagorem's Piece",70,0,0.1,0,0,0.24,0,0,200,0,2300)
  43. soulgem = Item("Soul Gem",80,0,0,0,0,0.12,0.1,0,150,0,2300)
  44. bancroft = Item("Bancroft's Talon",100,0,0,0,0,0.15,0,150,0,0,2500)
  45. typhons = Item("Typhon's Fang",70,0,0.1,0,0,0.15,0,200,0,0,2800)
  46. tahuti = Item("Rod Of Tahuti",120,0,0.1,0,0,0,0,0,0,0,3000)
  47. chronos = Item("Chronos' Pendant",90,0,0,0,0,0,0.2,0,0,0,2700)
  48. coin = Item("Charon's Coin",80,0,0.2,0,0,0,0,0,0,0,2400)
  49. doomOrb = Item("Doom Orb",145,0,0,0,0,0,0,200,0,0,2850)
  50. rangdas = Item("Rangda's Mask",120,0,0,0,0,0,0,0,0,0,2500)
  51. demonicgrip = Item("Demonic Grip",75,0,0,0.3,0,0,0,0,0,0,2300)
  52. telkhines = Item("Telkhines Ring",90,0,0,0.2,0,0,0,0,0,0,2700)
  53. hecate = Item("Ring Of Hecate",80,0,0,0.2,0,0.15,0,0,0,0,2500)
  54. hastenedring = Item("Hastened Ring",70,0,0,0.25,0,0,0,0,0,0,2700)
  55.  
  56. calamitousTahuti = Item("Calamitous Rod Of Tahuti",120,0,0.1,0,0,0,0,0,0,0,3600)
  57. nimbleTahuti = Item("Nimble Rod Of Tahuti",120,0,0.1,0,0,0,0,0,0,0,3600)
  58.  
  59. magicalBumbasSpear = Item("Bumba's Spear",105,0,0.1,0,0,0,0.1,0,0,0,2100)
  60. pendulum = Item("Pendulum Of Ages",190,0,0,0,0,0,0.2,0,0,0,2100)
  61. alternateTimeline = Item("Alternate Timeline",70,0,0,0,0,0,0.1,0,0,0,2100)
  62. gemOfFocus = Item("Gem Of Focus",100,0,0,0,0,0,0,0,150,0,2100)
  63. archmagesGem = Item("Archmage's Gem",120,0,0,0,0,0,0,200,0,0,2100)
  64. sacShroud = Item("Sacrificial Shroud",115,0,0,0,0,0.15,0,0,100,0,2100)
  65.  
  66. empty = Item("Empty",0,0,0,0,0,0,0,0,0,0,0)
  67.  
  68.  
  69. mageItems = [bookofthoth,bookofthedead,poly,soulreaver,myrddin,warlocks,asclepius,estaff,gemOfIsolation,divine,magus,deso,obby,celestial,lotus,jadeEmps,tyrannical,voidStone,fal,binding,pythags,soulgem,bancroft,typhons,tahuti,calamitousTahuti,nimbleTahuti,chronos,coin,doomOrb,demonicgrip,telkhines,hastenedring,hecate,rangdas,empty]
  70. mageStarters = [magicalBumbasSpear,pendulum,gemOfFocus,alternateTimeline,archmagesGem,sacShroud,empty]
  71.  
  72. mageItemsNames = []
  73. for i in mageItems:
  74.     mageItemsNames.append(i.name)
  75. mageItemsNames.append(" ")
  76.  
  77. mageStarterNames = []
  78. for i in mageStarters:
  79.     mageStarterNames.append(i.name)
  80. mageStarterNames.append(" ")
  81.  
  82. def CalculateDamage():
  83.     mageItems = [bookofthoth,bookofthedead,poly,soulreaver,myrddin,warlocks,asclepius,estaff,gemOfIsolation,divine,magus,deso,obby,celestial,lotus,jadeEmps,tyrannical,voidStone,fal,binding,pythags,soulgem,bancroft,typhons,tahuti,calamitousTahuti,nimbleTahuti,chronos,coin,doomOrb,demonicgrip,telkhines,hastenedring,hecate,rangdas,empty]
  84.     requiredItems = []
  85.  
  86.     if(starterVariable.get()!=" "):
  87.         for i in mageStarters:
  88.             if i.name == starterVariable.get():
  89.                 requiredItems.append(i)
  90.  
  91.     if(requiredItems1Variable.get()!=" "):
  92.         for i in mageItems:
  93.             if i.name == requiredItems1Variable.get():
  94.                 requiredItems.append(i)
  95.                 if i.name != "Empty":
  96.                     mageItems.remove(i)
  97.  
  98.     if(requiredItems2Variable.get()!=" "):
  99.         for i in mageItems:
  100.             if i.name == requiredItems2Variable.get():
  101.                 requiredItems.append(i)
  102.                 if i.name != "Empty":
  103.                     mageItems.remove(i)
  104.  
  105.     if(requiredItems3Variable.get()!=" "):
  106.         for i in mageItems:
  107.             if i.name == requiredItems3Variable.get():
  108.                 requiredItems.append(i)
  109.                 if i.name != "Empty":
  110.                     mageItems.remove(i)
  111.  
  112.     if(requiredItems4Variable.get()!=" "):
  113.         for i in mageItems:
  114.             if i.name == requiredItems4Variable.get():
  115.                 requiredItems.append(i)
  116.                 if i.name != "Empty":
  117.                     mageItems.remove(i)
  118.  
  119.     if(requiredItems5Variable.get()!=" "):
  120.         for i in mageItems:
  121.             if i.name == requiredItems5Variable.get():
  122.                 requiredItems.append(i)
  123.                 if i.name != "Empty":
  124.                     mageItems.remove(i)
  125.  
  126.     allbuilds =combinations(mageItems, 6 - len(requiredItems))
  127.  
  128.     buildSorterBuilds = ["blank","blank"]
  129.     buildSorterDamage = [0,9999999999]
  130.     for k in allbuilds:
  131.         build = requiredItems + list(k)
  132.  
  133.         power = 0
  134.         health = 2000
  135.         mana = 1000
  136.         manaFromItems = 0
  137.         cdr = 0
  138.         lifesteal = 0
  139.         flatPen = 0
  140.         percentPen = 0
  141.         totalGold = 0
  142.         bookOfThothBool = False
  143.         warlocksBool = False
  144.         voidStonePen = 1
  145.         soulGemBool = False
  146.         magusMultiplier = 1
  147.         obbyPen = 0
  148.         estaffBool = False
  149.         reaverBool = False
  150.         typhonBool = False
  151.         tahutiMulti = 1
  152.         sacShroudMulti = 1
  153.         gemOfFocusMulti = 1
  154.         rangdasMulti = 0
  155.         archmageBool = False
  156.         polyBool = False
  157.         kukuPassiveBool = False
  158.         calamitousTahutiBool = False
  159.         tahutis = 0
  160.  
  161.         for i in build:
  162.             power = power + i.power
  163.             health = health + i.health
  164.             mana = mana + i.mana
  165.             manaFromItems = manaFromItems + i.mana
  166.             cdr = cdr + i.cdr
  167.             lifesteal = lifesteal + i.lifesteal
  168.             flatPen = flatPen + i.flatPen
  169.             percentPen = percentPen + i.percentPen
  170.             totalGold = totalGold + i.gold
  171.  
  172.             if i.name == "Book Of Thoth":
  173.                 bookOfThothBool = True
  174.  
  175.             elif i.name == "Warlock's Staff":
  176.                 warlocksBool = True
  177.  
  178.             elif i.name == "Void Stone":
  179.                 voidStonePen = 0.9
  180.  
  181.             elif i.name == "Soul Gem" and soulGemPassiveVariable.get():
  182.                 soulGemBool = True
  183.  
  184.             elif i.name == "Spear Of The Magus" and magusPassiveVariable.get():
  185.                 magusMultiplier = 1.075
  186.  
  187.             elif i.name == "Obsidian Shard" and obbyPassiveVariable.get():
  188.                 obbyPen = 0.1
  189.  
  190.             elif i.name == "Ethereal Staff" and estaffPassiveVariable.get():
  191.                 estaffBool = True
  192.  
  193.             elif i.name == "Soul Reaver":
  194.                 reaverBool = True
  195.  
  196.             elif i.name == "Typhon's Fang":
  197.                 typhonBool = True
  198.  
  199.             elif i.name == "Bancroft's Talon" and bancroftPassiveVariable.get():
  200.                 power = power + 100
  201.                 lifesteal = lifesteal + 0.2
  202.  
  203.             elif i.name == "Doom Orb" and doomPassiveVariable.get():
  204.                 power = power + 20
  205.  
  206.             elif tahutiPassiveVariable.get():
  207.                 if i.name == "Rod Of Tahuti" or i.name == "Calamitous Rod Of Tahuti" or i.name == "Nimble Rod Of Tahuti":
  208.                     tahutiMulti = 1.25
  209.  
  210.             elif i.name == "Rangda's Mask" and rangdasPassiveVariable.get():
  211.                 rangdasMulti = 0.15
  212.  
  213.             elif i.name == "Sacrificial Shroud":
  214.                 sacShroudMulti = 1.15
  215.  
  216.             elif i.name == "Gem Of Focus":
  217.                 gemOfFocusMulti = 1.09
  218.  
  219.             elif i.name == "Archmage's Gem":
  220.                 archmageBool = True
  221.  
  222.             elif i.name == "Polynomicon" and polyPassiveVariable.get():
  223.                 polyBool = True
  224.  
  225.             elif i.name == "Calamitous Rod Of Tahuti" and calamitousPassiveVariable.get():
  226.                 calamitousTahutiBool = True
  227.  
  228.             if i.name == "Rod Of Tahuti" or i.name == "Calamitous Rod Of Tahuti" or i.name == "Nimble Rod Of Tahuti":
  229.                 tahutis = tahutis + 1;
  230.  
  231.         if percentPen > 0.4:
  232.             percentPen = 0.4
  233.         if flatPen > 50:
  234.             flatPen = 50
  235.         if cdr > 0.4:
  236.             cdr = 0.4
  237.         if lifesteal > 0.65:
  238.             lifesteal = 0.65
  239.  
  240.         if lifesteal >= float(minimumLifeStealEntry.get()) and cdr >= float(minimumCDREntry.get()) and tahutis <= 1:
  241.  
  242.             if bookOfThothBool:
  243.                 if bookOfThothEnabledVariable.get():
  244.                     power = power + (manaFromItems * 0.1)
  245.                 else:
  246.                     power = 1
  247.  
  248.             #kukuPassiveBool = True
  249.             if kukuPassiveBool:
  250.                 power = power + (mana * 0.04)
  251.  
  252.  
  253.             if warlocksBool and warlocksEnabledVariable.get() == False:
  254.                 power = 1
  255.  
  256.             if typhonBool:
  257.                 power = power + (lifesteal * 200)
  258.  
  259.  
  260.  
  261.             target1Damage = (float(baseAbilityDamageEntry.get()) + ((power * tahutiMulti) * (float(powerScalingEntry.get())))) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen+obbyPen)))-flatPen)), 1)
  262.             target2Damage = (float(baseAbilityDamageEntry.get()) + ((power * tahutiMulti) * (float(powerScalingEntry.get())))) * min((100/(100+(((float(target2ProtsEntry.get())*voidStonePen))*(1-(percentPen+obbyPen)))-flatPen)), 1)
  263.  
  264.  
  265.             target1Damage = target1Damage * sacShroudMulti
  266.             target2Damage = target2Damage * sacShroudMulti
  267.  
  268.  
  269.             if soulGemBool:
  270.                 target1Damage = target1Damage + ((power) * (0.25)) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  271.                 target2Damage = target2Damage + ((power) * (0.25)) * min((100/(100+(((float(target2ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  272.  
  273.             if archmageBool:
  274.                 target1Damage = target1Damage + ((power) * (0.2)) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  275.                 target2Damage = target2Damage + ((power) * (0.2)) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  276.  
  277.             if polyBool:
  278.                 target1Damage = target1Damage + ((power) * (0.75)) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  279.                 target2Damage = target2Damage + ((power) * (0.75)) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  280.  
  281.             if calamitousTahutiBool:
  282.                 target1Damage = target1Damage + (100+((power) * (0.35))) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  283.                 target2Damage = target2Damage + (100+((power) * (0.35))) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-(percentPen)))-flatPen)), 1)
  284.  
  285.  
  286.             if reaverBool:
  287.                 reaverPercent1 = ((7/750)*(float(target1HealthEntry.get())))-(50/3)
  288.                 reaverPercent2 = ((7/750)*(float(target2HealthEntry.get())))-(50/3)
  289.  
  290.                 if reaverPercent1 < 2:
  291.                     reaverPercent1 = 2
  292.                 elif reaverPercent1 > 9:
  293.                     reaverPercent1 = 9
  294.  
  295.                 if reaverPercent2 < 2:
  296.                     reaverPercent2 = 2
  297.                 elif reaverPercent2 > 9:
  298.                     reaverPercent2 = 9
  299.  
  300.                 target1Damage = target1Damage + (float(target1HealthEntry.get())*(reaverPercent1/100)) * min((100/(100+(((float(target1ProtsEntry.get())*voidStonePen))*(1-percentPen)-flatPen))), 1)
  301.                 target2Damage = target2Damage + (float(target2HealthEntry.get())*(reaverPercent2/100)) * min((100/(100+(((float(target2ProtsEntry.get())*voidStonePen))*(1-percentPen)-flatPen))), 1)
  302.  
  303.             target1Damage = target1Damage * (gemOfFocusMulti + rangdasMulti)
  304.             target2Damage = target2Damage * (gemOfFocusMulti + rangdasMulti)
  305.  
  306.             if estaffBool:
  307.                 target1Damage = target1Damage + (float(target1HealthEntry.get())*0.06)
  308.                 target2Damage = target2Damage + (float(target2HealthEntry.get())*0.06)
  309.  
  310.             target1Damage = target1Damage * magusMultiplier
  311.             target2Damage = target2Damage * magusMultiplier
  312.  
  313.             if target1Damage >= float(minimumTarget1DamageEntry.get()) and target2Damage >= float(minimumTarget2DamageEntry.get()):
  314.                 if target1SortVariable.get():
  315.                     string = ""
  316.                     for i in build:
  317.                         string = string + i.name + ", "
  318.                     string = string + "\nTarget 1 Damage: " + str(round(target1Damage,2)) + " Target 2 Damage: " + str(round(target2Damage,2))+"\n"
  319.  
  320.                     if len(buildSorterBuilds) == 2:
  321.                         buildSorterBuilds.insert(1,string)
  322.                         buildSorterDamage.insert(1,target1Damage)
  323.  
  324.  
  325.                     else:
  326.                         i = round(len(buildSorterBuilds)/2) - 1
  327.                         loop = True
  328.                         while(loop):
  329.                             if(target1Damage < buildSorterDamage[i-1]):
  330.                                 i -= 1
  331.                             elif(target1Damage > buildSorterDamage[i]):
  332.                                 i += 1
  333.                             else:
  334.                                 loop = False
  335.                                 buildSorterBuilds.insert(i,string)
  336.                                 buildSorterDamage.insert(i,target1Damage)
  337.  
  338.                                 if len(buildSorterBuilds) > float(buildLimitForSorterEntry.get()) + 2:
  339.                                     del buildSorterBuilds[1]
  340.                                     del buildSorterDamage[1]
  341.  
  342.  
  343.  
  344.                 elif target2SortVariable.get():
  345.                     string = ""
  346.                     for i in build:
  347.                         string = string + i.name + ", "
  348.                     string = string + "\nTarget 1 Damage: " + str(round(target1Damage,2)) + " Target 2 Damage: " + str(round(target2Damage,2))+"\n"
  349.  
  350.                     if len(buildSorterBuilds) == 2:
  351.                         buildSorterBuilds.insert(1,string)
  352.                         buildSorterDamage.insert(1,target2Damage)
  353.  
  354.  
  355.                     else:
  356.                         i = round(len(buildSorterBuilds)/2) - 1
  357.                         loop = True
  358.                         while(loop):
  359.                             if(target2Damage < buildSorterDamage[i-1]):
  360.                                 i -= 1
  361.                             elif(target2Damage > buildSorterDamage[i]):
  362.                                 i += 1
  363.                             else:
  364.                                 loop = False
  365.                                 buildSorterBuilds.insert(i,string)
  366.                                 buildSorterDamage.insert(i,target2Damage)
  367.  
  368.                                 if len(buildSorterBuilds) > float(buildLimitForSorterEntry.get()) + 2:
  369.                                     del buildSorterBuilds[1]
  370.                                     del buildSorterDamage[1]
  371.  
  372.                 else:
  373.                     for i in build:
  374.                         print(i.name, end = ", ")
  375.                     print("\nTarget 1 Damage:" , round(target1Damage,2) , " Target 2 Damage:" , round(target2Damage,2),"\n")
  376.  
  377.     if target1SortVariable.get() or target2SortVariable.get():
  378.         del buildSorterBuilds[0]
  379.         del buildSorterBuilds[-1]
  380.  
  381.         for i in buildSorterBuilds:
  382.             print(i)
  383.  
  384.     print("-------------------------------------------------------")
  385.  
  386.  
  387.  
  388. def min(x, y):
  389.     if x<y:
  390.         return x
  391.     return y
  392.  
  393.  
  394. ############################################################################################
  395.  
  396. root = Tk()
  397. root.title("Generic Ability Damage")
  398.  
  399. button = Button(root, text="Run Program", padx=25, command = CalculateDamage)
  400. button.grid(row = 0, column = 0)
  401.  
  402. baseAbilityDamageLabel = Label(root,text="Base Ability Damage:")
  403. baseAbilityDamageLabel.grid(row = 1, column = 0)
  404. baseAbilityDamageEntry = Entry(root, width=5)
  405. baseAbilityDamageEntry.grid(row = 1, column = 1)
  406. baseAbilityDamageEntry.insert(0,"0")
  407.  
  408. emptyLabel1 = Label(root,text="     ")
  409. emptyLabel1.grid(row = 1, column = 2)
  410.  
  411. powerScalingLabel = Label(root,text="Power Scaling:")
  412. powerScalingLabel.grid(row = 1, column = 3)
  413. powerScalingEntry = Entry(root, width=5)
  414. powerScalingEntry.grid(row = 1, column = 4)
  415. powerScalingEntry.insert(0,"0")
  416.  
  417.  
  418. itemsLabel = Label(root,text="Required Items:")
  419. itemsLabel.grid(row = 2, column = 0)
  420.  
  421. requiredItems1Variable = StringVar()
  422. requiredItems1Variable.set(" ")
  423. requiredItems1 = OptionMenu(root,  requiredItems1Variable, *mageItemsNames)
  424. requiredItems1.grid(row=2, column=1)
  425.  
  426. requiredItems2Variable = StringVar()
  427. requiredItems2Variable.set(" ")
  428. requiredItems2 = OptionMenu(root,  requiredItems2Variable, *mageItemsNames)
  429. requiredItems2.grid(row=2, column=2)
  430.  
  431. requiredItems3Variable = StringVar()
  432. requiredItems3Variable.set(" ")
  433. requiredItems3 = OptionMenu(root,  requiredItems3Variable, *mageItemsNames)
  434. requiredItems3.grid(row=2, column=3)
  435.  
  436. requiredItems4Variable = StringVar()
  437. requiredItems4Variable.set(" ")
  438. requiredItems4 = OptionMenu(root,  requiredItems4Variable, *mageItemsNames)
  439. requiredItems4.grid(row=2, column=4)
  440.  
  441. requiredItems5Variable = StringVar()
  442. requiredItems5Variable.set(" ")
  443. requiredItems5 = OptionMenu(root,  requiredItems5Variable, *mageItemsNames)
  444. requiredItems5.grid(row=2, column=5)
  445.  
  446. starterLabel = Label(root,text="Starter Item:")
  447. starterLabel.grid(row = 3, column = 0)
  448.  
  449. starterVariable = StringVar()
  450. starterVariable.set(" ")
  451. starter = OptionMenu(root,  starterVariable, *mageStarterNames)
  452. starter.grid(row=3, column=1)
  453.  
  454.  
  455. target1ProtsLabel = Label(root,text="Target 1 Protections:")
  456. target1ProtsLabel.grid(row = 4, column = 0)
  457. target1ProtsEntry = Entry(root, width=5)
  458. target1ProtsEntry.grid(row = 4, column = 1)
  459. target1ProtsEntry.insert(0,"60")
  460.  
  461. emptyLabel2 = Label(root,text="     ")
  462. emptyLabel2.grid(row = 4, column = 2)
  463.  
  464. target1HealthLabel = Label(root,text="Target 1 Health:")
  465. target1HealthLabel.grid(row = 4, column = 3)
  466. target1HealthEntry = Entry(root, width=5)
  467. target1HealthEntry.grid(row = 4, column = 4)
  468. target1HealthEntry.insert(0,"2000")
  469.  
  470.  
  471. target2ProtsLabel = Label(root,text="Target 2 Protections:")
  472. target2ProtsLabel.grid(row = 5, column = 0)
  473. target2ProtsEntry = Entry(root, width=5)
  474. target2ProtsEntry.grid(row = 5, column = 1)
  475. target2ProtsEntry.insert(0,"200")
  476.  
  477. emptyLabel3 = Label(root,text="     ")
  478. emptyLabel3.grid(row = 5, column = 2)
  479.  
  480. target2HealthLabel = Label(root,text="Target 2 Health:")
  481. target2HealthLabel.grid(row = 5, column = 3)
  482. target2HealthEntry = Entry(root, width=5)
  483. target2HealthEntry.grid(row = 5, column = 4)
  484. target2HealthEntry.insert(0,"3000")
  485.  
  486. minimumTarget1DamageLabel = Label(root,text="Minimum Target 1 Damage:")
  487. minimumTarget1DamageLabel.grid(row = 6, column = 0)
  488. minimumTarget1DamageEntry = Entry(root, width=5)
  489. minimumTarget1DamageEntry.grid(row = 6, column = 1)
  490. minimumTarget1DamageEntry.insert(0,"0")
  491.  
  492. emptyLabel4 = Label(root,text="     ")
  493. emptyLabel4.grid(row = 6, column = 2)
  494.  
  495. minimumTarget2DamageLabel = Label(root,text="Minimum Target 2 Damage:")
  496. minimumTarget2DamageLabel.grid(row = 6, column = 3)
  497. minimumTarget2DamageEntry = Entry(root, width=5)
  498. minimumTarget2DamageEntry.grid(row = 6, column = 4)
  499. minimumTarget2DamageEntry.insert(0,"0")
  500.  
  501. minimumCDRLabel = Label(root,text="Minimum Cooldown Reduction:")
  502. minimumCDRLabel.grid(row = 7, column = 0)
  503. minimumCDREntry = Entry(root, width=5)
  504. minimumCDREntry.grid(row = 7, column = 1)
  505. minimumCDREntry.insert(0,"0")
  506.  
  507. emptyLabel5 = Label(root,text="     ")
  508. emptyLabel5.grid(row = 7, column = 2)
  509.  
  510. minimumLifeStealLabel = Label(root,text="Minimum Lifesteal:")
  511. minimumLifeStealLabel.grid(row = 7, column = 3)
  512. minimumLifeStealEntry = Entry(root, width=5)
  513. minimumLifeStealEntry.grid(row = 7, column = 4)
  514. minimumLifeStealEntry.insert(0,"0")
  515.  
  516. disablePassivesLabel = Label(root,text="Enable/Disable Item Passives:")
  517. disablePassivesLabel.grid(row = 8, column = 0)
  518.  
  519. estaffPassiveVariable = BooleanVar()
  520. estaffPassiveVariable.set(False)
  521. estaffPassiveCheckBox = Checkbutton(root, text="Ethereal Staff", variable = estaffPassiveVariable)
  522. estaffPassiveCheckBox.grid(row = 8, column = 1)
  523.  
  524. magusPassiveVariable = BooleanVar()
  525. magusPassiveVariable.set(False)
  526. magusPassiveCheckBox = Checkbutton(root, text="Spear Of The Magus", variable = magusPassiveVariable)
  527. magusPassiveCheckBox.grid(row = 8, column = 2)
  528.  
  529. tahutiPassiveVariable = BooleanVar()
  530. tahutiPassiveVariable.set(False)
  531. tahutiPassiveCheckBox = Checkbutton(root, text="Rod Of Tahuti", variable = tahutiPassiveVariable)
  532. tahutiPassiveCheckBox.grid(row = 8, column = 3)
  533.  
  534. doomPassiveVariable = BooleanVar()
  535. doomPassiveVariable.set(False)
  536. doomPassiveCheckBox = Checkbutton(root, text="Doom Orb", variable = doomPassiveVariable)
  537. doomPassiveCheckBox.grid(row = 8, column = 4)
  538.  
  539. soulGemPassiveVariable = BooleanVar()
  540. soulGemPassiveVariable.set(False)
  541. soulGemPassiveCheckBox = Checkbutton(root, text="Soul Gem", variable = soulGemPassiveVariable)
  542. soulGemPassiveCheckBox.grid(row = 8, column = 5)
  543.  
  544. obbyPassiveVariable = BooleanVar()
  545. obbyPassiveVariable.set(False)
  546. obbyPassiveCheckBox = Checkbutton(root, text="Obsidian Shard", variable = obbyPassiveVariable)
  547. obbyPassiveCheckBox.grid(row = 8, column = 6)
  548.  
  549. polyPassiveVariable = BooleanVar()
  550. polyPassiveVariable.set(False)
  551. polyPassiveCheckBox = Checkbutton(root, text="Polynomicon", variable = polyPassiveVariable)
  552. polyPassiveCheckBox.grid(row = 9, column = 1)
  553.  
  554. bancroftPassiveVariable = BooleanVar()
  555. bancroftPassiveVariable.set(False)
  556. bancroftPassiveCheckBox = Checkbutton(root, text="Bancroft's Talon", variable = bancroftPassiveVariable)
  557. bancroftPassiveCheckBox.grid(row = 9, column =2 )
  558.  
  559. rangdasPassiveVariable = BooleanVar()
  560. rangdasPassiveVariable.set(False)
  561. rangdasPassiveCheckBox = Checkbutton(root, text="Rangda's Mask", variable = rangdasPassiveVariable)
  562. rangdasPassiveCheckBox.grid(row = 9, column = 3)
  563.  
  564. calamitousPassiveVariable = BooleanVar()
  565. calamitousPassiveVariable.set(False)
  566. calamitousPassiveCheckBox = Checkbutton(root, text="Calamitous Tahuti", variable = calamitousPassiveVariable)
  567. calamitousPassiveCheckBox.grid(row = 9, column = 4)
  568.  
  569. disableItemsLabel = Label(root,text="Enable/Disable Items:")
  570. disableItemsLabel.grid(row = 10, column = 0)
  571.  
  572. bookOfThothEnabledVariable = BooleanVar()
  573. bookOfThothEnabledVariable.set(False)
  574. bookOfThothEnabledCheckBox = Checkbutton(root, text="Book Of Thoth", variable = bookOfThothEnabledVariable)
  575. bookOfThothEnabledCheckBox.grid(row = 10, column = 1)
  576.  
  577. warlocksEnabledVariable = BooleanVar()
  578. warlocksEnabledVariable.set(False)
  579. warlocksEnabledCheckBox = Checkbutton(root, text="Warlock's Staff", variable = warlocksEnabledVariable)
  580. warlocksEnabledCheckBox.grid(row = 10, column = 2)
  581.  
  582. target1SortVariable = BooleanVar()
  583. target1SortVariable.set(False)
  584. target1SortCheckBox = Checkbutton(root, text="Sort Builds By Damage to Target 1", variable = target1SortVariable)
  585. target1SortCheckBox.grid(row = 11, column = 1)
  586.  
  587. target2SortVariable = BooleanVar()
  588. target2SortVariable.set(False)
  589. target2SortCheckBox = Checkbutton(root, text="Sort Builds By Damage to Target 2", variable = target2SortVariable)
  590. target2SortCheckBox.grid(row = 11, column = 3)
  591.  
  592. buildLimitForSorterLabel = Label(root,text="Number of Builds Displayed When Sorting:")
  593. buildLimitForSorterLabel.grid(row = 12, column = 0)
  594. buildLimitForSorterEntry = Entry(root, width=5)
  595. buildLimitForSorterEntry.grid(row = 12, column = 1)
  596. buildLimitForSorterEntry.insert(0,"20")
  597.  
  598. root.mainloop()
  599.  
Add Comment
Please, Sign In to add comment