nerdphoenix

Magic Basic Attack DPS

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