Advertisement
Guest User

Untitled

a guest
Feb 10th, 2021
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 15.26 KB | None | 0 0
  1. # hp is 0 def is 1 numarti/sub refer to num of hp main/sub not incl nat sub
  2. # ehp = effective hp
  3. # damage reduction BANNED AND IGNORED(beidou q, xingqiu e, c6 jean q, c4 mc)
  4. # teamcomp c1 zhong bei razor but with DR stack its c6 jean bei xingqiu razor which is cheating LOL
  5. # what happens over 100#  DR who knows as of the time this was made
  6. # even though beidou c1 requires ult to proc the shield we're ignoring the ult DR LOL
  7.  
  8. # setscreen ("graphics: max; 2000")
  9. level = 100.0
  10. # enemy level
  11. bell = 0.0
  12. bellBool = False
  13. razor = False
  14.  
  15. mostEHP = 0.0
  16. finalEHP = 0.0
  17.  
  18. choice = 7
  19.  
  20. arti = 0.0
  21. defSubs = 0
  22. defArtis = 0
  23.  
  24. numArti = 0.0
  25. numSub = 0.0
  26. # 1/ dmg multi = ehp multi. 1.4 is cap, easily obtained, thundersoother and electro pot.
  27. resX = 1.4 * 4 + 1
  28. defX = 0.0
  29.  
  30. baseHP = 11962.0
  31. baseDEF = 751.0
  32. # shield value calced in spreadsheet
  33. shield = 8996.376
  34. shield = shield * 2.5
  35. bolideShield = shield * 2.0
  36. # electro shield absorb 2.5, all multiplicative, 2.4 = 1 + 0.25 + 0.4 + 0.35 from r5 unforged, zhong a2 prestacked, bolide, moon pie respectively
  37.  
  38. # razorHP is razor hp and beidou shield hp
  39. razorHP = 0.0
  40. razorDEF = 0.0
  41.  
  42. HPArtis = 0
  43. maxDEFSubs = 0
  44. maxHPSubs = 0
  45. leftoverHP = 0
  46. leftoverDEF = 0
  47. HPSubs = 0
  48.  
  49. flatHP = 0
  50. flatDEF = 0
  51.  
  52. maxHP = 0
  53. maxDEF = 0
  54.  
  55. fourHP = 0
  56. fourDEF = 0
  57. flower = 0.0
  58. fourFlower = 0
  59. fourFeather = 0
  60. fourFF = 0
  61. fourFlatDEF = 0
  62. fourFlatHP = 0
  63. maxFlatDEF = 0
  64. maxFlatHP = 0
  65.  
  66. miracle = True
  67. zhong = True
  68.  
  69. unforged = False
  70. wblind = 0.0
  71.  
  72. beiRES = 0.0
  73. # bolide
  74. gonext = False
  75.  
  76. def higher(d, e, f, g, tmp):
  77.     global mostEHP
  78.     global choice
  79.     global numArti
  80.     global numSub
  81.     if finalEHP > mostEHP:
  82.  
  83.         mostEHP = finalEHP
  84.  
  85.         numArti = d
  86.         numSub = e
  87.  
  88.         unforged = False
  89.         bellBool = False
  90.         razor = False
  91.         if f == 1:
  92.             unforged = True
  93.             razor = True
  94.  
  95.         elif f == 0:
  96.             razor = True
  97.  
  98.         elif f == 2:
  99.             unforged = True
  100.  
  101.         elif f == 3:
  102.             pass
  103.         elif f == 4:
  104.             bellBool = True
  105.         zhong = True
  106.         miracle = False
  107.         if f > 1:
  108.             if g == 0:
  109.                 miracle = False
  110.                 zhong = True
  111.             elif g == 1:
  112.                 miracle = False
  113.                 zhong = False
  114.             elif g == 2:
  115.                 miracle = True
  116.                 zhong = True
  117.             else:
  118.                 miracle = True
  119.                 zhong = False
  120.        
  121.         choice = tmp
  122.         #  if numArti == 3 and numSub = 21:
  123.         #      print(maxHPSubs)
  124.         #      print(maxHP)
  125.         #      print(HPSubs)
  126.         #      print(flatHP)
  127.         #      print(leftoverHP)
  128.         #      print(fourFlatHP)
  129.         #      print("d")
  130.         #      print(defSubs)
  131.         #      print(flatDEF)
  132.         #      print(leftoverDEF)
  133.         #      print((defSubs + HPArtis + (2 - fourFF)))
  134.         #      print(fourDEF)
  135.         #      print(fourFF)
  136.         #      print("t")
  137.         #      print(shield)
  138.         #      print(resX)
  139.         #      print(defX)
  140.         #      print(razorHP)
  141.         #      print(razorHP - shield)
  142.         #      print(shield)
  143.         #      print(razorDEF)
  144.         #      print(" ")
  145.  
  146. level = int(input("level\n"))
  147.  
  148. # fileName = "beidouEHP.txt"
  149. # fileNo = 7
  150. # open : fileNo, fileName, put
  151.  
  152. while True:
  153.     level += 1
  154.  
  155.     mostEHP = 0
  156.  
  157.     for k in range(0, 5):
  158.  
  159.         if k == 1:
  160.             shield = 8996.376 * 2.5
  161.             resX = 6.6
  162.             bolideShield = 2.4
  163.             wblind = 0.0
  164.             baseHP = 11962.0
  165.             baseDEF = 751.0
  166.         elif k == 0:
  167.             shield = 8996.376 * 2.5
  168.             resX = 6.6
  169.             bolideShield = 2.0
  170.             wblind = 0.997
  171.             baseHP = 11962.0
  172.             baseDEF = 751.0
  173.         elif k == 2:
  174.             shield = 0
  175.             resX = 4.2
  176.             bolideShield = 2.4
  177.             wblind = 0.0
  178.             baseHP = 13050.0
  179.             baseDEF = 648.0
  180.             bell = 0.0
  181.         elif k == 3:
  182.             shield = 0
  183.             resX = 4.2
  184.             bolideShield = 2.0
  185.             wblind = 0.997
  186.             baseHP = 13050.0
  187.             baseDEF = 648.0
  188.             bell = 0.0
  189.         elif k == 4:
  190.             shield = 0
  191.             resX = 4.2
  192.             bolideShield = 2.0
  193.             wblind = 0.0
  194.             baseHP = 13050.0
  195.             baseDEF = 648.0
  196.             bell = 0.413
  197.         for a in range(0, 4):
  198.             defArtis = 3 - a
  199.             # iterate through all possibility (1 2 or 3 hp, and corresponding def)
  200.             HPArtis = a
  201.             for i in range(0, 26):
  202.  
  203.                 if k < 2:
  204.                     defSubs = 25 - i
  205.                     HPSubs = i
  206.  
  207.                     maxHPSubs = 5 * (5 - HPArtis)
  208.                     maxDEFSubs = 5 * (5 - defArtis)
  209.  
  210.                     leftoverDEF = 0
  211.                     leftoverHP = 0
  212.                     if HPSubs > maxHPSubs:
  213.                         leftoverHP = HPSubs - maxHPSubs
  214.                         HPSubs = maxHPSubs
  215.                     if defSubs > maxDEFSubs:
  216.                         leftoverDEF = defSubs - maxDEFSubs
  217.                         defSubs = maxDEFSubs
  218.                     razorHP = baseHP * (1 + 0.466 * HPArtis + 0.058 * (HPSubs + (5 - HPArtis)))
  219.  
  220.                     razorHP += 4780 + 299 * (leftoverHP + 4)
  221.  
  222.                     razorDEF = baseDEF * (1 + 0.583 * defArtis + 0.073 * (defSubs + (5 - defArtis)) + wblind)
  223.  
  224.                     razorDEF += 235 + 23 * (leftoverDEF + 5)
  225.  
  226.                     shield = shield * bolideShield
  227.  
  228.                     razorHP += shield
  229.                     # 1/ 1 - damage reduction, gives def ehp multiplier from wiki formula
  230.                     defX = 1 / (1 - razorDEF / (razorDEF + 500 + 5 * level))
  231.                     finalEHP = defX * razorHP * resX
  232.                     # how busted would damage reduction be its just a 4th multiplier
  233.                     # like xq 4th slot u would actually enter 1 billion + EHP
  234.                     # c6 jean and youre immortal
  235.  
  236.                     higher (a, i, k, 99, 99)
  237.                     shield = 8996.376 * 2.5
  238.                 if k > 1:
  239.  
  240.                     for p in range(0, 4):
  241.  
  242.                         # bolidezhong, bolidening, miraclezhong, miraclening
  243.                         if k == 2:
  244.                             bolideShield = 2.4
  245.                         else:
  246.                             bolideShield = 2
  247.                        
  248.                         resX = 4.2
  249.                         if p == 0:
  250.                             pass
  251.                         elif p == 1:
  252.                             bolideShield -= 0.25
  253.                             resX += 0.4
  254.                         elif p == 2:
  255.                             resX += 0.8
  256.                             bolideShield -= 0.4
  257.                         else:
  258.                             bolideShield -= 0.65
  259.                             resX += 1.2
  260.                         if p < 2:
  261.                             defSubs = 25 - i
  262.                             HPSubs = i
  263.  
  264.                             maxHPSubs = 5 * (5 - HPArtis)
  265.                             maxDEFSubs = 5 * (5 - defArtis)
  266.  
  267.                             leftoverDEF = 0
  268.                             leftoverHP = 0
  269.                             if HPSubs > maxHPSubs:
  270.                                 leftoverHP = HPSubs - maxHPSubs
  271.                                 HPSubs = maxHPSubs
  272.                             if defSubs > maxDEFSubs:
  273.                                 leftoverDEF = defSubs - maxDEFSubs
  274.                                 defSubs = maxDEFSubs
  275.                             razorHP = baseHP * (1 + bell + 0.466 * HPArtis + 0.058 * (HPSubs + (5 - HPArtis)))
  276.  
  277.                             razorHP += 4780 + 299 * (leftoverHP + 4)
  278.  
  279.                             razorDEF = baseDEF * (1 + 0.583 * defArtis + 0.073 * (defSubs + (5 - defArtis)) + wblind)
  280.  
  281.                             razorDEF += 235 + 23 * (leftoverDEF + 5)
  282.  
  283.                             shield = 2.5 * (0.306 * razorHP + 3813)
  284.  
  285.                             shield = shield * bolideShield
  286.  
  287.                             razorHP += shield
  288.                             # 1/ 1 - damage reduction, gives def ehp multiplier from wiki formula
  289.                             defX = 1 / (1 - razorDEF / (razorDEF + 500 + 5 * level))
  290.                             finalEHP = defX * razorHP * resX
  291.  
  292.                             # how busted would damage reduction be its just a 4th multiplier
  293.                             # like xq 4th slot u would actually enter 1 billion + EHP
  294.                             # c6 jean and youre immortal
  295.  
  296.                             higher (a, i, k, p, 99)
  297.  
  298.                         elif i < 22:
  299.                             # q, 4* choice. flower/feather, feather/def, feather/hp, def/def, hp/hp, hp/def
  300.                             for q in range(1, 7):
  301.  
  302.                                 defSubs = 21 - i
  303.                                 HPSubs = i
  304.                                 flatHP = 0
  305.                                 flatDEF = 0
  306.  
  307.                                 leftoverDEF = 0
  308.                                 leftoverHP = 0
  309.                                 fourHP = 0
  310.                                 fourDEF = 0
  311.                                 flower = 4780
  312.                                 gonext = True
  313.                                 fourFlatDEF = 0
  314.                                 fourFlatHP = 0
  315.                                 fourFlower = 0
  316.                                 fourFeather = 0
  317.                                 fourFF = 0
  318.                                 if q == 1:
  319.                                     flower -= 1209
  320.                                     fourHP = 0
  321.                                     fourDEF = 0
  322.                                     fourFlower = 1
  323.                                     fourFeather = 1
  324.                                     gonext = False
  325.                                 elif q == 2:
  326.                                     if defArtis > 0:
  327.                                         gonext = False
  328.                                         fourDEF = 1
  329.                                         fourFeather = 1
  330.                                    
  331.                                 elif q == 3:
  332.                                     if HPArtis > 0:
  333.                                         gonext = False
  334.                                         fourHP = 1
  335.                                         fourFeather = 1
  336.                                    
  337.                                 elif q == 4:
  338.                                     if defArtis > 1:
  339.                                         gonext = False
  340.                                         fourDEF = 2
  341.                                    
  342.                                 elif q == 5:
  343.                                     if HPArtis > 1:
  344.                                         gonext = False
  345.                                         fourHP = 2
  346.                                    
  347.                                 else:
  348.                                     if HPArtis > 0 and defArtis > 0:
  349.                                         gonext = False
  350.                                         fourDEF = 1
  351.                                         fourHP = 1
  352.  
  353.                                 if gonext == False:
  354.                                     fourFF = fourFlower + fourFeather
  355.                                     maxHPSubs = fourDEF * 3 + 5 * (defArtis - fourDEF) + 3 * fourFF + 5 * (2 - fourFF)
  356.                                     maxDEFSubs = fourHP * 3 + 5 * (HPArtis - fourHP) + 3 * fourFF + 5 * (2 - fourFF)
  357.                                     maxHP = 5 * (defArtis - fourDEF) + 5 * (2 - fourFF)
  358.                                     maxDEF = 5 * (HPArtis - fourHP) + 5 * (2 - fourFF)
  359.                                     maxFlatHP = 5 * (3 - fourDEF - fourHP)
  360.                                     maxFlatDEF = 5 * (3 - fourDEF - fourHP)
  361.                                     if HPSubs > maxHPSubs:
  362.                                         flatHP = HPSubs - maxHPSubs
  363.                                         leftoverHP = HPSubs - (flatHP + maxHP)
  364.                                         HPSubs = maxHP
  365.                                         if flatHP > maxFlatHP:
  366.                                             fourFlatHP = flatHP - maxFlatHP
  367.                                             flatHP = maxFlatHP
  368.                                        
  369.                                     elif HPSubs > maxHP:
  370.                                         leftoverHP = HPSubs - maxHP
  371.                                         HPSubs = maxHP
  372.                                     if defSubs > maxDEFSubs:
  373.                                         flatDEF = defSubs - maxDEFSubs
  374.                                         leftoverDEF = defSubs - (flatDEF + maxDEF)
  375.                                         defSubs = maxDEF
  376.                                         if flatDEF > maxFlatDEF:
  377.                                             fourFlatDEF = flatDEF - maxFlatDEF
  378.                                             flatDEF = maxFlatDEF
  379.                                        
  380.                                     elif defSubs > maxDEF:
  381.                                         leftoverDEF = defSubs - maxDEF
  382.                                         defSubs = maxDEF
  383.                                     finalEHP = 0
  384.                                     razorHP = baseHP * (1 + fourHP * 0.348 + 0.466 * (HPArtis - fourHP) + 0.058 * (HPSubs + defArtis + (2 - fourFF) - fourDEF) + 0.047 * (fourDEF + leftoverHP +
  385.                                         fourFF))
  386.  
  387.                                     if flower > 4000:
  388.  
  389.                                         razorHP += flower + 299 * (flatHP + 2) + 239 * (2 + fourFlatHP) # - 180
  390.  
  391.                                     else:
  392.                                         razorHP += flower + 299 * (flatHP + 3) + 239 * (1 + fourFlatHP)  # - 180
  393.                                     razorDEF = baseDEF * (1 + fourDEF * 0.435 + 0.583 * (defArtis - fourDEF) + 0.073 * (defSubs + HPArtis + (2 - fourFF) - fourHP) + 0.058 * (fourHP + leftoverDEF +
  394.                                         fourFF) + wblind)
  395.  
  396.                                     razorDEF += 235 + 23 * (flatDEF + 3) + 19 * (2 + fourFlatDEF)
  397.                                     shield = 2.5 * (0.306 * razorHP + 3813)
  398.  
  399.                                     shield = shield * bolideShield
  400.                                     razorHP += shield
  401.                                     defX = 1 / (1 - razorDEF / (razorDEF + 500 + 5 * level))
  402.                                     finalEHP = defX * razorHP * resX
  403.                                     higher (a, i, k, p, q)
  404.  
  405.     break
  406.     # exit when razor = False
  407.     # print(fileNo, mostEHP)
  408.  
  409. diona = mostEHP * 10 / 9
  410. print("level? ", level)
  411. print(("%7f" % mostEHP).rjust(14), " effective health, HP main stats: ", numArti, ", HP sub stats: ", numSub)
  412. print(("diona? %7f" % diona).rjust(14))
  413. print(" ")
  414. print("razor? ", razor)
  415. print("bell? ", bellBool)
  416. print("unforged? ", unforged)
  417. print("zhong? ", zhong)
  418. print("miracle? ", miracle)
  419. print("4* choice, 1-6. flower/feather, feather/def, feather/hp, def/def, hp/hp, hp/def")
  420. print(choice)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement