ffxiv

Theorycrafting for Final Fantasy XIV.

This project is maintained by rconcep

Part 2: levels 50-51

Return home

from samurai import *
from plotting import *

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sb
from IPython.display import display
%matplotlib inline

pd.options.display.max_rows = None

lvl 50

Level 50 unlocks the final weaponskill, Yukikaze, a combo finisher to open the final Sen, Setsu. It combos from Hakaze so it is a two hit combo contrary to Gekko and Kasha. It applies a slashing resistance down debuff to the target.

Level 50 also confers the Meikyo Shisui ability, a cooldown that allows you to execute up to 3 combo abilities without meeting combo prerequisites. This may be used, for example, to quickly get Jinpu and Shifu buffs up or to open up all three Sen in a fraction of the time as normal. Note that Iaijutsu do not consume a charge. Additionally, any combo actions used during Meikyo Shisui will not continue after the buff falls off. For example, if you use the last charge on Jinpu, the combo action for Gekko will not be primed after Meikyo Shisui falls off.

The opening of the final Sen unlocks the final Iaijutsu, Midare Setsugekka. This powerful single target nuke gives the opportunity in single target situations to deal massive damage without having to clip Higanbana.

With our repertoire of weaponskills complete plus a new cooldown to play with, let’s explore opener options.

Opener 1

Buff first: Shifu > Jinpu > Yukikaze.

Iaijutsu: Apply Higanbana after getting Jinpu buff. Remaining Sen build towards Midare Setsugekka.

Meikyo Shisui: generate second Midare Setsugekka.

sam = Samurai()

n_targets = 1

