Advertisement
Guest User

twins rotations

a guest
Oct 18th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.33 KB | None | 0 0
  1. """
  2. README
  3. requirements: python3 interpreter (either installed or online)
  4. to run (python 3 installed): py -3 twins_test.py
  5. to run (online interpreter): https://repl.it/languages/python3
  6.  
  7. DAMAGE
  8. note: +- 5k is capped at 15k with damage boosts.
  9. damage is max hit damage on lumbridge dummy with following equipment:
  10. - stats: 118 (supreme overload)
  11. - prayer: no prayer
  12. - armour: no armour
  13. - weapon: t90 (scyte) / t92 (khopesh)
  14. """
  15. # ability damage
  16. sever = deci = cleave = destroy = 3421.0
  17. barge = 4066.0
  18. quake = 3898.0
  19. assault = 3882.0
  20. assault_under_dhally = 3021
  21. flurry_single = 2629.0
  22. flurry_multi = 1710.0
  23. cane_1 = 3907.0
  24. cane_2 = 3089.0
  25. frenzy = [3298.0, 3648.0, 3999.0, 4349.0]
  26. meteor = 5804
  27.  
  28. # special attack damage
  29. gmaul = 2322.0
  30. vls = 5278.0
  31. korasi = 5224.0
  32. dragon_2h = 1487.0
  33. sup_vesta_spear = 1432.0
  34. dhalbert = [2567.0, 2567.0]
  35. dds = [2600, 2600]  # todo: didn't check actual damage
  36.  
  37. """
  38. ROTATIONS
  39. note: korasi rotations are commented/not used due a bug where korasi is guaranteed to mis on 1 twin (even with ingenuity).
  40. note: in reality, dhally rotations are only slightly better than cleave as you're likely to lose 1 AS proc
  41. """
  42. # current record used for damage comparison (1.1 modifier is vuln)
  43. current_rec = (barge) + (cleave * 1.1 + cleave) + (quake * 1.1 + quake) + (assault * 1.1 * 4) + (flurry_single * 1.1 * 2) + (deci * 1.1) + (cleave * 1.1 + cleave) + (cane_1 * 1.1 + cane_2 * 1.1 + cane_1)
  44. print('current rec: {}'.format(current_rec))
  45.  
  46.  
  47.  
  48. # 12s rots
  49. rot_12s_destroy = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (meteor * 2) + (cleave * 2) + (destroy * 4) + deci
  50. rot_12s_frenzy = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + sum(frenzy) + deci
  51. rot_12s_flurry_cleave = (quake * 2) + (assault * 4) + (cleave * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (flurry_single * 4) + vls
  52. rot_12s_flurry_dhally = (quake * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (flurry_single * 4) + vls
  53. pog_rot_cleave = (quake * 2) + (flurry_single + (flurry_multi * 2 * 3)) + (cleave * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + vls
  54. pog_rot_dhally = (quake * 2) + (flurry_single + (flurry_multi * 2 * 3)) + (sum(dhalbert) * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + vls
  55. potential_walk_rng_pog_rot_dhally = (quake * 2) + (flurry_single + (flurry_multi * 2 * 3)) + (sum(dhalbert) * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + (cleave * 2)
  56. the_dream = (quake * 2) + (sum(dhalbert) * 2) + (flurry_multi * 2 * 4) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + (cleave * 2)
  57.  
  58. experiment = (sever) + (assault * 4) + (flurry_multi * 2 * 2) + (quake * 2) + (cleave * 2) + (destroy * 4) + vls
  59. experiment_revenge = (sever * 1.3) + (((assault * 2) * 1.3) + assault * 2) + ((flurry_multi * 2 * 2) * 1.3) + (quake * 2) + (cleave * 2) + (destroy * 4) + vls
  60. experiment_revenge2 = (sever * 1.3) + ((assault * 4) * 1.3) + ((flurry_multi * 2 * 4) * 1.3) + (cleave * 2) + (destroy * 4) + vls
  61. # print((pog_rot_cleave - current_rec) / current_rec * 100)
  62. # print(experiment_revenge2)
  63. print('12s revenge: {}'.format(experiment_revenge))
  64. # easy_12s = (quake * 2) + (cane_1 * 2 + cane_2) + (flurry_multi * 2 * 4) + (meteor * 2) + (cleave * 2) + (assault * 4) + vls
  65. # print(easy_12s)
  66.  
  67. print('12s destroy: {}'.format(rot_12s_destroy))
  68. print('12s frenzy: {}'.format(rot_12s_frenzy))
  69. print('12s flurry cleave: {}'.format(rot_12s_flurry_cleave))
  70. print('12s flurry dhally: {}'.format(rot_12s_flurry_dhally))
  71. print('12s pog rot cleave: {}'.format(pog_rot_cleave))
  72. print('12s pog rot dhally: {}'.format(pog_rot_dhally))
  73. print('12s potential walk rng pog rot dhally: {}'.format(potential_walk_rng_pog_rot_dhally))
  74. print('12s the dream: {}'.format(the_dream))
  75.  
  76.  
  77. # 8s rotations (based on meteor rotations)
  78. # rot_8s1 = (quake * 2) + (assault * 4) + (korasi * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls + gmaul)
  79. rot_8s_flurry = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls + gmaul + gmaul)
  80. rot_8s_dhally = (quake * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (vls + gmaul)
  81. print('8s flurry: {}'.format(rot_8s_flurry))
  82. print('8s dhally: {}'.format(rot_8s_dhally))
  83.  
  84. # 8s practice rotations (require no meteor setup)
  85. practice_rot_flurry = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls + gmaul)
  86. # practice_rot2 = (quake * 2) + (assault * 4) + (korasi * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls)
  87. practice_rot_dhally = (quake * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (deci)
  88. print('practice rot 1 (flurry + gmaul): {}'.format(practice_rot_flurry))
  89. print('practice rot 3 (dhally): {}'.format(practice_rot_dhally))
  90.  
  91. # 8s meteor rot require meteor setup but NO MINIONS
  92. meteor_8s_rot_dhally = (meteor * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (quake * 2) + (cane_1 * 2 + cane_2) + (vls)
  93. meteor_8s_rot_cleave = (meteor * 2) + (assault * 4) + (cleave * 2) + (quake * 2) + (cane_1 * 2 + cane_2) + (vls + gmaul)
  94. print('meteor 8s rot 1 (dhally): {}'.format(meteor_8s_rot_dhally))
  95. print('meteor 8s rot 2 (cleave): {}'.format(meteor_8s_rot_cleave))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement