nerdphoenix

Physical Ability Damage

Jan 5th, 2022 (edited)
1,181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 20.64 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. exe = Item("The Executioner",40,0,0,0.2,0,0,0,0,0,0,2200)
  23. qins = Item("Qin's Sais",40,0,0,0.2,0,0,0,0,0,0,2600)
  24. asi = Item("Asi",25,15,0,0.25,0,0.15,0,0,0,0,2550)
  25. titansBane = Item("Titan's Bane",45,0,0.2,0,0,0,0,0,0,0,2550)
  26. beatstick = Item("Brawler's Beatstick",50,15,0,0,0,0,0,0,0,0,2350)
  27. jotunnsWrath = Item("Jotunn's Wrath",40,10,0,0,0,0,0.2,150,0,0,2200)
  28. crusher = Item("Crusher",40,15,0,0.1,0,0,0,0,0,0,2400)
  29. trans = Item("Transcendance",40,0,0,0.2,0,0,0.1,1050,0,0,2600)
  30. hydras = Item("Hydra's Lament",40,0,0.1,0,0,0.1,0,0,0,0,2150)
  31. heartseeker = Item("Heartseeker",65,0,0.1,0,0,0,0,200,0,0,2900)
  32. dominance = Item("Dominance",55,0,0.1,0,0,0,0,200,0,0,2500)
  33. deathbringer = Item("Deathbringer",50,0,0,0,0.3,0,0,0,0,0,2900)
  34. rage = Item("Rage",35,0,0,0,0.45,0,0,0,0,0,2500)
  35. soulEater = Item("Soul Eater",40,0,0.1,0,0,0.15,0.1,0,0,0,2100)
  36. devos = Item("Devourer's Gauntlet",70,0,0,0,0,0.29,0,0,0,0,2300)
  37. bloodforge = Item("Bloodforge",75,0,0,0,0,0.15,0,0,0,0,2750)
  38. frostbound = Item("Frostbound Hammer",35,0,0,0,0,0,0,0,250,0,2300)
  39. runeforge = Item("Runeforged Hammer",45,0,0,0,0,0,0,0,250,0,2400)
  40. sledge = Item("Sledge",40,0,0,0,0,0,0,150,250,0,2300)
  41. blackthorn = Item("Blackthorn Hammer",30,0,0,0,0,0,0.1,200,400,0,2300)
  42. runic = Item("Runic Shield",35,0,0,0,0,0,0,0,150,0,2150)
  43. ancile = Item("Ancile",40,0,0,0,0,0,0.1,0,0,0,2250)
  44. cadShield = Item("Caduceus Shield",25,0,0,0,0,0,0,0,100,0,2500)
  45. ichaival = Item("Ichaival",35,0,0,0.3,0,0,0,0,0,0,2450)
  46. silverbranch = Item("Silverbranch Bow",30,0,0.2,0.3,0,0,0,0,0,0,2400)
  47. atalantas = Item("Atalanta's Bow",30,0,0,0.2,0.2,0.1,0,0,0,0,2350)
  48. windDemon = Item("Wind Demon",25,0,0.1,0.25,0.2,0,0,0,0,0,2500)
  49. shadowsteel = Item("Shadowsteel Shuriken",40,0,0,0.2,0.2,0,0,0,0,0,2400)
  50. failnot = Item("Failnot",40,0,0.1,0.1,0.2,0,0.2,0,0,0,2650)
  51. obow = Item("Odysseus' Bow",0,0,0,0.3,0,0,0,0,0,0,2100)
  52. rangdas = Item("Rangda's Mask",70,0,0,0,0,0,0,0,0,0,2500)
  53. goldenBlade = Item("Golden Blade",35,0,0,0.2,0,0,0,0,0,0,2000)
  54. scs = Item("Stone Cutting Sword",50,0,0,0,0,0,0,0,0,0,2200)
  55. hastenedKatana = Item("Hastened Katana",25,0,0,0.15,0,0,0,0,0,0,2450)
  56. serrated = Item("Serrated Edge",30,0,0.2,0,0,0.1,0,0,0,0,2650)
  57.  
  58. jotunnsVigor = Item("Jotunn's Vigor",40,10,0,0,0,0,0.2,150,0,0,2800)
  59. jotunnsFerocity = Item("Jotunn's Ferocity",40,10,0,0,0,0,0.2,150,0,0,2800)
  60. envenomedDeathbringer = Item("Envenomed Deathbringer",50,0,0,0,0.3,0,0,0,0,0,3500)
  61. maliciousDeathbringer = Item("Malicious Deathbringer",50,0,0,0,0.3,0,0,0,0,0,3500)
  62.  
  63. bumbasSpear = Item("Bumba's Spear",70,0,0.1,0,0,0,0.1,0,0,0,2100)
  64. mhb = Item("Manikin's Hidden Blade",60,0,0,0,0,0,0,0,0,0,2100)
  65.  
  66. empty = Item("Empty",0,0,0,0,0,0,0,0,0,0,0)
  67.  
  68. physicalItems = [exe,qins,asi,titansBane,beatstick,jotunnsWrath,jotunnsVigor,jotunnsFerocity,crusher,trans,hydras,heartseeker,dominance,deathbringer,envenomedDeathbringer,maliciousDeathbringer,rage,soulEater,devos,bloodforge,frostbound,runeforge,sledge,blackthorn,runic,cadShield,ancile,ichaival,atalantas,silverbranch,obow,failnot,windDemon,shadowsteel,goldenBlade,scs,hastenedKatana,serrated,rangdas,empty]
  69.  
  70.  
  71. physicalStarters = [bumbasSpear,mhb,empty]
  72.  
  73. physicalItemsNames = []
  74. for i in physicalItems:
  75.     physicalItemsNames.append(i.name)
  76. physicalItemsNames.append(" ")
  77.  
  78. physicalStarterNames = []
  79. for i in physicalStarters:
  80.     physicalStarterNames.append(i.name)
  81. physicalStarterNames.append(" ")
  82.  
  83. def CalculateDamage():
  84.     physicalItems = [exe,qins,asi,titansBane,beatstick,jotunnsWrath,jotunnsVigor,jotunnsFerocity,crusher,trans,hydras,heartseeker,dominance,deathbringer,envenomedDeathbringer,maliciousDeathbringer,rage,soulEater,devos,bloodforge,frostbound,runeforge,sledge,blackthorn,runic,cadShield,ancile,ichaival,atalantas,silverbranch,obow,failnot,windDemon,shadowsteel,goldenBlade,scs,hastenedKatana,serrated,rangdas,empty]
  85.     requiredItems = []
  86.  
  87.     if(starterVariable.get()!=" "):
  88.         for i in physicalStarters:
  89.             if i.name == starterVariable.get():
  90.                 requiredItems.append(i)
  91.  
  92.  
  93.     if(requiredItems1Variable.get()!=" "):
  94.         for i in physicalItems:
  95.             if i.name == requiredItems1Variable.get():
  96.                 requiredItems.append(i)
  97.                 if i.name != "Empty":
  98.                     physicalItems.remove(i)
  99.  
  100.     if(requiredItems2Variable.get()!=" "):
  101.         for i in physicalItems:
  102.             if i.name == requiredItems2Variable.get():
  103.                 requiredItems.append(i)
  104.                 if i.name != "Empty":
  105.                     physicalItems.remove(i)
  106.  
  107.     if(requiredItems3Variable.get()!=" "):
  108.         for i in physicalItems:
  109.             if i.name == requiredItems3Variable.get():
  110.                 requiredItems.append(i)
  111.                 if i.name != "Empty":
  112.                     physicalItems.remove(i)
  113.  
  114.     if(requiredItems4Variable.get()!=" "):
  115.         for i in physicalItems:
  116.             if i.name == requiredItems4Variable.get():
  117.                 requiredItems.append(i)
  118.                 if i.name != "Empty":
  119.                     physicalItems.remove(i)
  120.  
  121.     if(requiredItems5Variable.get()!=" "):
  122.         for i in physicalItems:
  123.             if i.name == requiredItems5Variable.get():
  124.                 requiredItems.append(i)
  125.                 if i.name != "Empty":
  126.                     physicalItems.remove(i)
  127.  
  128.     allbuilds =combinations(physicalItems, 6 - len(requiredItems))
  129.  
  130.     buildSorterBuilds = ["blank","blank"]
  131.     buildSorterDamage = [0,9999999999]
  132.     for k in allbuilds:
  133.         build = requiredItems + list(k)
  134.  
  135.         power = 0
  136.         AS = 1
  137.         health = 2000
  138.         mana = 1000
  139.         cdr = 0
  140.         lifesteal = 0
  141.         flatPen = 0
  142.         percentPen = 0
  143.         totalGold = 0
  144.         globalMulti = 1
  145.         transBool = False
  146.         silverbranchBool = False
  147.         crusherBool = False
  148.         titansBanePen = 0
  149.         heartseekerBool = False
  150.         mhbBool = False
  151.         katanasBool = True
  152.         jotunns = 0
  153.         deathbringers = 0
  154.  
  155.  
  156.         for i in build:
  157.             power = power + i.power
  158.             health = health + i.health
  159.             mana = mana + i.mana
  160.             cdr = cdr + i.cdr
  161.             lifesteal = lifesteal + i.lifesteal
  162.             flatPen = flatPen + i.flatPen
  163.             percentPen = percentPen + i.percentPen
  164.             totalGold = totalGold + i.gold
  165.             AS = 1 + i.attackSpeed
  166.  
  167.             if i.name == "Transcendance":
  168.                 transBool = True
  169.  
  170.             elif i.name == "Rangda's Mask" and rangdasPassiveVariable.get():
  171.                 globalMulti += 0.15
  172.  
  173.             elif i.name == "Runeforged Hammer" and runeforgePassiveVariable.get():
  174.                 globalMulti += 0.2
  175.  
  176.             elif i.name == "Silverbranch Bow":
  177.                 silverbranchBool = True
  178.  
  179.             elif i.name == "Crusher":
  180.                 crusherBool = True
  181.  
  182.             elif i.name == "Ichaival" and ichaivalPassiveVariable.get():
  183.                 power += 65
  184.  
  185.             elif i.name == "Titan's Bane" and titansBanePassiveVariable.get():
  186.                 titansBanePen = 0.2
  187.  
  188.             elif i.name == "Heartseeker":
  189.                 heartseekerBool = True
  190.  
  191.             elif i.name == "Manikin's Hidden Blade":
  192.                 mhbBool = True
  193.  
  194.             elif i.name == "Jotunn's Ferocity" and ferocityPassiveVariable.get():
  195.                 globalMulti += 0.2
  196.  
  197.             elif katanasEnabledVariable.get() == False:
  198.                 if i.name == "Golden Blade" or i.name == "Stone Cutting Sword" or i.name == "Hastened Katana" or i.name == "Serrated Edge":
  199.                     katanasBool = False
  200.  
  201.             if i.name == "Jotunn's Wrath" or i.name == "Jotunn's Ferocity" or i.name == "Jotunn's Vigor":
  202.                 jotunns += 1
  203.  
  204.             if i.name == "Deathbringer" or i.name == "Envenomed Deathbringer" or i.name == "Malicious Deathbringer":
  205.                 deathbringers += 1
  206.  
  207.  
  208.  
  209.  
  210.         if percentPen > 0.4:
  211.             percentPen = 0.4
  212.         if flatPen > 50:
  213.             flatPen = 50
  214.         if cdr > 0.4:
  215.             cdr = 0.4
  216.         if lifesteal > 1:
  217.             lifesteal = 1
  218.  
  219.         if lifesteal >= float(minimumLifeStealEntry.get()) and cdr >=float(minimumCDREntry.get()) and katanasBool and jotunns <= 1 and deathbringers <= 1:
  220.  
  221.             if transBool:
  222.                 power = power + (mana * 0.03)
  223.  
  224.             if AS > 2.5 and silverbranchBool:
  225.               power = power + (AS - 2.5) / 0.01
  226.  
  227.  
  228.  
  229.             target1Damage = (float(baseAbilityDamageEntry.get()) + ((power) * (float(powerScalingEntry.get()))))*min((100/(100+(((float(target1ProtsEntry.get())))*(1-(percentPen + titansBanePen)))-flatPen)),1)
  230.             target2Damage = (float(baseAbilityDamageEntry.get()) + ((power) * (float(powerScalingEntry.get()))))*min((100/(100+(((float(target2ProtsEntry.get())))*(1-(percentPen + titansBanePen)))-flatPen)),1)
  231.  
  232.             if crusherBool:
  233.                 target1Damage += (20 + ((power) * (0.15)))*min((100/(100+(((float(target1ProtsEntry.get())))*(1-(percentPen)))-flatPen)),1)
  234.                 target2Damage += (20 + ((power) * (0.15)))*min((100/(100+(((float(target2ProtsEntry.get())))*(1-(percentPen)))-flatPen)),1)
  235.  
  236.             if heartseekerBool:
  237.                 if power < 200:
  238.                     heartseekerPercent = 3
  239.                 elif power > 400:
  240.                     heartseekerPercent = 6
  241.                 else:
  242.                     heartseekerPercent = (3/200) * power
  243.  
  244.                 target1Damage = target1Damage + ((float(target1HealthEntry.get())*(heartseekerPercent/100)) * min((100/(100+(((float(target1ProtsEntry.get())))*(1-percentPen)-flatPen))),1))
  245.                 target2Damage = target2Damage + ((float(target2HealthEntry.get())*(heartseekerPercent/100)) * min((100/(100+(((float(target2ProtsEntry.get())))*(1-percentPen)-flatPen))),1))
  246.  
  247.             if mhbBool:
  248.                 target1Damage = target1Damage + ((float(target1HealthEntry.get())*(0.2)) * min((100/(100+(((float(target1ProtsEntry.get())))*(1-percentPen)-flatPen))),1))
  249.                 target2Damage = target2Damage + ((float(target2HealthEntry.get())*(0.2)) * min((100/(100+(((float(target2ProtsEntry.get())))*(1-percentPen)-flatPen))),1))
  250.  
  251.  
  252.             target1Damage *= globalMulti
  253.             target2Damage *= globalMulti
  254.  
  255.             if target1Damage >= float(minimumTarget1DamageEntry.get()) and target2Damage >= float(minimumTarget2DamageEntry.get()):
  256.                 if target1SortVariable.get():
  257.                     string = ""
  258.                     for i in build:
  259.                         string = string + i.name + ", "
  260.                     string = string + "\nTarget 1 Damage: " + str(round(target1Damage,2)) + " Target 2 Damage: " + str(round(target2Damage,2))+"\n"
  261.  
  262.                     if len(buildSorterBuilds) == 2:
  263.                         buildSorterBuilds.insert(1,string)
  264.                         buildSorterDamage.insert(1,target1Damage)
  265.  
  266.  
  267.                     else:
  268.                         i = round(len(buildSorterBuilds)/2) - 1
  269.                         loop = True
  270.                         while(loop):
  271.                             if(target1Damage < buildSorterDamage[i-1]):
  272.                                 i -= 1
  273.                             elif(target1Damage > buildSorterDamage[i]):
  274.                                 i += 1
  275.                             else:
  276.                                 loop = False
  277.                                 buildSorterBuilds.insert(i,string)
  278.                                 buildSorterDamage.insert(i,target1Damage)
  279.  
  280.                                 if len(buildSorterBuilds) > float(buildLimitForSorterEntry.get()) + 2:
  281.                                     del buildSorterBuilds[1]
  282.                                     del buildSorterDamage[1]
  283.  
  284.                 elif target2SortVariable.get():
  285.                     string = ""
  286.                     for i in build:
  287.                         string = string + i.name + ", "
  288.                     string = string + "\nTarget 1 Damage: " + str(round(target1Damage,2)) + " Target 2 Damage: " + str(round(target2Damage,2))+"\n"
  289.  
  290.                     if len(buildSorterBuilds) == 2:
  291.                         buildSorterBuilds.insert(1,string)
  292.                         buildSorterDamage.insert(1,target2Damage)
  293.  
  294.  
  295.                     else:
  296.                         i = round(len(buildSorterBuilds)/2) - 1
  297.                         loop = True
  298.                         while(loop):
  299.                             if(target2Damage < buildSorterDamage[i-1]):
  300.                                 i -= 1
  301.                             elif(target2Damage > buildSorterDamage[i]):
  302.                                 i += 1
  303.                             else:
  304.                                 loop = False
  305.                                 buildSorterBuilds.insert(i,string)
  306.                                 buildSorterDamage.insert(i,target2Damage)
  307.  
  308.                                 if len(buildSorterBuilds) > float(buildLimitForSorterEntry.get()) + 2:
  309.                                     del buildSorterBuilds[1]
  310.                                     del buildSorterDamage[1]
  311.  
  312.                 else:
  313.                     for i in build:
  314.                         print(i.name, end = ", ")
  315.                     print("\nTarget 1 Damage:" , round(target1Damage,2) , " Target 2 Damage:" , round(target2Damage,2),"\n")
  316.  
  317.     if target1SortVariable.get() or target2SortVariable.get():
  318.         del buildSorterBuilds[0]
  319.         del buildSorterBuilds[-1]
  320.  
  321.         for i in buildSorterBuilds:
  322.             print(i)
  323.  
  324.     print("-------------------------------------------------------")
  325.  
  326. def min(x, y):
  327.     if x<y:
  328.         return x
  329.     return y
  330.  
  331.  
  332. ############################################################################################
  333.  
  334. root = Tk()
  335. root.title("Generic Ability Damage")
  336.  
  337. button = Button(root, text="Run Program", padx=25, command = CalculateDamage)
  338. button.grid(row = 0, column = 0)
  339.  
  340. baseAbilityDamageLabel = Label(root,text="Base Ability Damage:")
  341. baseAbilityDamageLabel.grid(row = 1, column = 0)
  342. baseAbilityDamageEntry = Entry(root, width=5)
  343. baseAbilityDamageEntry.grid(row = 1, column = 1)
  344. baseAbilityDamageEntry.insert(0,"0")
  345.  
  346. emptyLabel1 = Label(root,text="     ")
  347. emptyLabel1.grid(row = 1, column = 2)
  348.  
  349. powerScalingLabel = Label(root,text="Power Scaling:")
  350. powerScalingLabel.grid(row = 1, column = 3)
  351. powerScalingEntry = Entry(root, width=5)
  352. powerScalingEntry.grid(row = 1, column = 4)
  353. powerScalingEntry.insert(0,"0")
  354.  
  355. itemsLabel = Label(root,text="Required Items:")
  356. itemsLabel.grid(row = 2, column = 0)
  357.  
  358. requiredItems1Variable = StringVar()
  359. requiredItems1Variable.set(" ")
  360. requiredItems1 = OptionMenu(root,  requiredItems1Variable, *physicalItemsNames)
  361. requiredItems1.grid(row=2, column=1)
  362.  
  363. requiredItems2Variable = StringVar()
  364. requiredItems2Variable.set(" ")
  365. requiredItems2 = OptionMenu(root,  requiredItems2Variable, *physicalItemsNames)
  366. requiredItems2.grid(row=2, column=2)
  367.  
  368. requiredItems3Variable = StringVar()
  369. requiredItems3Variable.set(" ")
  370. requiredItems3 = OptionMenu(root,  requiredItems3Variable, *physicalItemsNames)
  371. requiredItems3.grid(row=2, column=3)
  372.  
  373. requiredItems4Variable = StringVar()
  374. requiredItems4Variable.set(" ")
  375. requiredItems4 = OptionMenu(root,  requiredItems4Variable, *physicalItemsNames)
  376. requiredItems4.grid(row=2, column=4)
  377.  
  378. requiredItems5Variable = StringVar()
  379. requiredItems5Variable.set(" ")
  380. requiredItems5 = OptionMenu(root,  requiredItems5Variable, *physicalItemsNames)
  381. requiredItems5.grid(row=2, column=5)
  382.  
  383. starterLabel = Label(root,text="Starter Item:")
  384. starterLabel.grid(row = 3, column = 0)
  385.  
  386. starterVariable = StringVar()
  387. starterVariable.set(" ")
  388. starter = OptionMenu(root,  starterVariable, *physicalStarterNames)
  389. starter.grid(row=3, column=1)
  390.  
  391.  
  392. target1ProtsLabel = Label(root,text="Target 1 Protections:")
  393. target1ProtsLabel.grid(row = 4, column = 0)
  394. target1ProtsEntry = Entry(root, width=5)
  395. target1ProtsEntry.grid(row = 4, column = 1)
  396. target1ProtsEntry.insert(0,"60")
  397.  
  398. emptyLabel2 = Label(root,text="     ")
  399. emptyLabel2.grid(row = 4, column = 2)
  400.  
  401. target1HealthLabel = Label(root,text="Target 1 Health:")
  402. target1HealthLabel.grid(row = 4, column = 3)
  403. target1HealthEntry = Entry(root, width=5)
  404. target1HealthEntry.grid(row = 4, column = 4)
  405. target1HealthEntry.insert(0,"2000")
  406.  
  407.  
  408. target2ProtsLabel = Label(root,text="Target 2 Protections:")
  409. target2ProtsLabel.grid(row = 5, column = 0)
  410. target2ProtsEntry = Entry(root, width=5)
  411. target2ProtsEntry.grid(row = 5, column = 1)
  412. target2ProtsEntry.insert(0,"200")
  413.  
  414. emptyLabel3 = Label(root,text="     ")
  415. emptyLabel3.grid(row = 5, column = 2)
  416.  
  417. target2HealthLabel = Label(root,text="Target 2 Health:")
  418. target2HealthLabel.grid(row = 5, column = 3)
  419. target2HealthEntry = Entry(root, width=5)
  420. target2HealthEntry.grid(row = 5, column = 4)
  421. target2HealthEntry.insert(0,"3000")
  422.  
  423. minimumTarget1DamageLabel = Label(root,text="Minimum Target 1 Damage:")
  424. minimumTarget1DamageLabel.grid(row = 6, column = 0)
  425. minimumTarget1DamageEntry = Entry(root, width=5)
  426. minimumTarget1DamageEntry.grid(row = 6, column = 1)
  427. minimumTarget1DamageEntry.insert(0,"0")
  428.  
  429. emptyLabel4 = Label(root,text="     ")
  430. emptyLabel4.grid(row = 6, column = 2)
  431.  
  432. minimumTarget2DamageLabel = Label(root,text="Minimum Target 2 Damage:")
  433. minimumTarget2DamageLabel.grid(row = 6, column = 3)
  434. minimumTarget2DamageEntry = Entry(root, width=5)
  435. minimumTarget2DamageEntry.grid(row = 6, column = 4)
  436. minimumTarget2DamageEntry.insert(0,"0")
  437.  
  438. minimumCDRLabel = Label(root,text="Minimum Cooldown Reduction:")
  439. minimumCDRLabel.grid(row = 7, column = 0)
  440. minimumCDREntry = Entry(root, width=5)
  441. minimumCDREntry.grid(row = 7, column = 1)
  442. minimumCDREntry.insert(0,"0")
  443.  
  444. emptyLabel5 = Label(root,text="     ")
  445. emptyLabel5.grid(row = 7, column = 2)
  446.  
  447. minimumLifeStealLabel = Label(root,text="Minimum Lifesteal:")
  448. minimumLifeStealLabel.grid(row = 7, column = 3)
  449. minimumLifeStealEntry = Entry(root, width=5)
  450. minimumLifeStealEntry.grid(row = 7, column = 4)
  451. minimumLifeStealEntry.insert(0,"0")
  452.  
  453. disablePassivesLabel = Label(root,text="Enable/Disable Item Passives:")
  454. disablePassivesLabel.grid(row = 8, column = 0)
  455.  
  456. rangdasPassiveVariable = BooleanVar()
  457. rangdasPassiveVariable.set(False)
  458. rangdasPassiveCheckBox = Checkbutton(root, text="Rangda's Mask", variable = rangdasPassiveVariable)
  459. rangdasPassiveCheckBox.grid(row = 8, column = 1)
  460.  
  461. runeforgePassiveVariable = BooleanVar()
  462. runeforgePassiveVariable.set(False)
  463. runeforgePassiveCheckBox = Checkbutton(root, text="Runeforged Hammer", variable = runeforgePassiveVariable)
  464. runeforgePassiveCheckBox.grid(row = 8, column = 2)
  465.  
  466. ichaivalPassiveVariable = BooleanVar()
  467. ichaivalPassiveVariable.set(False)
  468. ichaivalPassiveCheckBox = Checkbutton(root, text="Ichaival", variable = ichaivalPassiveVariable)
  469. ichaivalPassiveCheckBox.grid(row = 8, column = 3)
  470.  
  471. titansBanePassiveVariable = BooleanVar()
  472. titansBanePassiveVariable.set(True)
  473. titansBanePassiveCheckBox = Checkbutton(root, text="Titan's Bane", variable = titansBanePassiveVariable)
  474. titansBanePassiveCheckBox.grid(row = 8, column = 4)
  475.  
  476. ferocityPassiveVariable = BooleanVar()
  477. ferocityPassiveVariable.set(False)
  478. ferocityPassiveCheckBox = Checkbutton(root, text="Jotunn's Ferocity", variable = ferocityPassiveVariable)
  479. ferocityPassiveCheckBox.grid(row = 8, column = 5)
  480.  
  481. katanasEnabledVariable = BooleanVar()
  482. katanasEnabledVariable.set(False)
  483. katanasEnabledCheckBox = Checkbutton(root, text="Katana Tree", variable = katanasEnabledVariable)
  484. katanasEnabledCheckBox.grid(row = 8, column = 6)
  485.  
  486. target1SortVariable = BooleanVar()
  487. target1SortVariable.set(False)
  488. target1SortCheckBox = Checkbutton(root, text="Sort Builds By Damage to Target 1", variable = target1SortVariable)
  489. target1SortCheckBox.grid(row = 9, column = 1)
  490.  
  491. target2SortVariable = BooleanVar()
  492. target2SortVariable.set(False)
  493. target2SortCheckBox = Checkbutton(root, text="Sort Builds By Damage to Target 2", variable = target2SortVariable)
  494. target2SortCheckBox.grid(row = 9, column = 3)
  495.  
  496. buildLimitForSorterLabel = Label(root,text="Number of Builds Displayed When Sorting:")
  497. buildLimitForSorterLabel.grid(row = 10, column = 0)
  498. buildLimitForSorterEntry = Entry(root, width=5)
  499. buildLimitForSorterEntry.grid(row = 10, column = 1)
  500. buildLimitForSorterEntry.insert(0,"20")
  501.  
  502.  
  503. root.mainloop()
  504.  
Advertisement
Add Comment
Please, Sign In to add comment