Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- README
- requirements: python3 interpreter (either installed or online)
- to run (python 3 installed): py -3 twins_test.py
- to run (online interpreter): https://repl.it/languages/python3
- DAMAGE
- note: +- 5k is capped at 15k with damage boosts.
- damage is max hit damage on lumbridge dummy with following equipment:
- - stats: 118 (supreme overload)
- - prayer: no prayer
- - armour: no armour
- - weapon: t90 (scyte) / t92 (khopesh)
- """
- # ability damage
- sever = deci = cleave = destroy = 3421.0
- barge = 4066.0
- quake = 3898.0
- assault = 3882.0
- assault_under_dhally = 3021
- flurry_single = 2629.0
- flurry_multi = 1710.0
- cane_1 = 3907.0
- cane_2 = 3089.0
- frenzy = [3298.0, 3648.0, 3999.0, 4349.0]
- meteor = 5804
- # special attack damage
- gmaul = 2322.0
- vls = 5278.0
- korasi = 5224.0
- dragon_2h = 1487.0
- sup_vesta_spear = 1432.0
- dhalbert = [2567.0, 2567.0]
- dds = [2600, 2600] # todo: didn't check actual damage
- """
- ROTATIONS
- note: korasi rotations are commented/not used due a bug where korasi is guaranteed to mis on 1 twin (even with ingenuity).
- note: in reality, dhally rotations are only slightly better than cleave as you're likely to lose 1 AS proc
- """
- # current record used for damage comparison (1.1 modifier is vuln)
- 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)
- print('current rec: {}'.format(current_rec))
- # 12s rots
- rot_12s_destroy = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (meteor * 2) + (cleave * 2) + (destroy * 4) + deci
- rot_12s_frenzy = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + sum(frenzy) + deci
- rot_12s_flurry_cleave = (quake * 2) + (assault * 4) + (cleave * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (flurry_single * 4) + vls
- 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
- pog_rot_cleave = (quake * 2) + (flurry_single + (flurry_multi * 2 * 3)) + (cleave * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + vls
- pog_rot_dhally = (quake * 2) + (flurry_single + (flurry_multi * 2 * 3)) + (sum(dhalbert) * 2) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + vls
- 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)
- the_dream = (quake * 2) + (sum(dhalbert) * 2) + (flurry_multi * 2 * 4) + (meteor * 2) + (cane_1 * 2 + cane_2) + (assault * 4) + (cleave * 2)
- experiment = (sever) + (assault * 4) + (flurry_multi * 2 * 2) + (quake * 2) + (cleave * 2) + (destroy * 4) + vls
- experiment_revenge = (sever * 1.3) + (((assault * 2) * 1.3) + assault * 2) + ((flurry_multi * 2 * 2) * 1.3) + (quake * 2) + (cleave * 2) + (destroy * 4) + vls
- experiment_revenge2 = (sever * 1.3) + ((assault * 4) * 1.3) + ((flurry_multi * 2 * 4) * 1.3) + (cleave * 2) + (destroy * 4) + vls
- # print((pog_rot_cleave - current_rec) / current_rec * 100)
- # print(experiment_revenge2)
- print('12s revenge: {}'.format(experiment_revenge))
- # easy_12s = (quake * 2) + (cane_1 * 2 + cane_2) + (flurry_multi * 2 * 4) + (meteor * 2) + (cleave * 2) + (assault * 4) + vls
- # print(easy_12s)
- print('12s destroy: {}'.format(rot_12s_destroy))
- print('12s frenzy: {}'.format(rot_12s_frenzy))
- print('12s flurry cleave: {}'.format(rot_12s_flurry_cleave))
- print('12s flurry dhally: {}'.format(rot_12s_flurry_dhally))
- print('12s pog rot cleave: {}'.format(pog_rot_cleave))
- print('12s pog rot dhally: {}'.format(pog_rot_dhally))
- print('12s potential walk rng pog rot dhally: {}'.format(potential_walk_rng_pog_rot_dhally))
- print('12s the dream: {}'.format(the_dream))
- # 8s rotations (based on meteor rotations)
- # rot_8s1 = (quake * 2) + (assault * 4) + (korasi * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls + gmaul)
- rot_8s_flurry = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls + gmaul + gmaul)
- rot_8s_dhally = (quake * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (vls + gmaul)
- print('8s flurry: {}'.format(rot_8s_flurry))
- print('8s dhally: {}'.format(rot_8s_dhally))
- # 8s practice rotations (require no meteor setup)
- practice_rot_flurry = (quake * 2) + (assault * 4) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls + gmaul)
- # practice_rot2 = (quake * 2) + (assault * 4) + (korasi * 2) + (cane_1 * 2 + cane_2) + (cleave * 2) + (vls)
- practice_rot_dhally = (quake * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (flurry_multi * 2 * 2) + (cane_1 * 2 + cane_2) + (deci)
- print('practice rot 1 (flurry + gmaul): {}'.format(practice_rot_flurry))
- print('practice rot 3 (dhally): {}'.format(practice_rot_dhally))
- # 8s meteor rot require meteor setup but NO MINIONS
- meteor_8s_rot_dhally = (meteor * 2) + (assault * 3 + assault_under_dhally) + (sum(dhalbert) * 2) + (quake * 2) + (cane_1 * 2 + cane_2) + (vls)
- meteor_8s_rot_cleave = (meteor * 2) + (assault * 4) + (cleave * 2) + (quake * 2) + (cane_1 * 2 + cane_2) + (vls + gmaul)
- print('meteor 8s rot 1 (dhally): {}'.format(meteor_8s_rot_dhally))
- print('meteor 8s rot 2 (cleave): {}'.format(meteor_8s_rot_cleave))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement