Files
dcalc/Characters/隐夜·忍者.py
2024-11-04 14:45:20 +08:00

861 lines
52 KiB
Python

from PublicReference.carry.base import *
import math
等级 = 100 + 5
# class 主动技能(主动技能):
# def 等效CD(self, 武器类型, 输出类型):
# return round(self.CD / self.恢复, 1)
class 技能0(主动技能):
名称 = '火遁·豪火球之术'
所在等级 = 15
等级上限 = 60
学习间隔 = 2
等级精通 = 50
data1 = [int(i*1.151) for i in [0, 109, 121, 130, 143, 153, 166, 176, 188, 197, 210, 220, 232, 243, 254, 264, 277, 287, 299, 309, 321, 331, 344, 354, 363, 375, 386, 398, 407, 420, 430, 442, 452, 465, 474, 487, 497, 509, 519, 531, 541, 553, 564, 576, 585, 598, 608, 620, 630, 642, 652, 665, 675, 687, 696, 709, 719, 731, 742, 754, 763, 776, 786, 798, 809, 820, 830, 843, 853, 862, 874]]
攻击次数1 = 12
data2 = [int(i*1.151) for i in [0, 438, 482, 526, 570, 616, 660, 703, 747, 792, 837, 881, 925, 970, 1014, 1059, 1103, 1148, 1191, 1235, 1280, 1325, 1369, 1413, 1457, 1503, 1547, 1591, 1635, 1678, 1724, 1768, 1812, 1857, 1902, 1946, 1990, 2035, 2079, 2124, 2167, 2211, 2256, 2300, 2345, 2389, 2434, 2478, 2523, 2567, 2612, 2655, 2699, 2744, 2789, 2833, 2877, 2921, 2967, 3011, 3055, 3099, 3143, 3188, 3232, 3276, 3321, 3366, 3410, 3454, 3499]]
攻击次数2 = 1
CD = 7.5
# CD = 6.3
攻击倍率 = 1
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
class 技能1(主动技能):
名称 = '忍法:幻影手里剑'
备注 = '(结印打满40hit)'
所在等级 = 20
等级上限 = 60
学习间隔 = 2
等级精通 = 50
data1 = [int(i*1.151) for i in [0, 162, 179, 195, 212, 228, 245, 261, 278, 293, 311, 328, 343, 359, 376, 393, 410, 425, 442, 459, 475, 491, 508, 524, 541, 558, 573, 590, 607, 623, 639, 656, 673, 689, 706, 721, 739, 755, 771, 788, 805, 820, 837, 854, 869, 886, 903, 920, 936, 952, 968, 986, 1002, 1017, 1034, 1052, 1067, 1084, 1100, 1117, 1133, 1149, 1167, 1183, 1198, 1215, 1233, 1248, 1264, 1281, 1298]]
攻击次数1 = 10
data2 = [int(i*1.151) for i in [0, 162, 179, 195, 212, 228, 245, 261, 278, 293, 311, 328, 343, 359, 376, 393, 410, 425, 442, 459, 475, 491, 508, 524, 541, 558, 573, 590, 607, 623, 639, 656, 673, 689, 706, 721, 739, 755, 771, 788, 805, 820, 837, 854, 869, 886, 903, 920, 936, 952, 968, 986, 1002, 1017, 1034, 1052, 1067, 1084, 1100, 1117, 1133, 1149, 1167, 1183, 1198, 1215, 1233, 1248, 1264, 1281, 1298]]
攻击次数2 = 10*2
攻击倍率2 = 0.5
data3 = [int(i*1.151) for i in [0, 162, 179, 195, 212, 228, 245, 261, 278, 293, 311, 328, 343, 359, 376, 393, 410, 425, 442, 459, 475, 491, 508, 524, 541, 558, 573, 590, 607, 623, 639, 656, 673, 689, 706, 721, 739, 755, 771, 788, 805, 820, 837, 854, 869, 886, 903, 920, 936, 952, 968, 986, 1002, 1017, 1034, 1052, 1067, 1084, 1100, 1117, 1133, 1149, 1167, 1183, 1198, 1215, 1233, 1248, 1264, 1281, 1298]]
攻击次数3 = 10
攻击倍率3 = 0.3
攻击倍率 = 1.0
CD = 12.0
# CD = 10.0
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 * self.攻击倍率2 + self.data3[self.等级] * self.攻击次数3 * self.攻击倍率3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
class 技能2(主动技能):
名称 = '火遁·飓风煞'
所在等级 = 25
等级上限 = 60
学习间隔 = 2
等级精通 = 50
data1 = [int(i*1.183) for i in [0, 112, 124, 136, 146, 158, 168, 180, 193, 203, 215, 226, 238, 248, 259, 271, 283, 295, 306, 316, 327, 340, 351, 363, 374, 385, 396, 408, 420, 431, 442, 453, 465, 476, 488, 499, 510, 522, 533, 545, 557, 567, 579, 590, 602, 611, 625, 637, 647, 659, 669, 681, 693, 705, 717, 726, 738, 749, 761, 773, 785, 794, 806, 818, 829, 842, 851, 863, 874, 886, 898]]
攻击次数1 = 25
data2 = [int(i*1.183) for i in [0, 823, 906, 989, 1072, 1156, 1241, 1324, 1408, 1490, 1573, 1656, 1740, 1825, 1908, 1991, 2074, 2158, 2242, 2325, 2409, 2492, 2575, 2658, 2742, 2825, 2908, 2991, 3076, 3160, 3243, 3327, 3409, 3493, 3575, 3660, 3744, 3827, 3910, 3993, 4077, 4162, 4245, 4329, 4411, 4494, 4577, 4661, 4745, 4829, 4912, 4995, 5079, 5163, 5246, 5331, 5413, 5496, 5579, 5663, 5747, 5829, 5913, 5997, 6081, 6164, 6248, 6330, 6413, 6496, 6581]]
攻击次数2 = 1
CD = 17
攻击倍率 = 1.0
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
class 技能3(被动技能):
名称 = '苦无精通'
所在等级 = 25
等级上限 = 20
基础等级 = 10
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.23 + 0.01 * self.等级, 5)
def 魔法攻击力倍率(self, 武器类型):
return self.加成倍率(武器类型)
class 技能4(被动技能):
名称 = '烈焰印记'
所在等级 = 25
等级上限 = 20
基础等级 = 10
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.3 + 0.01 * self.等级, 5)
class 技能5(主动技能):
名称 = '火遁·螺旋手里剑'
所在等级 = 30
等级上限 = 60
学习间隔 = 2
等级精通 = 50
data1 = [int(i*1.151) for i in [0, 170, 187, 203, 221, 238, 255, 273, 290, 308, 324, 341, 359, 376, 393, 411, 427, 445, 462, 479, 497, 514, 530, 548, 565, 583, 600, 616, 634, 651, 668, 686, 703, 719, 737, 754, 772, 789, 806, 824, 840, 857, 875, 892, 910, 926, 943, 961, 978, 995, 1013, 1029, 1047, 1064, 1081, 1099, 1116, 1132, 1150, 1167, 1184, 1202, 1219, 1236, 1253, 1270, 1288, 1305, 1321, 1339, 1356]]
攻击次数1 = 15
data2 = [int(i*1.151) for i in [0, 699, 771, 841, 912, 983, 1055, 1125, 1196, 1266, 1338, 1409, 1479, 1551, 1622, 1693, 1763, 1835, 1906, 1976, 2048, 2119, 2189, 2260, 2332, 2402, 2473, 2544, 2615, 2686, 2757, 2828, 2899, 2970, 3040, 3112, 3183, 3253, 3324, 3396, 3466, 3537, 3609, 3680, 3750, 3821, 3893, 3963, 4034, 4106, 4176, 4247, 4318, 4389, 4460, 4531, 4601, 4673, 4744, 4814, 4886, 4957, 5027, 5098, 5170, 5240, 5311, 5382, 5453, 5524, 5595]]
攻击次数2 = 1
CD = 12.0
攻击倍率 = 1.0
TP成长 = 0
TP基础 = 5
TP上限 = 5
def 等效百分比(self, 武器类型):
if self.TP等级 == 0:
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * self.倍率 * self.攻击倍率
else:
if self.TP等级 <= 5:
return (self.data1[self.等级] * (self.攻击次数1-self.TP等级*2-1) + (self.data2[self.等级] * (self.TP等级+1)) * self.攻击次数2) * self.倍率 * self.攻击倍率
# def 等效百分比(self, 武器类型):
# return (self.data1[self.等级] * (self.攻击次数1-self.TP等级*2-1) + (self.data2[self.等级] * (self.TP等级+1))* self.攻击次数2)
class 技能6(主动技能):
名称 = '忍法:替身术'
所在等级 = 35
等级上限 = 60
学习间隔 = 3
等级精通 = 50
data1 = [int(i*1.20) for i in [0, 1565, 1815, 2064, 2314, 2564, 2812, 3062, 3312, 3563, 3810, 4062, 4311, 4560, 4810, 5060, 5308, 5558, 5808, 6057, 6307, 6556, 6805, 7056, 7306, 7555, 7804, 8054, 8303, 8553, 8803, 9051, 9301, 9551, 9800, 10049, 10301, 10549, 10799, 11049, 11298, 11547, 11797, 12046, 12296, 12546, 12794, 13044, 13295, 13543, 13794, 14043, 14292, 14542, 14792, 15040, 15290, 15540, 15789, 16039, 16288, 16537, 16788, 17038, 17287, 17537, 17786, 18036, 18285, 18535, 18785]]
攻击次数1 = 1
data2 = [int(i*1.20) for i in [0, 939, 1089, 1238, 1389, 1538, 1689, 1837, 1987, 2138, 2286, 2437, 2587, 2736, 2886, 3034, 3185, 3336, 3485, 3634, 3784, 3934, 4084, 4233, 4384, 4532, 4682, 4833, 4981, 5132, 5281, 5432, 5581, 5731, 5881, 6029, 6180, 6330, 6479, 6629, 6779, 6928, 7079, 7228, 7378, 7527, 7677, 7827, 7976, 8127, 8275, 8426, 8576, 8724, 8875, 9024, 9174, 9324, 9474, 9623, 9773, 9923, 10074, 10222, 10372, 10523, 10671, 10822, 10970, 11121, 11271]]
攻击次数2 = 1
data3 = [int(i*1.20) for i in [0, 4133, 4791, 5450, 6109, 6768, 7427, 8086, 8744, 9404, 10062, 10721, 11380, 12037, 12698, 13355, 14016, 14673, 15334, 15992, 16649, 17310, 17967, 18628, 19285, 19944, 20603, 21260, 21922, 22578, 23240, 23896, 24555, 25214, 25873, 26532, 27190, 27849, 28508, 29167, 29826, 30485, 31143, 31803, 32461, 33120, 33779, 34438, 35097, 35755, 36415, 37073, 37733, 38391, 39049, 39709, 40367, 41027, 41685, 42345, 43003, 43660, 44321, 44978, 45639, 46296, 46955, 47614, 48273, 48932, 49590]]
攻击次数3 = 1
攻击倍率 = 1.0
CD = 25
# CD = 26.2
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
class 技能7(主动技能):
名称 = '火遁·炎天道'
备注 = '(地面释放)'
所在等级 = 35
等级上限 = 60
学习间隔 = 2
等级精通 = 50
data1 = [int(i*1.20) for i in [0, 228, 249, 276, 296, 319, 342, 366, 389, 412, 436, 457, 483, 504, 527, 549, 574, 598, 619, 645, 666, 690, 712, 735, 759, 782, 806, 827, 853, 874, 898, 918, 941, 966, 988, 1012, 1034, 1059, 1081, 1105, 1128, 1151, 1175, 1195, 1221, 1242, 1266, 1289, 1312, 1336, 1358, 1382, 1404, 1429, 1451, 1475, 1498, 1521, 1545, 1567, 1591, 1610, 1638, 1658, 1681, 1704, 1728, 1751, 1773, 1797, 1820]] # 地面爆炸
攻击次数1 = 1
#空中data2 = [0, 377, 416, 454, 493, 530, 571, 608, 647, 683, 722, 760, 799, 837, 877, 914, 952, 991, 1028, 1067, 1105,1145, 1183, 1222, 1258, 1297, 1335, 1373, 1411, 1451, 1489, 1528, 1565, 1604, 1642, 1680, 1719, 1757, 1796,1834, 1871, 1909, 1948, 1986, 2025, 2063, 2102, 2140, 2179, 2216, 2255, 2294, 2333, 2370, 2407, 2446, 2484,2522, 2560, 2600, 2638, 2677, 2714, 2753, 2791, 2829, 2869, 2907, 2945, 2983, 3021]
#攻击次数2 = 1
#data1 = [0, 567, 623, 682, 738, 795, 854, 912, 969, 1027, 1085, 1141, 1198, 1256, 1313, 1372, 1428, 1486, 1544, 1601,1659, 1717, 1772, 1830, 1888, 1946, 2003, 2062, 2118, 2175, 2234, 2291, 2348, 2406, 2462, 2520, 2578, 2636,2692, 2752, 2808, 2864, 2923, 2980, 3036, 3095, 3152, 3210, 3268, 3326, 3383, 3440, 3497, 3554, 3612, 3670,3727, 3784, 3842, 3900, 3957, 4015, 4071, 4128, 4186, 4244, 4302, 4360, 4416, 4474, 4533]
#攻击次数1 = 1
data2 = [int(i*1.20) for i in [0, 454, 501, 547, 594, 639, 688, 733, 780, 823, 870, 916, 963, 1009, 1057, 1101, 1147, 1194, 1239, 1286, 1332, 1380, 1426, 1473, 1516, 1563, 1609, 1654, 1700, 1748, 1794, 1841, 1886, 1933, 1979, 2024, 2071, 2117, 2164, 2210, 2255, 2300, 2347, 2393, 2440, 2486, 2533, 2579, 2626, 2670, 2717, 2764, 2811, 2856, 2900, 2947, 2993, 3039, 3085, 3133, 3179, 3226, 3270, 3317, 3363, 3409, 3457, 3503, 3549, 3595, 3640]]
攻击次数2 = 1
data3 = [int(i*1.20) for i in [0, 4227, 4655, 5084, 5513, 5942, 6371, 6800, 7229, 7658, 8088, 8515, 8944, 9372, 9803, 10230, 10659, 11087, 11516, 11946, 12374, 12804, 13233, 13661, 14091, 14520, 14948, 15377, 15806, 16235, 16664, 17093, 17518, 17948, 18379, 18806, 19235, 19664, 20093, 20522, 20951, 21379, 21808, 22238, 22666, 23095, 23525, 23953, 24383, 24812, 25240, 25669, 26099, 26526, 26955, 27382, 27811, 28242, 28669, 29100, 29529, 29956, 30386, 30815, 31243, 31672, 32100, 32529, 32958, 33387, 33815]] # 火焰球爆炸
攻击次数3 = 1
CD = 18
攻击倍率 = 1.0
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.倍率 *= 1.1
self.攻击次数3 = 1 * 1.08
elif x == 1:
self.倍率 *= 1.1 + 0.08
self.攻击次数3 = 1 * 1.08
class 技能8(主动技能):
名称 = '忍法:残影术'
所在等级 = 35
等级上限 = 11
基础等级 = 1
是否有伤害 = 0
关联技能 = ['火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法:替身术', '火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '火遁·冥炎业火阵', '八岐大蛇',
'火遁·风魔手里剑', '忍法:飞燕手里剑', '天照', '勾玉之火·镰鼬', '火炎灼空:草雉剑', '火源限界·八咫乌']
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(0.98 + 0.02 * self.等级, 5)
class 技能9(主动技能):
名称 = '火遁·蟾蜍油炎弹'
所在等级 = 40
等级上限 = 60
基础等级 = 33
data1 = [int(i*1.21) for i in [0, 191, 211, 229, 249, 269, 287, 307, 326, 346, 365, 384, 404, 424, 442, 462, 481, 500, 520, 539, 561, 578, 598, 619, 638, 656, 677, 696, 716, 734, 754, 774, 792, 812, 832, 851, 870, 889, 909, 929, 947, 967, 986, 1005, 1025, 1044, 1064, 1083, 1102, 1122, 1140, 1160, 1181, 1200, 1221, 1240, 1258, 1279, 1296, 1317, 1337, 1356, 1375, 1395, 1414, 1434, 1452, 1472, 1492, 1510, 1530]]
攻击次数1 = 3
data2 = [int(i*1.21) for i in [0, 763, 841, 920, 998, 1075, 1153, 1230, 1308, 1385, 1463, 1542, 1620, 1697, 1775, 1851, 1929, 2006, 2084, 2161, 2241, 2318, 2395, 2473, 2550, 2628, 2704, 2782, 2861, 2939, 3016, 3094, 3171, 3249, 3326, 3405, 3483, 3561, 3638, 3716, 3792, 3870, 3947, 4024, 4104, 4181, 4259, 4336, 4414, 4491, 4569, 4645, 4726, 4802, 4880, 4957, 5035, 5112, 5190, 5267, 5347, 5424, 5502, 5579, 5657, 5733, 5810, 5888, 5966, 6045, 6122]]
攻击次数2 = 1
data3 = [int(i*1.21) for i in [0, 6122, 6743, 7365, 7986, 8608, 9229, 9849, 10471, 11092, 11713, 12335, 12956, 13575, 14197, 14818, 15438, 16060, 16680, 17301, 17923, 18544, 19166, 19787, 20407, 21029, 21650, 22271, 22893, 23514, 24134, 24756, 25377, 25999, 26620, 27241, 27862, 28483, 29104, 29726, 30347, 30969, 31589, 32209, 32832, 33453, 34073, 34694, 35315, 35936, 36558, 37179, 37802, 38421, 39042, 39664, 40285, 40906, 41528, 42148, 42769, 43391, 44012, 44634, 45255, 45875, 46497, 47118, 47739, 48361, 48982]]
攻击次数3 = 1
CD = 25.0
攻击倍率 = 1.0
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.倍率 *= 1.05
self.攻击次数3 = 1 * 1.19
self.CD *= 0.88
elif x == 1:
self.倍率 *= 1.05 + 0.08
self.攻击次数3 = 1 * 1.19
self.CD *= 0.88
class 技能10(主动技能):
名称 = '忍法:六道轮回'
所在等级 = 40
等级上限 = 11
基础等级 = 1
关联技能 = ['火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法:替身术',
'火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照', '勾玉之火·镰鼬']
六道技能显示 = []
CD = 30
自定义描述 = 1
def 技能描述(self, 武器类型):
temp = ''
temp += "CD:" + str(self.CD)+"<br>"
temp += '加成倍率:80%<br>'
temp += '关联技能:'
try:
for i in range(len(self.六道技能显示) - 1):
temp += self.六道技能显示[i] + ','
temp += self.六道技能显示[len(self.六道技能显示) - 1]
except:
temp += '无'
return temp
def 加成倍率(self, 武器类型):
return 1.0
class 技能11(主动技能):
名称 = '火遁·炎舞天璇'
所在等级 = 45
等级上限 = 60
学习间隔 = 2
等级精通 = 50
data1 = [int(i*1.213) for i in [0, 455, 500, 548, 594, 639, 685, 730, 778, 824, 869, 916, 962, 1008, 1054, 1100, 1147, 1192, 1239, 1284, 1330, 1379, 1424, 1470, 1515, 1561, 1608, 1655, 1699, 1747, 1792, 1838, 1884, 1931, 1977, 2023, 2068, 2115, 2160, 2207, 2255, 2299, 2346, 2391, 2438, 2484, 2530, 2576, 2623, 2668, 2714, 2759, 2808, 2853, 2899, 2946, 2991, 3037, 3084, 3130, 3176, 3222, 3267, 3315, 3360, 3407, 3452, 3499, 3544, 3590, 3637]]
攻击次数1 = 8
data2 = [int(i*1.213) for i in [0, 138, 150, 164, 178, 191, 205, 219, 234, 247, 261, 274, 289, 303, 316, 330, 344, 358, 371, 385, 400, 413, 427, 440, 455, 469, 481, 496, 510, 525, 539, 551, 566, 579, 594, 606, 621, 634, 649, 663, 675, 691, 703, 718, 730, 746, 759, 772, 787, 800, 815, 828, 842, 856, 869, 883, 896, 911, 925, 940, 952, 966, 981, 995, 1008, 1022, 1036, 1050, 1064, 1077, 1092]]
攻击次数2 = 25
data3 = [int(i*1.213) for i in [0, 3752, 4132, 4511, 4892, 5272, 5653, 6033, 6414, 6794, 7174, 7554, 7936, 8317, 8698, 9077, 9458, 9837, 10219, 10599, 10980, 11360, 11740, 12121, 12503, 12882, 13262, 13643, 14023, 14404, 14785, 15166, 15546, 15926, 16305, 16685, 17067, 17449, 17829, 18210, 18589, 18969, 19350, 19730, 20111, 20491, 20872, 21251, 21633, 22014, 22395, 22775, 23155, 23535, 23917, 24296, 24677, 25057, 25437, 25818, 26200, 26580, 26959, 27340, 27720, 28101, 28482, 28863, 29243, 29624, 30003]]
攻击次数3 = 1
# CD = 33.6
CD = 40
攻击倍率 = 1.0
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数1 = 8 - 5
self.攻击次数2 = 25 * 2.15
self.CD *= 0.9
elif x == 1:
self.攻击次数1 = 8 - 5
self.攻击次数2 = 25 * (2.15 + 0.23)
self.CD *= 0.9
class 技能12(被动技能):
名称 = '暗炎残星'
所在等级 = 45
等级上限 = 20
基础等级 = 1
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.09 + 0.01 * self.等级, 5)
class 技能13(主动技能):
名称 = '毕方之印'
所在等级 = 48
等级上限 = 40
基础等级 = 20
data1 = [int(i*1.0) for i in [0, 203, 235, 268, 300, 332, 365, 397, 429, 462, 494, 526, 559, 591, 623, 656, 688, 720, 753, 785, 817, 850, 882, 914, 947, 979, 1011, 1044, 1076, 1108, 1141, 1173, 1205, 1238, 1270, 1302, 1335, 1367, 1399, 1432, 1464, 1496, 1529, 1561, 1593, 1626, 1658, 1691, 1723, 1755, 1788, 1820, 1852, 1885, 1917, 1949, 1982, 2014, 2046, 2079, 2111, 2143, 2176, 2208, 2240, 2273, 2305, 2337, 2370, 2402, 2434]]
攻击次数1 = 8
data2 = [int(i*1.0) for i in [0, 423, 490, 557, 625, 692, 760, 827, 894, 962, 1029, 1096, 1164, 1231, 1299, 1366, 1433, 1501, 1568, 1635, 1703, 1770, 1838, 1905, 1972, 2040, 2107, 2174, 2242, 2309, 2377, 2444, 2511, 2579, 2646, 2713, 2781, 2848, 2916, 2983, 3050, 3118, 3185, 3252, 3320, 3387, 3455, 3522, 3589, 3657, 3724, 3791, 3859, 3926, 3994, 4061, 4128, 4196, 4263, 4330, 4398, 4465, 4533, 4600, 4667, 4735, 4802, 4869, 4937, 5004, 5072]]
攻击次数2 = 1
攻击倍率 = 1.0
# 爆炸攻击力
# [0, 1014, 1176, 1338, 1499, 1661, 1823, 1985, 2146, 2308, 2470, 2631, 2793, 2955, 3116, 3278, 3440, 3602, 3763, 3925, 4087, 4248, 4410, 4572, 4733, 4895, 5057, 5219, 5380, 5542, 5704, 5865, 6027, 6189, 6350, 6512, 6674, 6836, 6997, 7159, 7321, 7482, 7644, 7806, 7967, 8129, 8291, 8453, 8614, 8776, 8938, 9099, 9261, 9423, 9584, 9746, 9908, 10070, 10231, 10393, 10555, 10716, 10878, 11040, 11201, 11363, 11525, 11687, 11848, 12010, 12172]
是否主动 = 0
自定义描述 = 1
def 技能描述(self, 武器类型):
return '火属性强化+' + str(self.属强加成())
def 属强加成(self):
if self.等级 == 0:
return 0
else:
return (30 + 2 * self.等级)
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
def 等效CD(self, 武器类型, 输出类型):
return 1.0
class 技能14(主动技能):
名称 = '火遁·冥炎业火阵'
所在等级 = 50
等级上限 = 40
学习间隔 = 5
等级精通 = 30
#data1 = [0, 27341, 33687, 40028, 46370, 52709, 59053, 65397, 71737, 78078, 84421, 90761, 97102, 103446, 109787, 116126, 122469, 128813, 135153, 141494, 147835, 154178, 160518, 166861, 173204, 179543, 185887, 192228, 198569, 204911, 211251, 217594, 223936, 230279, 236618, 242961, 249300, 255646, 261987, 268329, 274669, 615050, 628926, 642810, 656687, 670567, 684449, 698329, 712209, 726088, 739970, 753851, 767728, 781612, 795489, 809371, 823248, 837131, 851009, 864885, 878771, 892648, 906531, 920408, 934289, 948170, 962047, 975928, 989814, 1003691, 1017570]
data1 = [(i*1.151) for i in [0, 4355, 5367, 6377, 7388, 8398, 9410, 10420, 11429, 12439, 13450, 14460, 15472, 16482, 17493, 18501, 19513, 20523, 21534, 22544, 23555, 24565, 25574, 26587, 27595, 28606, 29616, 30628, 31638, 32649, 33658, 34668, 35678, 36690, 37700, 38711, 39721, 40733, 41742, 42752, 43762, 44772, 45783, 46793, 47804, 48814, 49825, 50835, 51845, 52856, 53866, 54877, 55887, 56898, 57908, 58918, 59929, 60939, 61950, 62960, 63971, 64981, 65991, 67002, 68012, 69023, 70033, 71044, 72054, 73064, 74075]]
data2 = [(i*1.151) for i in [0, 5931, 7305, 8683, 10057, 11434, 12809, 14186, 15560, 16936, 18311, 19686, 21062, 22437, 23813, 25188, 26565, 27939, 29314, 30690, 32065, 33442, 34816, 36193, 37568, 38942, 40319, 41694, 43069, 44446, 45822, 47197, 48573, 49948, 51323, 52699, 54074, 55451, 56825, 58202, 59577, 60952, 62328, 63703, 65079, 66454, 67830, 69205, 70581, 71957, 73332, 74708, 76083, 77459, 78834, 80210, 81585, 82961, 84336, 85712, 87087, 88463, 89838, 91214, 92589, 93965, 95340, 96716, 98092, 99467, 100843]]
data3 = [(i*1.151) for i in [0, 8420, 10376, 12327, 14279, 16232, 18186, 20139, 22091, 24044, 25998, 27951, 29902, 31857, 33809, 35761, 37714, 39667, 41621, 43573, 45527, 47479, 49433, 51384, 53339, 55290, 57242, 59197, 61149, 63102, 65054, 67009, 68961, 70914, 72868, 74821, 76772, 78724, 80678, 82631, 84584, 86537, 88490, 90443, 92395, 94348, 96301, 98254, 100207, 102160, 104113, 106066, 108019, 109972, 111925, 113878, 115831, 117783, 119736, 121689, 123642, 125595, 127548, 129501, 131454, 133407, 135360, 137313, 139266, 141219, 143171]]
data4 = [(i*1.151) for i in [0, 9885, 12178, 14472, 16763, 19055, 21349, 23642, 25933, 28225, 30519, 32812, 35102, 37396, 39689, 41981, 44273, 46567, 48859, 51150, 53444, 55737, 58029, 60320, 62614, 64907, 67200, 69492, 71784, 74077, 76368, 78662, 80955, 83249, 85539, 87832, 90125, 92418, 94709, 97002, 99296, 101589, 103881, 106174, 108467, 110759, 113052, 115344, 117637, 119930, 122222, 124515, 126807, 129100, 131393, 133685, 135978, 138270, 140563, 142856, 145148, 147441, 149733, 152026, 154319, 156611, 158904, 161196, 163489, 165782, 168074]]
data5 = [(i*1.151) for i in [0, 1225, 1510, 1795, 2080, 2362, 2647, 2932, 3217, 3502, 3784, 4069, 4354, 4639, 4924, 5208, 5491, 5776, 6061, 6346, 6630, 6914, 7198, 7483, 7768, 8052, 8336, 8621, 8905, 9190, 9474, 9758, 10043, 10328, 10612, 10896, 11180, 11465, 11750, 12034, 12318, 12602, 12886, 13171, 13455, 13740, 14024, 14309, 14593, 14877, 15162, 15446, 15731, 16015, 16300, 16584, 16868, 17153, 17437, 17722, 18006, 18291, 18575, 18859, 19144, 19428, 19713, 19997, 20281, 20566, 20850]]
data6 = [(i*1.151) for i in [0, 0, 0, 846, 982, 1116, 1251, 1384, 1519, 1654, 1787, 1921, 2054, 2190, 2325, 2458, 2590, 2726, 2860, 2995, 3129, 3264, 3398, 3531, 3666, 3799, 3934, 4068, 4201, 4337, 4472, 4686, 4829, 4972, 5113, 5255, 5397, 5540, 5681, 5824, 5968, 6103, 6237, 6371, 6505, 6640, 6774, 6908, 7043, 7177, 7311, 7445, 7580, 7714, 7848, 7983, 8117, 8251, 8385, 8520, 8654, 8788, 8923, 9057, 9191, 9325, 9460, 9594, 9728, 9863, 9997]]
data = [data1, data2, data3, data4, data5, data6]
次数 = [1, 1, 1, 1, 1, 1, 9]
CD = 145
def 等效百分比(self, 武器类型):
sum = 0
for i in range(len(self.data)):
sum += self.data[i][self.等级] * self.次数[i]
return sum * self.倍率 * 1.1
# 地面释放
class 技能15(主动技能):
名称 = '忍法:飞燕手里剑'
备注 = '(完全打满)'
所在等级 = 60
等级上限 = 40
学习间隔 = 2
等级精通 = 30
data1 = [int(i*1.151) for i in [0, 88, 98, 105, 115, 123, 132, 140, 151, 159, 167, 178, 186, 194, 202, 213, 220, 230, 240, 249, 256, 264, 276, 283, 292, 301, 311, 318, 328, 338, 346, 354, 362, 371, 381, 390, 400, 408, 416, 426, 434, 443, 452, 461, 471, 479, 487, 496, 505, 514, 524, 533, 543, 553, 562, 571, 581, 591, 600, 609, 619, 629, 638, 647, 658, 667, 676, 685, 696, 705, 714]]
data2 = [int(i*1.151) for i in [0, 110, 121, 132, 142, 153, 165, 176, 188, 198, 210, 220, 232, 243, 254, 264, 276, 287, 299, 311, 321, 331, 343, 354, 366, 377, 388, 398, 410, 421, 433, 443, 453, 465, 476, 487, 498, 509, 520, 532, 544, 555, 566, 576, 586, 598, 609, 621, 631, 644, 655, 667, 679, 691, 704, 715, 727, 739, 751, 764, 775, 788, 799, 812, 824, 836, 848, 859, 872, 884, 896]]
data3 = [int(i*1.151) for i in [0, 62, 67, 76, 81, 88, 93, 99, 108, 114, 119, 127, 132, 140, 147, 151, 159, 164, 172, 178, 182, 189, 195, 202, 210, 215, 220, 227, 233, 240, 246, 253, 258, 266, 273, 279, 286, 291, 299, 305, 311, 316, 322, 330, 337, 341, 347, 354, 362, 368, 373, 380, 384, 390, 396, 401, 407, 413, 419, 425, 430, 436, 442, 448, 453, 459, 465, 471, 476, 482, 488]]
data4 = [int(i*1.151) for i in [0, 127, 138, 151, 164, 176, 189, 202, 213, 227, 240, 253, 264, 277, 291, 303, 316, 329, 341, 354, 367, 380, 392, 404, 418, 430, 443, 456, 468, 482, 494, 506, 519, 532, 544, 556, 570, 583, 595, 608, 621, 634, 647, 659, 671, 684, 698, 709, 721, 735, 748, 761, 774, 788, 801, 814, 827, 841, 854, 867, 881, 894, 908, 921, 934, 947, 961, 974, 987, 1001, 1014]]
data5 = [int(i*1.151) for i in [0, 440, 482, 527, 572, 617, 660, 705, 750, 794, 837, 884, 927, 972, 1015, 1061, 1105, 1149, 1195, 1239, 1282, 1328, 1372, 1417, 1460, 1504, 1550, 1593, 1638, 1684, 1727, 1772, 1816, 1862, 1905, 1950, 1995, 2038, 2082, 2127, 2172, 2216, 2260, 2306, 2349, 2394, 2437, 2484, 2527, 2571, 2615, 2659, 2703, 2747, 2790, 2834, 2878, 2922, 2966, 3008, 3052, 3096, 3140, 3184, 3228, 3272, 3315, 3359, 3403, 3447, 3491]]
data6 = [int(i*1.151) for i in [0, 366, 403, 441, 476, 514, 550, 586, 624, 661, 698, 735, 773, 810, 847, 885, 922, 959, 994, 1031, 1068, 1105, 1143, 1179, 1217, 1254, 1291, 1329, 1366, 1403, 1441, 1477, 1512, 1550, 1587, 1623, 1662, 1698, 1736, 1773, 1810, 1847, 1885, 1921, 1958, 1996, 2031, 2069, 2106, 2142, 2180, 2216, 2253, 2290, 2327, 2364, 2401, 2437, 2474, 2511, 2547, 2584, 2621, 2658, 2695, 2732, 2769, 2805, 2842, 2879, 2915]]
data7 = [int(i*1.151) for i in [0, 512, 563, 617, 668, 719, 771, 822, 874, 926, 978, 1030, 1082, 1134, 1187, 1238, 1290, 1342, 1394, 1445, 1496, 1549, 1600, 1653, 1704, 1756, 1806, 1861, 1911, 1965, 2015, 2068, 2119, 2172, 2223, 2274, 2326, 2376, 2431, 2481, 2534, 2585, 2638, 2689, 2742, 2793, 2845, 2895, 2949, 2999, 3052, 3103, 3154, 3206, 3258, 3308, 3360, 3411, 3463, 3514, 3566, 3616, 3668, 3719, 3771, 3823, 3874, 3926, 3976, 4028, 4079]]
次数 = [1,3,15,15,1,10,10]
data0 = [data1,data2,data3,data4,data5,data6,data7]
攻击倍率 = 1
CD = 30
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
是否有护石 = 1
def 等效百分比(self, 武器类型):
sum = 0
for i in range(len(self.data0)):
sum += self.data0[i][self.等级] * self.次数[i]
return sum * self.倍率 * (1 + self.TP成长 * self.TP等级)
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.倍率 *= 1.07
elif x == 1:
self.倍率 *= 1.07 + 0.09
class 技能16(主动技能):
名称 = '火遁·风魔手里剑'
所在等级 = 70
等级上限 = 40
学习间隔 = 2
等级精通 = 30
data1 = [int(i*1.172) for i in [0, 250, 274, 300, 325, 351, 375, 401, 426, 452, 477, 502, 527, 553, 578, 604, 629, 654, 680, 705, 731, 755, 781, 806, 832, 856, 882, 907, 933, 958, 984, 1008, 1034, 1060, 1085, 1111, 1135, 1161, 1186, 1212, 1236, 1262, 1287, 1313, 1338, 1363, 1388, 1414, 1439, 1465, 1490, 1515, 1541, 1566, 1592, 1616, 1642, 1667, 1693, 1717, 1743, 1768, 1794, 1819, 1844, 1869, 1895, 1921, 1946, 1971, 1996]]
攻击次数1 = 15
data2 = [int(i*1.172) for i in [0, 561, 618, 676, 732, 789, 846, 903, 960, 1017, 1073, 1131, 1188, 1244, 1302, 1359, 1416, 1472, 1530, 1587, 1643, 1701, 1758, 1814, 1871, 1929, 1985, 2042, 2100, 2157, 2213, 2270, 2328, 2384, 2441, 2499, 2555, 2612, 2670, 2726, 2783, 2840, 2898, 2954, 3011, 3069, 3125, 3182, 3239, 3296, 3353, 3410, 3466, 3524, 3581, 3638, 3695, 3752, 3809, 3865, 3923, 3980, 4036, 4094, 4151, 4207, 4264, 4322, 4379, 4435, 4493]]
攻击次数2 = 10
data3 = [int(i*1.172) for i in [0, 9360, 10309, 11259, 12209, 13159, 14108, 15058, 16007, 16957, 17906, 18856, 19806, 20756, 21706, 22654, 23604, 24554, 25504, 26453, 27403, 28353, 29303, 30251, 31201, 32151, 33101, 34050, 35000, 35950, 36899, 37848, 38798, 39748, 40698, 41648, 42597, 43546, 44496, 45446, 46395, 47345, 48295, 49245, 50193, 51143, 52093, 53043, 53992, 54942, 55892, 56841, 57790, 58740, 59690, 60640, 61590, 62539, 63489, 64438, 65388, 66337, 67287, 68237, 69187, 70136, 71085, 72035, 72985, 73934, 74884]]
攻击次数3 = 1
CD = 50
攻击倍率 = 1
TP成长 = 0.10
TP基础 = 5
TP上限 = 5
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数1 = 0
self.攻击次数2 = 10 + 10
self.攻击次数3 = 1 * 1.14
elif x == 1:
self.攻击次数1 = 0
self.攻击次数2 = 10 + 10
self.攻击次数3 = 1 * (1.14 + 0.16)
class 技能17(主动技能):
名称 = '八尺琼勾玉'
备注 = '来回两次伤害'
所在等级 = 75
等级上限 = 1
基础等级 = 1
data1 = [0, 740]
攻击次数1 = 2
data2 = [0, 820]
攻击次数2 = 2
data3 = [0, 850]
攻击次数3 = 2
CD = 3.0
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率
def 等效CD(self, 武器类型, 输出类型):
# Will修改
return round(self.CD / self.恢复, 1)
class 技能18(被动技能):
名称 = '八咫镜'
所在等级 = 75
等级上限 = 40
基础等级 = 11
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.08 + 0.02 * self.等级, 5)
class 技能19(主动技能):
名称 = '八岐大蛇'
备注 = '(者皆阵结印)'
所在等级 = 75
等级上限 = 40
学习间隔 = 2
等级精通 = 30
data1 = [int(i*1.227) for i in [0, 2406, 2555, 2705, 2853, 3002, 3150, 3300, 3449, 3598, 3747, 3895, 4044, 4193, 4343, 4491, 4641, 4789, 4938, 5087, 5236, 5385, 5534, 5682, 5832, 5981, 6130, 6279, 6428, 6576, 6725, 6874, 7023, 7173, 7320, 7470, 7619, 7768, 7917, 8066, 8214, 8363, 8513, 8661, 8811, 8960, 9108, 9257, 9406, 9556, 9704, 9854, 10001, 10151, 10299, 10449, 10599, 10747, 10896, 11044, 11194, 11342, 11492, 11642, 11789, 11939, 12087, 12237, 12385, 12535, 12682]]
攻击次数1 = 1
data2 = [int(i*1.227) for i in [0, 2490, 2718, 2949, 3177, 3407, 3635, 3864, 4094, 4323, 4552, 4781, 5010, 5240, 5469, 5698, 5927, 6156, 6386, 6615, 6843, 7073, 7301, 7532, 7760, 7989, 8218, 8447, 8677, 8906, 9135, 9363, 9593, 9822, 10052, 10280, 10510, 10738, 10969, 11197, 11427, 11655, 11885, 12114, 12344, 12572, 12801, 13030, 13260, 13489, 13718, 13947, 14175, 14406, 14634, 14864, 15092, 15321, 15551, 15780, 16009, 16238, 16467, 16697, 16926, 17155, 17384, 17613, 17843, 18072, 18300]]
攻击次数2 = 10
data3 = [int(i*1.227) for i in [0, 389, 449, 510, 568, 628, 689, 747, 807, 866, 926, 986, 1045, 1105, 1163, 1224, 1284, 1342, 1403, 1463, 1521, 1582, 1640, 1700, 1761, 1819, 1879, 1940, 1998, 2058, 2118, 2177, 2237, 2296, 2356, 2415, 2475, 2535, 2593, 2654, 2714, 2772, 2833, 2892, 2951, 3012, 3070, 3130, 3191, 3249, 3309, 3369, 3428, 3488, 3548, 3607, 3666, 3726, 3786, 3845, 3905, 3965, 4023, 4084, 4143, 4202, 4263, 4322, 4381, 4442, 4501]]
攻击次数3 = 22
攻击倍率 = 1.0
CD = 43
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
护石选项 = ['圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数1 = 0
self.攻击次数2 = (10 + 1) * 1.74
self.攻击次数3 = 0
class 技能20(主动技能):
名称 = '天照'
备注 = '(者皆阵结印)'
所在等级 = 80
等级上限 = 40
学习间隔 = 2
等级精通 = 30
data1 = [int(i*1.21) for i in [0, 3245, 3573, 3903, 4232, 4562, 4891, 5219, 5549, 5878, 6208, 6537, 6865, 7195, 7525, 7854, 8182, 8512, 8840, 9171, 9500, 9828, 10158, 10487, 10817, 11145, 11474, 11803, 12133, 12461, 12791, 13121, 13449, 13779, 14108, 14437, 14766, 15096, 15424, 15754, 16083, 16412, 16742, 17070, 17400, 17729, 18058, 18387, 18717, 19046, 19375, 19705, 20032, 20363, 20692, 21021, 21351, 21679, 22009, 22338, 22667, 22995, 23325, 23654, 23984, 24314, 24641, 24971, 25301, 25630, 25958]]
攻击次数1 = 2
data2 = [int(i*1.21) for i in [0, 3454, 3805, 4155, 4505, 4857, 5207, 5558, 5908, 6258, 6609, 6959, 7309, 7660, 8010, 8361, 8711, 9061, 9413, 9762, 10112, 10463, 10814, 11165, 11514, 11864, 12216, 12566, 12917, 13267, 13617, 13969, 14319, 14670, 15019, 15370, 15721, 16071, 16420, 16772, 17122, 17472, 17823, 18173, 18524, 18874, 19224, 19575, 19925, 20275, 20626, 20976, 21328, 21678, 22028, 22379, 22729, 23081, 23430, 23780, 24131, 24482, 24833, 25182, 25532, 25884, 26234, 26584, 26933, 27285, 27635]]
攻击次数2 = 8
攻击倍率 = 1.06 # 者皆阵倍率
# 攻击倍率 = 1.03 # 临兵斗倍率
CD = 51
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
护石选项 = ['圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数2 = 8 * 1.33
self.CD *= 0.85
class 技能21(主动技能):
名称 = '开二觉平x'
备注 = '一轮平x'
所在等级 = 85
等级上限 = 1
#学习间隔 = 5
#等级精通 = 30
基础等级 = 1
# 投掷火焰苦无
data1 = [int(i*1.151) for i in [0, 232, 249, 265, 280, 297, 313, 329, 345, 361, 377, 393, 408, 424, 440, 457, 473, 488, 505, 521, 537, 552, 569, 585, 601, 616, 632, 648, 665, 680, 696, 712, 729, 744, 760, 777, 793, 809, 824, 840, 856, 872, 888, 904, 920, 937, 952, 968, 985, 1001, 1016, 1032, 1048, 1064, 1079, 1096, 1112, 1128, 1145, 1160, 1176, 1192, 1209, 1224, 1240, 1256, 1272, 1287, 1304, 1320, 1336]]
攻击次数1 = 6
# 火焰苦无爆炸
data2 = [int(i*1.151) for i in [0, 305, 315, 326, 336, 347, 357, 368, 378, 389, 399, 408, 420, 431, 440, 452, 462, 471, 483, 494, 503, 513, 525, 534, 545, 557, 566, 576, 588, 597, 608, 618, 629, 639, 650, 660, 671, 681, 692, 702, 713, 723, 734, 744, 755, 765, 776, 786, 797, 807, 818, 827, 839, 849, 859, 870, 881, 890, 902, 912, 922, 932, 944, 953, 964, 975, 985, 995, 1007, 1016, 1027]]
攻击次数2 = 6
# 地面斩击
data3 = [int(i*1.151) for i in [0, 969, 996, 1024, 1051, 1079, 1107, 1134, 1161, 1190, 1217, 1244, 1272, 1300, 1327, 1355, 1382, 1410, 1437, 1465, 1492, 1520, 1548, 1575, 1602, 1631, 1658, 1685, 1713, 1741, 1768, 1796, 1823, 1851, 1878, 1906, 1933, 1961, 1989, 2016, 2043, 2072, 2099, 2126, 2154, 2182, 2209, 2237, 2264, 2292, 2319, 2347, 2374, 2402, 2430, 2457, 2484, 2513, 2540, 2567, 2595, 2623, 2650, 2678, 2705, 2733, 2760, 2788, 2815, 2843, 2871]]
攻击次数3 = 1.3
# 攻击倍率3 = 0.65
攻击倍率 = 1
CD = 1.0
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
def 等效CD(self, 武器类型, 输出类型):
# Will修改
return round(self.CD / self.恢复, 1)
class 技能22(主动技能):
名称 = '火炎灼空:草雉剑'
所在等级 = 85
等级上限 = 40
学习间隔 = 5
等级精通 = 30
data1 = [int(i*1.151) for i in [0, 4544, 5599, 6653, 7706, 8760, 9814, 10867, 11921, 12975, 14028, 15082, 16137, 17191, 18244, 19298, 20352, 21405, 22459, 23514, 24568, 25621, 26676, 27730, 28783, 29837, 30891, 31944, 32998, 34052, 35105, 36159, 37214, 38268, 39321, 40375, 41429, 42482, 43536, 44590, 45643, 46697, 47752, 48805, 49859, 50913, 51967, 53020, 54074, 55128, 56181, 57235, 58290, 59345, 60398, 61452, 62506, 63559, 64613, 65667, 66720, 67774, 68829, 69883, 70936, 71990, 73044, 74097, 75151, 76205, 77258]]
攻击次数1 = 1
data2 = [int(i*1.151) for i in [0, 23026, 28366, 33704, 39044, 44383, 49722, 55061, 60401, 65739, 71079, 76418, 81758, 87097, 92437, 97776, 103115, 108455, 113793, 119133, 124472, 129811, 135150, 140491, 145829, 151169, 156507, 161847, 167186, 172525, 177865, 183204, 188545, 193883, 199223, 204561, 209901, 215240, 220579, 225918, 231258, 236596, 241936, 247277, 252615, 257955, 263294, 268633, 273972, 279312, 284650, 289990, 295328, 300668, 306007, 311348, 316686, 322026, 327366, 332704, 338044, 343382, 348722, 354061, 359400, 364739, 370080, 375418, 380758, 386097, 391436]]
攻击次数2 = 3
攻击倍率 = 1
CD = 180
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率
class 技能23(被动技能):
名称 = '三元刹'
所在等级 = 95
等级上限 = 40
基础等级 = 4
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.18 + 0.02 * self.等级, 5)
class 技能24(主动技能):
名称 = '勾玉之火·镰鼬'
备注 = '(者皆阵结印)'
所在等级 = 95
等级上限 = 40
学习间隔 = 2
等级精通 = 30
data1 = [int(i*1.129) for i in [0, 9696, 10680, 11664, 12648, 13631, 14615, 15599, 16582, 17566, 18550, 19534, 20517, 21501, 22485, 23468, 24452, 25436, 26419, 27403, 28387, 29371, 30354, 31338, 32322, 33305, 34289, 35273, 36256, 37240, 38224, 39208, 40191, 41175, 42159, 43142, 44126, 45110, 46093, 47077, 48061, 49045, 50028, 51012, 51996, 52979, 53963, 54947, 55930, 56914, 57898, 58882, 59865, 60849, 61833, 62816, 63800, 64784, 65767, 66751, 67735, 68719, 69702, 70686, 71670, 72653, 73637, 74621, 75605, 76588, 77572]]
data2 = [int(i*1.129) for i in [0, 1293, 1424, 1555, 1686, 1817, 1949, 2080, 2211, 2342, 2473, 2604, 2736, 2867, 2998, 3129, 3260, 3391, 3523, 3654, 3785, 3916, 4047, 4178, 4310, 4441, 4572, 4703, 4834, 4965, 5097, 5228, 5359, 5490, 5621, 5752, 5883, 6015, 6146, 6277, 6408, 6539, 6670, 6802, 6933, 7064, 7195, 7326, 7457, 7589, 7720, 7851, 7982, 8113, 8244, 8376, 8507, 8638, 8769, 8900, 9031, 9162, 9294, 9425, 9556, 9687, 9818, 9949, 10081, 10212, 10343]]
data3 = [int(i*1.129) for i in [0, 45738, 50378, 55018, 59658, 64298, 68938, 73578, 78219, 82859, 87499, 92139, 96779, 101419, 106059, 110700, 115340, 119980, 124620, 129260, 133900, 138540, 143180, 147820, 152460, 157100, 161741, 166381, 171021, 175661, 180301, 184941, 189581, 194221, 198861, 203501, 208142, 212782, 217422, 222062, 226702, 231342, 235982, 240622, 245262, 249902, 254542, 259183, 263823, 268463, 273103, 277743, 282383, 287023, 291663, 296303, 300943, 305583, 310224, 314864, 319504, 324144, 328784, 333424, 338064, 342705, 347345, 351985, 356625, 361265, 365905]]
data0 = [data1,data2,data3]
次数 = [1,30,1]
攻击倍率 = 1.06
CD = 60
def 等效百分比(self, 武器类型):
sum = 0
for i in range(len(self.data0)):
sum += self.data0[i][self.等级] * self.次数[i]
return sum * self.倍率 * (1 + self.TP成长 * self.TP等级) *self.攻击倍率
# def 等效百分比(self, 武器类型):
# return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 * self.攻击倍率) * (1 + self.TP成长 * self.TP等级) * self.倍率
class 技能25(主动技能):
名称 = '火源限界·八咫乌'
所在等级 = 100
等级上限 = 40
学习间隔 = 5
等级精通 = 30
data1 = [int(i*1.151) for i in [0, 5932, 7308, 8683, 10059, 11434, 12810, 14185, 15561, 16937, 18312, 19688, 21063, 22439, 23814, 25190, 26565, 27941, 29317, 30692, 32068, 33443, 34819, 36194, 37570, 38945, 40321, 41697, 43072, 44448, 45823, 47199, 48574, 49950, 51325, 52701, 54077, 55452, 56828, 58203, 59579, 60954, 62330, 63706, 65081, 66457, 67832, 69208, 70583, 71959, 73334, 74710, 76086, 77461, 78837, 80212, 81588, 82963, 84339, 85714, 87090, 88466, 89841, 91217, 92592, 93968, 95343, 96719, 98094, 99470, 100846]]
data2 = [int(i*1.151) for i in [0, 7627, 9396, 11164, 12933, 14701, 16470, 18238, 20007, 21776, 23544, 25313, 27081, 28850, 30618, 32387, 34156, 35924, 37693, 39461, 41230, 42998, 44767, 46536, 48304, 50073, 51841, 53610, 55378, 57147, 58916, 60684, 62453, 64221, 65990, 67758, 69527, 71296, 73064, 74833, 76601, 78370, 80139, 81907, 83676, 85444, 87213, 88981, 90750, 92519, 94287, 96056, 97824, 99593, 101361, 103130, 104899, 106667, 108436, 110204, 111973, 113741, 115510, 117279, 119047, 120816, 122584, 124353, 126121, 127890, 129659]]
data3 = [int(i*1.151) for i in [0, 177963, 219230, 260496, 301763, 343030, 384296, 425563, 466830, 508097, 549363, 590630, 631897, 673164, 714430, 755697, 796964, 838230, 879497, 920764, 962031, 1003297, 1044564, 1085831, 1127098, 1168364, 1209631, 1250898, 1292165, 1333431, 1374698, 1415965, 1457231, 1498498, 1539765, 1581032, 1622298, 1663565, 1704832, 1746099, 1787365, 1828632, 1869899, 1911165, 1952432, 1993699, 2034966, 2076232, 2117499, 2158766, 2200033, 2241299, 2282566, 2323833, 2365100, 2406366, 2447633, 2488900, 2530166, 2571433, 2612700, 2653967, 2695233, 2736500, 2777767, 2819034, 2860300, 2901567, 2942834, 2984100, 3025367]]
data0 = [data1,data2,data3]
次数 = [12,14,1]
CD = 290.0
关联技能 = ['无']
def 加成倍率(self, 武器类型):
return 0.0
def 等效百分比(self, 武器类型):
sum = 0
for i in range(len(self.data0)):
sum += self.data0[i][self.等级] * self.次数[i]
return sum * self.倍率 * (1 + self.TP成长 * self.TP等级)
class 技能26(被动技能):
名称 = '忍术精通'
所在等级 = 15
等级上限 = 1
基础等级 = 1
关联技能 = ['无']
冷却关联技能 = ['火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑','火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照','勾玉之火·镰鼬']
def CD缩减倍率(self, 武器类型):
return 0.8
技能列表 = []
i = 0
while i >= 0:
try:
tem = eval('技能'+str(i)+'()')
tem.基础等级计算()
技能列表.append(tem)
i += 1
except:
i = -1
技能序号 = dict()
for i in range(len(技能列表)):
技能序号[技能列表[i].名称] = i
一觉序号 = 0
二觉序号 = 0
三觉序号 = 0
for i in 技能列表:
if i.所在等级 == 50:
一觉序号 = 技能序号[i.名称]
if i.所在等级 == 85:
二觉序号 = 技能序号[i.名称]
if i.所在等级 == 100:
三觉序号 = 技能序号[i.名称]
护石选项 = ['无']
for i in 技能列表:
if i.是否有伤害 == 1 and i.是否有护石 == 1:
护石选项.append(i.名称)
符文选项 = ['无']
for i in 技能列表:
if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
符文选项.append(i.名称)
class 职业属性(角色属性):
实际名称 = '隐夜·忍者'
角色 = '暗夜使者'
职业 = '忍者'
武器选项 = ['苦无']
类型选择 = ['魔法百分比']
类型 = '魔法百分比'
防具类型 = '布甲'
防具精通属性 = ['智力', '力量']
主BUFF = 2.04
远古记忆 = 0
六道绑定技能 = []
def __init__(self):
基础属性输入(self)
self.技能栏 = deepcopy(技能列表)
self.技能序号 = deepcopy(技能序号)
def 被动倍率计算(self):
super().被动倍率计算()
self.技能栏[self.技能序号['毕方之印']].攻击次数1 = int(self.时间输入/2.5)
self.技能栏[self.技能序号['毕方之印']].攻击次数2 = math.ceil(self.时间输入 / 10) - 1
self.火属性强化 += self.技能栏[self.技能序号['毕方之印']].属强加成()
self.技能栏[21].等级 = self.技能栏[22].等级
def 数据计算(self, x=0, y=-1):
self.预处理()
# 初步计算
技能释放次数 = self.技能释放次数计算()
技能单次伤害 = self.技能单次伤害计算(y)
技能总伤害 = self.技能总伤害计算(技能释放次数, 技能单次伤害)
# 六道伤害计算
if self.技能栏[self.技能序号['忍法:六道轮回']].等级 != 0 and 技能释放次数[self.技能序号['忍法:六道轮回']] != 0:
self.技能栏[self.技能序号['忍法:六道轮回']].六道技能显示 = []
默认宠物技能 = ['火遁·炎天道', '火遁·蟾蜍油炎弹',
'火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照']
# if self.宠物次数[self.技能序号['忍法:六道轮回']] == 0 :
# self.宠物次数[self.技能序号['忍法:六道轮回']] = 0
# else:
# self.宠物次数[self.技能序号['忍法:六道轮回']] = 1
for i in self.六道绑定技能:
if 技能释放次数[self.技能序号[i]] != 0 and self.技能栏[self.技能序号[i]].等级 != 0:
if i in 默认宠物技能:
技能总伤害[self.技能序号[i]] += 0.8 * 技能单次伤害[self.技能序号[i]] * (
1+self.白兔子技能*0.20+self.年宠技能*0.10*self.宠物次数[self.技能序号['忍法:六道轮回']]+self.斗神之吼秘药*0.12) * 技能释放次数[self.技能序号['忍法:六道轮回']]
默认宠物技能.remove(i)
self.技能栏[self.技能序号['忍法:六道轮回']].六道技能显示.append(i)
else:
技能总伤害[self.技能序号[i]] += 0.8 * 技能单次伤害[self.技能序号[i]] * \
(1+self.白兔子技能*0.20 + self.斗神之吼秘药*0.12) * \
技能释放次数[self.技能序号['忍法:六道轮回']]
self.技能栏[self.技能序号['忍法:六道轮回']].六道技能显示.append(i)
else:
self.技能栏[self.技能序号['忍法:六道轮回']].自定义描述 = 0
# 返回结果
return self.数据返回(x, 技能释放次数, 技能总伤害)
class 隐夜·忍者(角色窗口):
def 窗口属性输入(self):
self.初始属性 = 职业属性()
self.角色属性A = 职业属性()
self.角色属性B = 职业属性()
self.一觉序号 = 一觉序号
self.二觉序号 = 二觉序号
self.三觉序号 = 三觉序号
self.护石选项 = deepcopy(护石选项)
self.符文选项 = deepcopy(符文选项)
def 载入配置(self, path='set'):
super().载入配置(path)
try:
setfile = open('./ResourceFiles/' + self.角色属性A.实际名称 + '/' +
path + '/skill5.ini', 'r', encoding='utf-8').readlines()
num = 0
for i in range(len(self.可绑定技能)):
self.绑定技能次数[i].setCurrentIndex(
int(setfile[num].replace('\n', '')))
num += 1
except:
pass
def 界面(self):
super().界面()
self.六道绑定按钮 = []
self.可绑定技能 = ['火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法:替身术',
'火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照']
self.绑定技能次数 = []
水平间隔 = 210
竖直间隔 = 30
for i in range(len(self.可绑定技能)):
self.六道绑定按钮.append(QLabel(self.可绑定技能[i], self.main_frame2))
self.六道绑定按钮[i].setAlignment(Qt.AlignCenter)
self.六道绑定按钮[i].resize(100, 20)
self.六道绑定按钮[i].move(325 + (i % 2) * 水平间隔, 420 + int(i / 2) * 竖直间隔)
self.六道绑定按钮[i].setStyleSheet(标签样式)
self.绑定技能次数.append(MyQComboBox(self.main_frame2))
self.绑定技能次数[i].resize(48, 20)
self.绑定技能次数[i].move(440 + (i % 2) * 水平间隔, 420 + int(i / 2) * 竖直间隔)
self.绑定技能次数[i].addItem('0')
self.绑定技能次数[i].addItem('1')
self.绑定技能次数[i].addItem('2')
self.绑定技能次数[i].addItem('3')
self.职业存档.append((self.可绑定技能[i], self.绑定技能次数[i], 1))
def 输入属性(self, 属性, x=0):
super().输入属性(属性, x)
# for i in range(len(self.可绑定技能)):
# if self.次数输入[self.角色属性A.技能序号[self.可绑定技能[i]]].currentIndex() != 0:
# self.绑定技能次数[i].setCurrentIndex(min(self.绑定技能次数[i].currentIndex(), self.次数输入[self.角色属性A.技能序号[self.可绑定技能[i]]].currentIndex() - 1))
temp = []
for i in range(len(self.可绑定技能)):
if self.绑定技能次数[i].currentIndex() == 1:
temp.append(self.可绑定技能[i])
elif self.绑定技能次数[i].currentIndex() == 2:
temp.append(self.可绑定技能[i])
temp.append(self.可绑定技能[i])
elif self.绑定技能次数[i].currentIndex() == 3:
temp.append(self.可绑定技能[i])
temp.append(self.可绑定技能[i])
temp.append(self.可绑定技能[i])
属性.六道绑定技能 = deepcopy(temp)