actions = [('Hakaze'), ('Shifu'), ('Kasha'), ('Hakaze'),
           ('Jinpu'), ('Higanbana'), ('Gekko'), ('Hakaze'),
           ('Yukikaze'), ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Midare Setsugekka', 'Meikyo Shisui'), ('Kasha'), ('Gekko'), ('Yukikaze'), 
           ('Midare Setsugekka'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Hakaze'), ('Yukikaze')]
df0, average_potency, pps = sam.parse_rotation(actions)
display(df0)
average potency per GCD = 411.8647727272726
average potency per second = 189.719953936
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Hakaze 150.000 False False False 0 0 150.000
1 2.40 Shifu 280.000 False False False 0 0 430.000
2 4.56 Kasha 400.000 False True False 0 0 830.000
3 6.72 Hakaze 150.000 False True False 0 0 980.000
4 8.88 Jinpu 280.000 False True False 0 0 1260.000
5 11.04 Higanbana 276.000 True True False 0 0 1536.000
6 13.20 Gekko 488.980 True True False 1 0 2024.980
7 15.36 Hakaze 201.480 True True False 1 0 2226.460
8 17.52 Yukikaze 419.980 True True False 1 0 2646.440
9 19.68 Hakaze 220.455 True True True 1 0 2866.895
10 21.84 Shifu 386.400 True True True 1 0 3253.295
11 24.00 Kasha 539.580 True True True 1 0 3792.875
12 26.16 Midare Setsugekka Meikyo Shisui 948.060 True True True 1 0 4740.935
13 28.32 Kasha 539.580 True True True 1 0 5280.515
14 30.48 Gekko 539.580 True True True 1 0 5820.095
15 32.64 Yukikaze 462.990 True True True 1 0 6283.085
16 34.80 Midare Setsugekka 948.060 True True True 1 0 7231.145
17 36.96 Hakaze 220.455 True True True 1 0 7451.600
18 39.12 Jinpu 386.400 False True True 1 0 7838.000
19 41.28 Gekko 539.580 True True True 1 0 8377.580
20 43.44 Hakaze 220.455 True True True 1 0 8598.035
21 45.60 Yukikaze 462.990 True True True 1 0 9061.025
plot_potency(df0)

png

Opener 2

Similar to Opener 1, just prioritize the buffs Jinpu > Shifu > Yukikaze so that the Higanbana DoT is applied earlier.

sam = Samurai()

n_targets = 1

actions = [('Hakaze'), ('Jinpu'), ('Gekko'), ('Higanbana'),
           ('Hakaze'), ('Shifu'), ('Kasha'), ('Hakaze'),
           ('Yukikaze'), ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka', 'Meikyo Shisui'), ('Kasha'), ('Gekko'), ('Yukikaze'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze')]
df1, average_potency, pps = sam.parse_rotation(actions)
display(df1)
average potency per GCD = 420.45113636363635
average potency per second = 189.858887521
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Hakaze 150.000 False False False 0 0 150.000
1 2.40 Jinpu 280.000 False False False 0 0 430.000
2 4.80 Gekko 460.000 True False False 0 0 890.000
3 7.20 Higanbana 276.000 True False False 0 0 1166.000
4 9.60 Hakaze 204.700 True False False 1 0 1370.700
5 12.00 Shifu 354.200 True False False 1 0 1724.900
6 14.16 Kasha 488.980 True True False 1 0 2213.880
7 16.32 Hakaze 201.480 True True False 1 0 2415.360
8 18.48 Yukikaze 419.980 True True False 1 0 2835.340
9 20.64 Hakaze 220.455 True True True 1 0 3055.795
10 22.80 Jinpu 386.400 True True True 1 0 3442.195
11 24.96 Gekko 539.580 True True True 1 0 3981.775
12 27.12 Midare Setsugekka Meikyo Shisui 948.060 True True True 1 0 4929.835
13 29.28 Kasha 539.580 True True True 1 0 5469.415
14 31.44 Gekko 539.580 True True True 1 0 6008.995
15 33.60 Yukikaze 462.990 True True True 1 0 6471.985
16 35.76 Midare Setsugekka 948.060 True True True 1 0 7420.045
17 37.92 Hakaze 220.455 True True True 1 0 7640.500
18 40.08 Shifu 386.400 True True True 1 0 8026.900
19 42.24 Kasha 539.580 True True True 1 0 8566.480
20 44.40 Hakaze 220.455 True True True 1 0 8786.935
21 46.56 Yukikaze 462.990 True True True 1 0 9249.925
plot_potency(df1)

png

Opener 3

Open with Meikyo Shisui to apply buffs and debuffs ASAP.

Iaijutsu: Apply Higanbana first. Remaining Sen build towards Midare Setsugekka.

sam = Samurai()

n_targets = 1

sam.meikyo_shisui()

actions = [('Jinpu'), ('Shifu'), ('Yukikaze'),
           ('Higanbana'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka')]
df2, average_potency, pps = sam.parse_rotation(actions)
display(df2)
average potency per GCD = 415.8231818181817
average potency per second = 191.543341709
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Jinpu 280.000 False False False 0 0 280.000
1 2.40 Shifu 322.000 True False False 0 0 602.000
2 4.56 Yukikaze 391.000 True True False 0 0 993.000
3 6.72 Higanbana 306.360 True True True 0 0 1299.360
4 8.88 Hakaze 220.455 True True True 1 0 1519.815
5 11.04 Shifu 386.400 True True True 1 0 1906.215
6 13.20 Kasha 539.580 True True True 1 0 2445.795
7 15.36 Hakaze 220.455 True True True 1 0 2666.250
8 17.52 Yukikaze 462.990 True True True 1 0 3129.240
9 19.68 Hakaze 220.455 True True True 1 0 3349.695
10 21.84 Jinpu 386.400 True True True 1 0 3736.095
11 24.00 Gekko 539.580 True True True 1 0 4275.675
12 26.16 Midare Setsugekka 948.060 True True True 1 0 5223.735
13 28.32 Hakaze 220.455 True True True 1 0 5444.190
14 30.48 Shifu 386.400 True True True 1 0 5830.590
15 32.64 Kasha 539.580 True True True 1 0 6370.170
16 34.80 Hakaze 220.455 True True True 1 0 6590.625
17 36.96 Yukikaze 462.990 True True True 1 0 7053.615
18 39.12 Hakaze 220.455 True True True 1 0 7274.070
19 41.28 Jinpu 386.400 True True True 1 0 7660.470
20 43.44 Gekko 539.580 True True True 1 0 8200.050
21 45.60 Midare Setsugekka 948.060 True True True 1 0 9148.110
plot_potency(df2)

png

Opener 4

Open with Yukikaze and use Meikyo Shisui to get Jinpu and Shifu up faster.

Iaijutsu: Apply Higanbana first.

sam = Samurai()

n_targets = 1

actions = [('Hakaze'), ('Yukikaze', 'Meikyo Shisui'),
           ('Jinpu'), ('Higanbana'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Hakaze'), ('Yukikaze'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka')]
df3, average_potency, pps = sam.parse_rotation(actions)
display(df3)
average potency per GCD = 416.1273809523808
average potency per second = 188.658786701
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Hakaze 150.000 False False False 0 0 150.000
1 2.40 Yukikaze Meikyo Shisui 340.000 False False False 0 0 490.000
2 4.80 Jinpu 310.800 False False True 0 0 800.800
3 7.20 Higanbana 306.360 True False True 0 0 1107.160
4 9.60 Shifu 389.620 True False True 1 0 1496.780
5 11.76 Kasha 539.580 True True True 1 0 2036.360
6 13.92 Hakaze 220.455 True True True 1 0 2256.815
7 16.08 Jinpu 386.400 True True True 1 0 2643.215
8 18.24 Gekko 539.580 True True True 1 0 3182.795
9 20.40 Hakaze 220.455 True True True 1 0 3403.250
10 22.56 Yukikaze 462.990 True True True 1 0 3866.240
11 24.72 Midare Setsugekka 948.060 True True True 1 0 4814.300
12 26.88 Hakaze 220.455 True True True 1 0 5034.755
13 29.04 Shifu 386.400 True True True 1 0 5421.155
14 31.20 Kasha 539.580 True True True 1 0 5960.735
15 33.36 Hakaze 220.455 True True True 1 0 6181.190
16 35.52 Yukikaze 462.990 True True True 1 0 6644.180
17 37.68 Hakaze 220.455 True True True 1 0 6864.635
18 39.84 Jinpu 386.400 True True True 1 0 7251.035
19 42.00 Gekko 539.580 True True True 1 0 7790.615
20 44.16 Midare Setsugekka 948.060 True True True 1 0 8738.675
plot_potency(df3)

png

Opener 5

Open with Gekko and use Meikyo Shisui to get Shifu and Yukikaze up.

Iaijutsu: Apply Higanbana first.

sam = Samurai()

n_targets = 1

actions = [('Hakaze'), ('Jinpu'), ('Gekko', 'Meikyo Shisui'),
           ('Higanbana'), ('Shifu'), ('Yukikaze'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka')]
df4, average_potency, pps = sam.parse_rotation(actions)
display(df4)
average potency per GCD = 424.93149999999997
average potency per second = 192.450860507
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Hakaze 150.000 False False False 0 0 150.000
1 2.40 Jinpu 280.000 False False False 0 0 430.000
2 4.80 Gekko Meikyo Shisui 460.000 True False False 0 0 890.000
3 7.20 Higanbana 276.000 True False False 0 0 1166.000
4 9.60 Shifu 354.200 True False False 1 0 1520.200
5 11.76 Yukikaze 419.980 True True False 1 0 1940.180
6 13.92 Kasha 539.580 True True True 1 0 2479.760
7 16.08 Hakaze 220.455 True True True 1 0 2700.215
8 18.24 Jinpu 386.400 True True True 1 0 3086.615
9 20.40 Gekko 539.580 True True True 1 0 3626.195
10 22.56 Midare Setsugekka 948.060 True True True 1 0 4574.255
11 24.72 Hakaze 220.455 True True True 1 0 4794.710
12 26.88 Shifu 386.400 True True True 1 0 5181.110
13 29.04 Kasha 539.580 True True True 1 0 5720.690
14 31.20 Hakaze 220.455 True True True 1 0 5941.145
15 33.36 Yukikaze 462.990 True True True 1 0 6404.135
16 35.52 Hakaze 220.455 True True True 1 0 6624.590
17 37.68 Jinpu 386.400 True True True 1 0 7010.990
18 39.84 Gekko 539.580 True True True 1 0 7550.570
19 42.00 Midare Setsugekka 948.060 True True True 1 0 8498.630
plot_potency(df4)

png

dfs = [df4, df3, df2, df1, df0]
labels = ['Opener 5', 'Opener 4', 'Opener 3', 'Opener 2', 'Opener 1']
compare_n_potencies(dfs, labels)

png

The time horizon was selected so that each opener had at least two Midare Setsugekka.

These openers have fairly similar cumulative potencies over the selected time horizon. At level 50, you have no other offensive cooldowns when considering buff alignment. Party synergies will need to be considered to determine the best placement. (Maximizing potency delivered under party buffs.) Higanbana is applied at a different time and each opener bursts at different times. Since Higanbana and Midare Setsugekka have the highest effective potency per GCD (with DoT snapshot), getting those Iaijutsu under party buffs will differentiate these openers’ potency significantly.

fig, ax = plt.subplots(figsize=(12, 4))

for k, df in enumerate(dfs):
    ax.plot(df['Time'], df['Potency'], label=labels[k])
    ax.set_xlabel('Time')
    ax.set_ylabel('Potency')
    ax.legend(loc='upper left', framealpha=0.5)

fig.suptitle('Opener Potency over Time')
fig.tight_layout(pad=3)

png

In a vacuum, 40s into an encounter from scratch, these five different openers are virtually indistinguishable from each other. The ramp up time of SAM, even at higher levels, minimizes the impact of opener design (in a vacuum). Party buff timing and encounter design will play a more significant role in rotation efficacy than anything else. As long as you keep the GCD rolling, follow a good priority system, and don’t waste resource, you will be performing near optimally.

For short duration phases (60-90s or so), some more thought may be needed in how you approach it.

Extended simulations

With Opener 5

This opener had the highest average potency by a slim margin.

sam = Samurai()

n_targets = 1

actions = [('Hakaze'), ('Jinpu'), ('Gekko', 'Meikyo Shisui'),
           ('Higanbana'), ('Shifu'), ('Yukikaze'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Yukikaze'),
           ('Higanbana'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Hakaze'), ('Yukikaze', 'Meikyo Shisui'),
           ('Midare Setsugekka'), ('Kasha'), ('Yukikaze'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Hakaze'), ('Yukikaze'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Higanbana'), ('Jinpu'), ('Gekko'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Midare Setsugekka')]
df4_ext, average_potency, pps = sam.parse_rotation(actions)
display(df4_ext)
average potency per GCD = 435.62537313432864
average potency per second = 200.349395936
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Hakaze 150.000 False False False 0 0 150.000
1 2.40 Jinpu 280.000 False False False 0 0 430.000
2 4.80 Gekko Meikyo Shisui 460.000 True False False 0 0 890.000
3 7.20 Higanbana 276.000 True False False 0 0 1166.000
4 9.60 Shifu 354.200 True False False 1 0 1520.200
5 11.76 Yukikaze 419.980 True True False 1 0 1940.180
6 13.92 Kasha 539.580 True True True 1 0 2479.760
7 16.08 Hakaze 220.455 True True True 1 0 2700.215
8 18.24 Jinpu 386.400 True True True 1 0 3086.615
9 20.40 Gekko 539.580 True True True 1 0 3626.195
10 22.56 Midare Setsugekka 948.060 True True True 1 0 4574.255
11 24.72 Hakaze 220.455 True True True 1 0 4794.710
12 26.88 Shifu 386.400 True True True 1 0 5181.110
13 29.04 Kasha 539.580 True True True 1 0 5720.690
14 31.20 Hakaze 220.455 True True True 1 0 5941.145
15 33.36 Yukikaze 462.990 True True True 1 0 6404.135
16 35.52 Hakaze 220.455 True True True 1 0 6624.590
17 37.68 Jinpu 386.400 True True True 1 0 7010.990
18 39.84 Gekko 539.580 True True True 1 0 7550.570
19 42.00 Midare Setsugekka 948.060 True True True 1 0 8498.630
20 44.16 Hakaze 220.455 True True True 1 0 8719.085
21 46.32 Shifu 386.400 True True True 1 0 9105.485
22 48.48 Kasha 539.580 True True True 1 0 9645.065
23 50.64 Hakaze 220.455 True True True 1 0 9865.520
24 52.80 Yukikaze 462.990 True True True 1 0 10328.510
25 54.96 Hakaze 220.455 True True True 1 0 10548.965
26 57.12 Jinpu 386.400 True True True 1 0 10935.365
27 59.28 Gekko 539.580 True True True 1 0 11474.945
28 61.44 Midare Setsugekka 948.060 True True True 1 0 12423.005
29 63.60 Hakaze 220.455 True True True 1 0 12643.460
30 65.76 Yukikaze 462.990 True True True 1 0 13106.450
31 67.92 Higanbana 335.340 True True True 1 0 13441.790
32 70.08 Hakaze 220.455 True True True 1 0 13662.245
33 72.24 Shifu 386.400 True True True 1 0 14048.645
34 74.40 Kasha 539.580 True True True 1 0 14588.225
35 76.56 Hakaze 220.455 True True True 1 0 14808.680
36 78.72 Jinpu 386.400 True True True 1 0 15195.080
37 80.88 Gekko 539.580 True True True 1 0 15734.660
38 83.04 Hakaze 220.455 True True True 1 0 15955.115
39 85.20 Yukikaze Meikyo Shisui 462.990 True True True 1 0 16418.105
40 87.36 Midare Setsugekka 948.060 True True True 1 0 17366.165
41 89.52 Kasha 539.580 True True True 1 0 17905.745
42 91.68 Yukikaze 462.990 True True True 1 0 18368.735
43 93.84 Gekko 539.580 True True True 1 0 18908.315
44 96.00 Midare Setsugekka 948.060 True True True 1 0 19856.375
45 98.16 Hakaze 220.455 True True True 1 0 20076.830
46 100.32 Shifu 386.400 True True True 1 0 20463.230
47 102.48 Kasha 539.580 True True True 1 0 21002.810
48 104.64 Hakaze 220.455 True True True 1 0 21223.265
49 106.80 Jinpu 386.400 True True True 1 0 21609.665
50 108.96 Gekko 539.580 True True True 1 0 22149.245
51 111.12 Hakaze 220.455 True True True 1 0 22369.700
52 113.28 Yukikaze 462.990 True True True 1 0 22832.690
53 115.44 Midare Setsugekka 948.060 True True True 1 0 23780.750
54 117.60 Hakaze 220.455 True True True 1 0 24001.205
55 119.76 Shifu 386.400 True True True 1 0 24387.605
56 121.92 Kasha 539.580 True True True 1 0 24927.185
57 124.08 Hakaze 220.455 True True True 1 0 25147.640
58 126.24 Higanbana 335.340 True True True 1 0 25482.980
59 128.40 Jinpu 386.400 True True True 1 0 25869.380
60 130.56 Gekko 539.580 True True True 1 0 26408.960
61 132.72 Hakaze 220.455 True True True 1 0 26629.415
62 134.88 Yukikaze 462.990 True True True 1 0 27092.405
63 137.04 Hakaze 220.455 True True True 1 0 27312.860
64 139.20 Shifu 386.400 True True True 1 0 27699.260
65 141.36 Kasha 539.580 True True True 1 0 28238.840
66 143.52 Midare Setsugekka 948.060 True True True 1 0 29186.900
plot_potency(df4_ext, truncate_actions=True)

png

Interestingly enough, the average potency this long into the encounter is actually higher than after the opener.

With Opener 3

This opener used Meikyo Shisui pre-pull to get buffs/debuffs up faster and was second in pps.

sam = Samurai()

n_targets = 1

sam.meikyo_shisui()

actions = [('Jinpu'), ('Shifu'), ('Yukikaze'),
           ('Higanbana'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Yukikaze'), ('Higanbana'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Gekko', 'Meikyo Shisui'),
           ('Yukikaze'), ('Midare Setsugekka'), ('Gekko'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Jinpu'), ('Gekko'),
           ('Midare Setsugekka'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Hakaze'), ('Jinpu'), ('Higanbana'), ('Gekko'),
           ('Hakaze'), ('Yukikaze'),
           ('Hakaze'), ('Shifu'), ('Kasha'),
           ('Midare Setsugekka')]
df2_ext, average_potency, pps = sam.parse_rotation(actions)
display(df2_ext)
average potency per GCD = 431.5713043478264
average potency per second = 199.480305466
Time Weaponskill Ability Potency Jinpu Shifu Yukikaze Higanbana Kenki Total Potency
0 0.00 Jinpu 280.000 False False False 0 0 280.000
1 2.40 Shifu 322.000 True False False 0 0 602.000
2 4.56 Yukikaze 391.000 True True False 0 0 993.000
3 6.72 Higanbana 306.360 True True True 0 0 1299.360
4 8.88 Hakaze 220.455 True True True 1 0 1519.815
5 11.04 Shifu 386.400 True True True 1 0 1906.215
6 13.20 Kasha 539.580 True True True 1 0 2445.795
7 15.36 Hakaze 220.455 True True True 1 0 2666.250
8 17.52 Yukikaze 462.990 True True True 1 0 3129.240
9 19.68 Hakaze 220.455 True True True 1 0 3349.695
10 21.84 Jinpu 386.400 True True True 1 0 3736.095
11 24.00 Gekko 539.580 True True True 1 0 4275.675
12 26.16 Midare Setsugekka 948.060 True True True 1 0 5223.735
13 28.32 Hakaze 220.455 True True True 1 0 5444.190
14 30.48 Shifu 386.400 True True True 1 0 5830.590
15 32.64 Kasha 539.580 True True True 1 0 6370.170
16 34.80 Hakaze 220.455 True True True 1 0 6590.625
17 36.96 Yukikaze 462.990 True True True 1 0 7053.615
18 39.12 Hakaze 220.455 True True True 1 0 7274.070
19 41.28 Jinpu 386.400 True True True 1 0 7660.470
20 43.44 Gekko 539.580 True True True 1 0 8200.050
21 45.60 Midare Setsugekka 948.060 True True True 1 0 9148.110
22 47.76 Hakaze 220.455 True True True 1 0 9368.565
23 49.92 Shifu 386.400 True True True 1 0 9754.965
24 52.08 Kasha 539.580 True True True 1 0 10294.545
25 54.24 Hakaze 220.455 True True True 1 0 10515.000
26 56.40 Yukikaze 462.990 True True True 1 0 10977.990
27 58.56 Hakaze 220.455 True True True 1 0 11198.445
28 60.72 Jinpu 386.400 True True True 1 0 11584.845
29 62.88 Gekko 539.580 True True True 1 0 12124.425
30 65.04 Midare Setsugekka 948.060 True True True 1 0 13072.485
31 67.20 Hakaze 220.455 True True True 1 0 13292.940
32 69.36 Yukikaze 434.010 True True True 0 0 13726.950
33 71.52 Higanbana 306.360 True True True 0 0 14033.310
34 73.68 Hakaze 220.455 True True True 1 0 14253.765
35 75.84 Shifu 386.400 True True True 1 0 14640.165
36 78.00 Kasha 539.580 True True True 1 0 15179.745
37 80.16 Hakaze 220.455 True True True 1 0 15400.200
38 82.32 Jinpu 386.400 True True True 1 0 15786.600
39 84.48 Gekko Meikyo Shisui 539.580 True True True 1 0 16326.180
40 86.64 Yukikaze 462.990 True True True 1 0 16789.170
41 88.80 Midare Setsugekka 948.060 True True True 1 0 17737.230
42 90.96 Gekko 539.580 True True True 1 0 18276.810
43 93.12 Kasha 539.580 True True True 1 0 18816.390
44 95.28 Hakaze 220.455 True True True 1 0 19036.845
45 97.44 Yukikaze 462.990 True True True 1 0 19499.835
46 99.60 Midare Setsugekka 948.060 True True True 1 0 20447.895
47 101.76 Hakaze 220.455 True True True 1 0 20668.350
48 103.92 Shifu 386.400 True True True 1 0 21054.750
49 106.08 Kasha 539.580 True True True 1 0 21594.330
50 108.24 Hakaze 220.455 True True True 1 0 21814.785
51 110.40 Yukikaze 462.990 True True True 1 0 22277.775
52 112.56 Hakaze 220.455 False True True 1 0 22498.230
53 114.72 Jinpu 386.400 False True True 1 0 22884.630
54 116.88 Gekko 539.580 True True True 1 0 23424.210
55 119.04 Midare Setsugekka 948.060 True True True 1 0 24372.270
56 121.20 Hakaze 220.455 True True True 1 0 24592.725
57 123.36 Shifu 386.400 True True True 1 0 24979.125
58 125.52 Kasha 539.580 True True True 1 0 25518.705
59 127.68 Hakaze 220.455 True True True 1 0 25739.160
60 129.84 Jinpu 386.400 True True True 1 0 26125.560
61 132.00 Higanbana 335.340 True True True 1 0 26460.900
62 134.16 Gekko 539.580 True True True 1 0 27000.480
63 136.32 Hakaze 220.455 True True True 1 0 27220.935
64 138.48 Yukikaze 462.990 True True True 1 0 27683.925
65 140.64 Hakaze 220.455 True True True 1 0 27904.380
66 142.80 Shifu 386.400 True True True 1 0 28290.780
67 144.96 Kasha 539.580 True True True 1 0 28830.360
68 147.12 Midare Setsugekka 948.060 True True True 1 0 29778.420
compare_potencies([df4_ext, df2_ext], labels=['With Opener 5', 'With Opener 3'])

png

Again, with only weaponskills to play with, one buff, and one DoT, there is a limited degree of complexity in the single target rotation at level 50.

back to the top…