835 lines
42 KiB
Python
835 lines
42 KiB
Python
from core.basic.skill import 技能
|
|
from core.basic.character import Character
|
|
from core.basic.skill import 主动技能, 被动技能
|
|
|
|
|
|
class 主动技能(主动技能):
|
|
六道 = True
|
|
灼伤转换 = []
|
|
灼伤倍率 = 0.25
|
|
|
|
def 等效百分比(self, **argv):
|
|
# 20%转化为灼伤,直伤和异常比为4:1
|
|
for i in self.灼伤转换:
|
|
if len(getattr(self, 'data{}'.format(str(i)), [])) > 0:
|
|
setattr(self, '灼伤data{}'.format(str(i)), [
|
|
int(j*self.灼伤倍率) for j in getattr(self, 'data{}'.format(str(i)), [])])
|
|
setattr(self, '灼伤hit{}'.format(str(i)),
|
|
getattr(self, 'hit{}'.format(str(i)), 0))
|
|
setattr(self, '灼伤power{}'.format(str(i)),
|
|
getattr(self, 'power{}'.format(str(i)), 0))
|
|
return super().等效百分比(**argv)
|
|
|
|
|
|
class 技能0(主动技能):
|
|
名称 = '投掷苦无'
|
|
所在等级 = 1
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 2.5
|
|
MP = [8, 91]
|
|
无色消耗 = 0
|
|
data0 = [0, 382, 432, 482, 530, 582, 631, 681, 730, 782, 830, 881, 930, 979, 1029, 1080, 1129, 1179, 1229, 1279, 1329, 1379, 1427, 1478, 1528, 1578, 1627, 1678, 1726, 1778, 1827, 1876, 1926, 1976, 2026, 2076, 2126, 2175, 2225, 2276, 2324, 2375, 2424, 2474, 2524, 2575, 2623, 2674, 2723, 2774, 2823, 2873, 2922, 2972, 3023, 3072, 3122, 3172, 3220, 3272, 3321, 3371, 3420, 3471, 3520, 3571, 3619, 3670, 3719, 3771, 3819]
|
|
hit0 = 1
|
|
TP成长 = 0.1
|
|
TP上限 = 7
|
|
|
|
六道 = False
|
|
|
|
|
|
class 技能1(主动技能):
|
|
名称 = '焰刃'
|
|
所在等级 = 5
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 5
|
|
MP = [15, 168]
|
|
无色消耗 = 0
|
|
data0 = [0, 1319, 1494, 1664, 1836, 2008, 2179, 2354, 2522, 2697, 2868, 3041, 3215, 3384, 3557, 3730, 3901, 4076, 4244, 4418, 4591, 4762, 4937, 5105, 5280, 5451, 5624, 5795, 5966, 6140, 6313, 6483, 6656, 6827, 7001, 7173, 7344, 7517, 7688, 7862, 8034, 8203, 8378, 8548, 8723, 8894, 9065, 9238, 9410, 9583, 9754, 9925, 10100, 10270, 10445, 10614, 10786, 10960, 11131, 11305, 11475, 11647, 11821, 11992, 12165, 12336, 12508, 12682, 12853, 13025, 13197]
|
|
hit0 = 2
|
|
TP成长 = 0.1
|
|
TP上限 = 7
|
|
|
|
六道 = False
|
|
|
|
|
|
class 技能2(主动技能):
|
|
名称 = "火遁·豪火球之术"
|
|
所在等级 = 15
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 7.5
|
|
MP = [15, 150]
|
|
无色消耗 = 0
|
|
data0 = [0, 120, 133, 144, 159, 170, 184, 195, 208, 219, 234, 244, 258, 270, 282, 292, 306, 317, 331, 343, 355, 367, 381, 392, 402, 417, 428, 441, 450, 465, 476, 489, 500, 515, 526, 540, 551, 564, 575, 588, 599, 614, 625, 638, 647, 662, 674, 688, 698, 711, 722, 736, 748, 761, 771, 786, 797, 810, 822, 835, 845, 860, 872, 884, 897, 908, 919, 933, 946, 955, 969]
|
|
hit0 = 12
|
|
data1 = [0, 561, 609, 657, 706, 758, 807, 854, 903, 953, 1003, 1051, 1100, 1149, 1199, 1249, 1297, 1347, 1395, 1443, 1493, 1543, 1592, 1640, 1689, 1740, 1790, 1837, 1887, 1934, 1986, 2033, 2083, 2132, 2183, 2232, 2279, 2330, 2379, 2429, 2476, 2525, 2575, 2624, 2673, 2722, 2773, 2821, 2872, 2919, 2969, 3017, 3066, 3115, 3165, 3215, 3262, 3312, 3362, 3412, 3460, 3509, 3558, 3608, 3655, 3705, 3755, 3805, 3854, 3902, 3952]
|
|
hit1 = 1
|
|
TP成长 = 0.1
|
|
TP上限 = 7
|
|
|
|
灼伤转换 = [0, 1]
|
|
|
|
|
|
class 技能3(被动技能):
|
|
名称 = '忍术精通'
|
|
所在等级 = 15
|
|
等级上限 = 1
|
|
基础等级 = 1
|
|
关联技能 = ['无']
|
|
冷却关联技能 = ['投掷苦无', '焰刃', '火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑',
|
|
'火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照', '勾玉之火·镰鼬']
|
|
|
|
def CD缩减倍率(self, 武器类型):
|
|
return 0.8
|
|
|
|
|
|
# 25%转化为灼伤,基础攻击力-20%
|
|
class 技能4(主动技能):
|
|
名称 = "忍法:幻影手里剑"
|
|
所在等级 = 20
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 12
|
|
MP = [91, 910]
|
|
无色消耗 = 0
|
|
data0 = [0, 172, 191, 207, 226, 244, 261, 278, 296, 313, 331, 349, 366, 382, 400, 419, 437, 453, 471, 488, 507, 523, 541, 558, 576, 595, 611, 628, 647, 665, 680, 699, 717, 734, 753, 768, 788, 804, 822, 840, 858, 874, 892, 909, 926, 944, 962, 980, 997, 1015, 1031, 1050, 1067, 1084, 1102, 1121, 1136, 1155, 1173, 1190, 1207, 1224, 1243, 1262, 1276, 1294, 1314, 1329, 1347, 1364, 1383]
|
|
hit0 = 10
|
|
data1 = [0, 172, 191, 207, 226, 244, 261, 278, 296, 313, 331, 349, 366, 382, 400, 419, 437, 453, 471, 488, 507, 523, 541, 558, 576, 595, 611, 628, 647, 665, 680, 699, 717, 734, 753, 768, 788, 804, 822, 840, 858, 874, 892, 909, 926, 944, 962, 980, 997, 1015, 1031, 1050, 1067, 1084, 1102, 1121, 1136, 1155, 1173, 1190, 1207, 1224, 1243, 1262, 1276, 1294, 1314, 1329, 1347, 1364, 1383]
|
|
hit1 = 20
|
|
data2 = [0, 172, 191, 207, 226, 244, 261, 278, 296, 313, 331, 349, 366, 382, 400, 419, 437, 453, 471, 488, 507, 523, 541, 558, 576, 595, 611, 628, 647, 665, 680, 699, 717, 734, 753, 768, 788, 804, 822, 840, 858, 874, 892, 909, 926, 944, 962, 980, 997, 1015, 1031, 1050, 1067, 1084, 1102, 1121, 1136, 1155, 1173, 1190, 1207, 1224, 1243, 1262, 1276, 1294, 1314, 1329, 1347, 1364, 1383]
|
|
hit2 = 10
|
|
hit5 = 10
|
|
TP成长 = 0.1
|
|
TP上限 = 7
|
|
|
|
灼伤转换 = [0, 1, 2]
|
|
|
|
|
|
# 25%转化为灼伤,基础攻击力-20%
|
|
class 技能5(主动技能):
|
|
名称 = "火遁·飓风煞"
|
|
所在等级 = 25
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 17
|
|
MP = [61, 610]
|
|
无色消耗 = 0
|
|
data0 = [0, 122, 137, 149, 160, 174, 184, 197, 210, 223, 235, 248, 261, 271, 283, 298, 310, 323, 336, 346, 359, 372, 385, 397, 410, 421, 433, 446, 461, 472, 484, 496, 509, 521, 534, 547, 558, 572, 584, 597, 609, 622, 634, 646, 660, 669, 684, 698, 709, 722, 733, 746, 759, 771, 785, 795, 808, 820, 833, 846, 860, 869, 882, 896, 908, 922, 932, 946, 957, 970, 984]
|
|
hit0 = 25
|
|
data1 = [0, 901, 993, 1083, 1174, 1266, 1359, 1450, 1543, 1632, 1722, 1813, 1904, 1998, 2089, 2180, 2271, 2363, 2455, 2546, 2638, 2729, 2820, 2910, 3003, 3094, 3185, 3275, 3369, 3460, 3551, 3643, 3732, 3825, 3914, 4008, 4099, 4191, 4282, 4373, 4464, 4558, 4649, 4741, 4830, 4922, 5013, 5104, 5196, 5288, 5379, 5469, 5561, 5653, 5745, 5838, 5928, 6019, 6109, 6201, 6294, 6384, 6475, 6567, 6659, 6751, 6842, 6932, 7024, 7113, 7206]
|
|
hit1 = 1
|
|
|
|
TP成长 = 0.1
|
|
TP上限 = 7
|
|
|
|
灼伤转换 = [0, 1]
|
|
|
|
|
|
class 技能6(被动技能):
|
|
名称 = '苦无精通'
|
|
所在等级 = 25
|
|
等级上限 = 20
|
|
基础等级 = 10
|
|
|
|
def 魔法攻击力倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(1.23 + 0.01 * self.等级, 5)
|
|
|
|
|
|
class 技能7(被动技能):
|
|
名称 = '烈焰印记'
|
|
所在等级 = 25
|
|
等级上限 = 20
|
|
基础等级 = 10
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(1.3 + 0.01 * self.等级, 5)
|
|
|
|
|
|
# 25%转化为灼伤,基础攻击力-20% youwenti
|
|
class 技能8(主动技能):
|
|
名称 = "火遁·螺旋手里剑"
|
|
所在等级 = 30
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 12
|
|
MP = [91, 910]
|
|
无色消耗 = 0
|
|
data0 = [0, 192, 210, 229, 248, 268, 287, 307, 326, 347, 364, 384, 403, 423, 443, 462, 480, 501, 521, 539, 559, 579, 597, 618, 635, 656, 676, 693, 713, 732, 752, 773, 791, 809, 829, 848, 869, 887, 907, 926, 946, 964, 985, 1004, 1024, 1043, 1060, 1081, 1101, 1120, 1141, 1157, 1178, 1198, 1216, 1236, 1256, 1274, 1294, 1312, 1332, 1353, 1371, 1391, 1410, 1430, 1449, 1469, 1486, 1507, 1526]
|
|
hit0 = 15
|
|
data1 = [0, 787, 868, 946, 1026, 1107, 1187, 1266, 1347, 1425, 1506, 1587, 1665, 1745, 1825, 1905, 1984, 2065, 2145, 2223, 2304, 2385, 2464, 2543, 2624, 2703, 2782, 2863, 2943, 3023, 3102, 3182, 3263, 3342, 3421, 3502, 3582, 3660, 3741, 3822, 3900, 3980, 4062, 4142, 4220, 4299, 4381, 4459, 4539, 4621, 4700, 4778, 4859, 4940, 5018, 5099, 5178, 5258, 5338, 5418, 5498, 5579, 5657, 5736, 5819, 5897, 5976, 6057, 6136, 6215, 6297]
|
|
hit1 = 1
|
|
TP成长 = 0
|
|
TP上限 = 7
|
|
|
|
灼伤转换 = [0, 1]
|
|
|
|
def 等效百分比(self, **argv):
|
|
if self.TP等级 == 0:
|
|
self.hit0 = 15
|
|
self.hit1 = 1
|
|
else:
|
|
self.hit0 = 15 - self.TP等级*2-1
|
|
self.power1 = self.TP等级 + 1
|
|
|
|
return super().等效百分比(**argv)
|
|
|
|
|
|
class 技能9(主动技能):
|
|
名称 = '忍法:残影术'
|
|
所在等级 = 35
|
|
等级上限 = 11
|
|
基础等级 = 1
|
|
是否有伤害 = 0
|
|
MP = [128, 1280]
|
|
关联技能 = ['投掷苦无', '焰刃', '火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法:替身术', '火遁·炎天道', '火遁·蟾蜍油炎弹',
|
|
'火遁·炎舞天璇', '火遁·冥炎业火阵', '八岐大蛇', '火遁·风魔手里剑', '忍法:飞燕手里剑', '天照', '勾玉之火·镰鼬', '火炎灼空:草雉剑', '火源限界·八咫乌']
|
|
额外倍率 = 0
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(0.98 + 0.02 * self.等级, 5)
|
|
|
|
def 六道倍率(self):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(0.98 + 0.02 * self.等级 + self.额外倍率, 5)/round(0.98 + 0.02 * self.等级, 5)
|
|
|
|
|
|
class 技能10(主动技能):
|
|
名称 = "忍法:替身术"
|
|
所在等级 = 35
|
|
等级上限 = 70
|
|
学习间隔 = 3
|
|
等级精通 = 60
|
|
CD = 25
|
|
MP = [91, 910]
|
|
无色消耗 = 0
|
|
data0 = [0, 2886, 3347, 3807, 4268, 4728, 5185, 5646, 6107, 6571, 7027, 7490, 7950, 8410, 8869, 9331, 9790, 10250, 10711, 11169, 11631, 12090, 12550, 13013, 13473, 13933, 14392, 14852, 15313, 15774, 16234, 16691, 17152, 17613, 18073, 18533, 18997, 19455, 19916, 20376, 20835, 21294, 21755, 22214, 22675, 23136, 23594, 24056, 24518, 24976, 25439, 25898, 26356, 26817, 27279, 27735, 28197, 28658, 29117, 29579, 30039, 30495, 30960, 31422, 31879, 32340, 32800, 33261, 33720, 34181, 34642]
|
|
hit0 = 1
|
|
data1 = [0, 1731, 2009, 2285, 2562, 2837, 3115, 3387, 3664, 3944, 4215, 4494, 4770, 5046, 5322, 5596, 5873, 6152, 6427, 6702, 6978, 7254, 7533, 7807, 8085, 8357, 8634, 8913, 9186, 9463, 9738, 10017, 10293, 10569, 10845, 11119, 11396, 11674, 11948, 12225, 12502, 12776, 13055, 13330, 13607, 13880, 14156, 14434, 14709, 14986, 15260, 15539, 15816, 16089, 16367, 16642, 16919, 17195, 17471, 17746, 18024, 18301, 18578, 18851, 19127, 19407, 19679, 19957, 20230, 20508, 20786]
|
|
hit1 = 1
|
|
data2 = [0, 7622, 8835, 10051, 11266, 12482, 13696, 14912, 16126, 17343, 18556, 19770, 20987, 22197, 23418, 24628, 25847, 27059, 28279, 29491, 30703, 31922, 33133, 34354, 35564, 36781, 37995, 39207, 40426, 41638, 42857, 44068, 45283, 46499, 47714, 48928, 50142, 51358, 52573, 53788, 55003, 56219, 57432, 58650, 59862, 61079, 62294, 63510, 64724, 65937, 67155, 68368, 69586, 70798, 72013, 73229, 74442, 75659, 76874, 78090, 79304, 80516, 81734, 82947, 84165, 85375, 86592, 87808, 89023, 90236, 91452]
|
|
hit2 = 1
|
|
TP成长 = 0.1
|
|
TP上限 = 5
|
|
|
|
六道 = False
|
|
|
|
|
|
class 技能11(主动技能):
|
|
名称 = "火遁·炎天道"
|
|
所在等级 = 35
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 18
|
|
MP = [128, 1280]
|
|
无色消耗 = 1
|
|
data0 = [0, 262, 287, 317, 339, 366, 392, 420, 447, 473, 500, 525, 555, 580, 606, 630, 659, 687, 711, 741, 765, 792, 818, 845, 873, 898, 927, 950, 980, 1004, 1031, 1056, 1081, 1110, 1136, 1163, 1188, 1217, 1242, 1270, 1296, 1322, 1350, 1373, 1403, 1427, 1454, 1481, 1506, 1534, 1560, 1587, 1613, 1642, 1667, 1695, 1721, 1748, 1775, 1800, 1827, 1850, 1882, 1905, 1932, 1958, 1986, 2012, 2036, 2064, 2090]
|
|
hit0 = 1
|
|
data1 = [0, 785, 863, 944, 1022, 1101, 1182, 1263, 1342, 1423, 1501, 1580, 1659, 1739, 1817, 1899, 1977, 2057, 2138, 2216, 2297, 2377, 2453, 2533, 2614, 2694, 2774, 2855, 2932, 3011, 3092, 3172, 3251, 3330, 3408, 3489, 3568, 3649, 3727, 3810, 3888, 3965, 4047, 4125, 4203, 4285, 4364, 4444, 4525, 4605, 4685, 4762, 4842, 4922, 5000, 5080, 5160, 5240, 5319, 5400, 5479, 5558, 5637, 5715, 5794, 5876, 5956, 6037, 6113, 6193, 6275]
|
|
hit1 = 0
|
|
data2 = [0, 521, 575, 628, 682, 735, 791, 843, 896, 946, 1000, 1052, 1108, 1159, 1213, 1265, 1318, 1372, 1424, 1477, 1530, 1586, 1639, 1693, 1741, 1796, 1849, 1901, 1953, 2008, 2061, 2115, 2167, 2222, 2273, 2325, 2379, 2432, 2487, 2539, 2591, 2643, 2697, 2751, 2802, 2855, 2910, 2963, 3017, 3067, 3121, 3176, 3229, 3282, 3331, 3385, 3439, 3492, 3545, 3600, 3652, 3706, 3757, 3811, 3865, 3917, 3971, 4025, 4077, 4130, 4181]
|
|
hit2 = 1
|
|
data3 = [0, 4857, 5348, 5842, 6334, 6827, 7319, 7812, 8306, 8798, 9293, 9782, 10275, 10768, 11262, 11754, 12247, 12737, 13231, 13724, 14217, 14711, 15204, 15695, 16188, 16682, 17174, 17667, 18160, 18652, 19146, 19639, 20127, 20621, 21115, 21607, 22100, 22593, 23086, 23577, 24071, 24562, 25055, 25550, 26040, 26534, 27028, 27520, 28014, 28505, 28998, 29491, 29985, 30476, 30968, 31459, 31951, 32447, 32938, 33432, 33926, 34417, 34910, 35403, 35895, 36388, 36880, 37373, 37866, 38357, 38850]
|
|
hit3 = 1
|
|
TP成长 = 0.1
|
|
TP上限 = 5
|
|
|
|
灼伤转换 = [0, 1, 2, 3]
|
|
是否有护石 = 1
|
|
|
|
形态 = ["地面", "空中"]
|
|
|
|
def 形态变更(self, 形态, char):
|
|
if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
|
|
形态 = self.形态[0]
|
|
if 形态 == "地面":
|
|
self.hit0 = 1
|
|
self.hit1 = 0
|
|
elif 形态 == "空中":
|
|
self.hit0 = 0
|
|
self.hit1 = 1
|
|
|
|
def 装备护石(self, char):
|
|
self.power3 = 1.08
|
|
self.倍率 *= 1.18*1.0
|
|
|
|
|
|
class 技能12(主动技能):
|
|
名称 = "火遁·蟾蜍油炎弹"
|
|
所在等级 = 40
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 25
|
|
MP = [164, 1640]
|
|
无色消耗 = 1
|
|
data0 = [0, 222, 245, 266, 289, 311, 333, 356, 377, 401, 423, 445, 468, 490, 512, 534, 558, 580, 602, 625, 650, 669, 693, 717, 739, 760, 784, 807, 830, 850, 874, 898, 917, 941, 964, 986, 1007, 1030, 1054, 1076, 1098, 1120, 1142, 1165, 1187, 1209, 1233, 1254, 1276, 1299, 1320, 1344, 1368, 1391, 1415, 1436, 1458, 1481, 1501, 1526, 1548, 1571, 1592, 1616, 1639, 1661, 1683, 1706, 1728, 1750, 1772]
|
|
hit0 = 3
|
|
data1 = [0, 883, 974, 1066, 1156, 1246, 1336, 1424, 1515, 1605, 1695, 1786, 1877, 1965, 2056, 2144, 2235, 2324, 2416, 2504, 2597, 2686, 2774, 2865, 2954, 3045, 3133, 3223, 3315, 3405, 3493, 3585, 3674, 3763, 3853, 3944, 4034, 4125, 4215, 4304, 4393, 4483, 4573, 4661, 4755, 4843, 4933, 5024, 5113, 5203, 5292, 5381, 5474, 5563, 5653, 5743, 5833, 5923, 6013, 6101, 6194, 6284, 6374, 6463, 6554, 6642, 6731, 6820, 6912, 7002, 7092]
|
|
hit1 = 1
|
|
data2 = [0, 7092, 7811, 8533, 9251, 9973, 10692, 11410, 12131, 12849, 13569, 14290, 15010, 15727, 16446, 17167, 17884, 18605, 19324, 20042, 20764, 21482, 22204, 22923, 23641, 24362, 25082, 25800, 26522, 27241, 27959, 28680, 29399, 30119, 30838, 31559, 32276, 32996, 33717, 34436, 35156, 35877, 36595, 37313, 38036, 38754, 39471, 40192, 40912, 41631, 42351, 43072, 43792, 44509, 45229, 45949, 46670, 47388, 48109, 48827, 49546, 50267, 50987, 51708, 52427, 53145, 53866, 54584, 55304, 56026, 56744]
|
|
hit2 = 1
|
|
data3 = [0, 222, 245, 266, 289, 311, 333, 356, 377, 401, 423, 445, 468, 490, 512, 534, 558, 580, 602, 625, 650, 669, 693, 717, 739, 760, 784, 807, 830, 850, 874, 898, 917, 941, 964, 986, 1007, 1030, 1054, 1076, 1098, 1120, 1142, 1165, 1187, 1209, 1233, 1254, 1276, 1299, 1320, 1344, 1368, 1391, 1415, 1436, 1458, 1481, 1501, 1526, 1548, 1571, 1592, 1616, 1639, 1661, 1683, 1706, 1728, 1750, 1772]
|
|
hit3 = 1
|
|
TP成长 = 0.1
|
|
TP上限 = 5
|
|
|
|
灼伤转换 = [0, 1, 2, 3]
|
|
是否有护石 = 1
|
|
|
|
def 装备护石(self, char):
|
|
self.power2 = 1.19
|
|
self.倍率 *= 1.14
|
|
self.CDR *= 0.88
|
|
|
|
|
|
class 技能13(主动技能):
|
|
名称 = '忍法:六道轮回'
|
|
所在等级 = 40
|
|
等级上限 = 11
|
|
基础等级 = 1
|
|
关联技能 = ['火遁·豪火球之术', '忍法:幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法:替身术',
|
|
'火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照', '勾玉之火·镰鼬']
|
|
六道技能显示 = []
|
|
六道 = False
|
|
CD = 30
|
|
是否有伤害 = 1
|
|
|
|
自定义描述 = 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 Exception:
|
|
temp += '无'
|
|
return temp
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
return 1.0
|
|
|
|
|
|
class 技能14(主动技能):
|
|
名称 = "火遁·炎舞天璇"
|
|
所在等级 = 45
|
|
等级上限 = 70
|
|
学习间隔 = 2
|
|
等级精通 = 60
|
|
CD = 40
|
|
MP = [311, 3110]
|
|
无色消耗 = 2
|
|
data0 = [0, 511, 562, 616, 668, 717, 769, 819, 874, 926, 975, 1028, 1081, 1132, 1184, 1234, 1288, 1339, 1391, 1441, 1493, 1548, 1599, 1650, 1701, 1752, 1806, 1858, 1908, 1962, 2012, 2063, 2115, 2169, 2219, 2271, 2321, 2375, 2426, 2478, 2531, 2582, 2635, 2684, 2737, 2789, 2841, 2893, 2946, 2995, 3048, 3099, 3153, 3204, 3255, 3307, 3358, 3410, 3464, 3515, 3566, 3617, 3669, 3723, 3773, 3825, 3877, 3929, 3979, 4031, 4085]
|
|
hit0 = 8
|
|
data1 = [0, 155, 169, 184, 201, 215, 230, 247, 262, 278, 294, 307, 325, 341, 354, 370, 387, 401, 417, 433, 449, 464, 479, 494, 511, 527, 539, 558, 573, 591, 605, 618, 637, 650, 668, 680, 696, 712, 730, 744, 758, 776, 789, 807, 819, 838, 853, 866, 884, 898, 916, 929, 946, 961, 975, 992, 1007, 1023, 1039, 1056, 1069, 1085, 1102, 1117, 1132, 1148, 1164, 1179, 1196, 1209, 1227]
|
|
hit1 = 25
|
|
data2 = [0, 4213, 4641, 5066, 5492, 5920, 6348, 6774, 7202, 7629, 8056, 8482, 8911, 9339, 9767, 10191, 10620, 11045, 11475, 11902, 12329, 12756, 13183, 13610, 14039, 14465, 14892, 15319, 15745, 16174, 16601, 17029, 17456, 17882, 18308, 18735, 19164, 19594, 20020, 20448, 20872, 21298, 21728, 22154, 22582, 23009, 23436, 23862, 24291, 24718, 25147, 25573, 26001, 26426, 26855, 27281, 27708, 28135, 28562, 28990, 29419, 29847, 30271, 30698, 31125, 31555, 31981, 32409, 32836, 33263, 33689]
|
|
hit2 = 1
|
|
TP成长 = 0.10
|
|
TP上限 = 5
|
|
|
|
灼伤转换 = [0, 1, 2]
|
|
|
|
是否有护石 = 1
|
|
|
|
def 装备护石(self, char):
|
|
self.hit0 = 3
|
|
self.power1 = 2.38
|
|
self.CDR *= 0.9
|
|
|
|
|
|
class 技能15(被动技能):
|
|
名称 = '暗炎残星'
|
|
所在等级 = 45
|
|
等级上限 = 11
|
|
学习间隔 = 5
|
|
等级精通 = 1
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(1.09 + 0.01 * self.等级, 5)
|
|
|
|
|
|
class 技能16(主动技能):
|
|
名称 = '毕方之印'
|
|
是否主动 = 0
|
|
所在等级 = 48
|
|
等级上限 = 50
|
|
学习间隔 = 3
|
|
等级精通 = 40
|
|
|
|
CD = 1
|
|
# 该部分待测试,持续部分固定,但爆炸的时间点还需研究
|
|
# 火烙印 持续部分每2.5s一跳
|
|
data0 = [0, 169, 196, 223, 250, 277, 304, 331, 358, 385, 412, 439, 466, 492, 519, 546, 573, 600, 627, 654, 681, 708, 735, 762, 789, 816, 843, 870, 897, 924, 951, 978, 1005, 1031, 1058, 1085, 1112, 1139, 1166, 1193, 1220, 1247, 1274, 1301, 1328, 1355, 1382, 1409, 1436, 1463, 1490]
|
|
hit0 = 0.4
|
|
data1 = [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]
|
|
hit1 = 1
|
|
data2 = [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]
|
|
hit2 = 2
|
|
data3 = [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]
|
|
hit3 = 1
|
|
|
|
六道 = False
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(1.07 + 0.005 * self.等级, 5)
|
|
|
|
def 等效CD(self, **argv):
|
|
return 1.0
|
|
|
|
|
|
class 技能17(主动技能):
|
|
名称 = "火遁·冥炎业火阵"
|
|
所在等级 = 50
|
|
等级上限 = 50
|
|
学习间隔 = 5
|
|
等级精通 = 40
|
|
CD = 145
|
|
MP = [881, 7403]
|
|
无色消耗 = 5
|
|
data0 = [0, 4649, 5729, 6807, 7886, 8964, 10045, 11122, 12200, 13278, 14358, 15434, 16515, 17594, 18672, 19749, 20828, 21908, 22987, 24064, 25144, 26222, 27299, 28381, 29457, 30535, 31613, 32693, 33772, 34850, 35928, 37006, 38083, 39164, 40242, 41322, 42399, 43480, 44557, 45636, 46713, 47792, 48871, 49948, 51028, 52106, 53186, 54263, 55342, 56421, 57499]
|
|
hit0 = 1
|
|
data1 = [0, 6332, 7797, 9269, 10735, 12206, 13672, 15142, 16610, 18077, 19546, 21013, 22482, 23951, 25419, 26887, 28357, 29823, 31291, 32759, 34228, 35697, 37163, 38634, 40102, 41569, 43038, 44506, 45974, 47443, 48913, 50380, 51849, 53317, 54784, 56254, 57720, 59190, 60658, 62128, 63595, 65063, 66532, 68000, 69468, 70936, 72404, 73872, 75342, 76810, 78278]
|
|
hit1 = 1
|
|
data2 = [0, 1308, 1611, 1916, 2220, 2521, 2826, 3130, 3434, 3738, 4039, 4343, 4647, 4951, 5256, 5559, 5861, 6165, 6470, 6774, 7077, 7380, 7683, 7987, 8292, 8595, 8898, 9202, 9506, 9810, 10113, 10416, 10720, 11024, 11327, 11631, 11933, 12238, 12542, 12846, 13148, 13452, 13756, 14060, 14363, 14667, 14971, 15274, 15578, 15880, 16184]
|
|
hit2 = 1
|
|
data3 = [0, 8987, 11075, 13158, 15242, 17326, 19413, 21497, 23581, 25666, 27751, 29837, 31919, 34005, 36089, 38173, 40257, 42343, 44429, 46511, 48598, 50681, 52766, 54849, 56936, 59018, 61103, 63190, 65273, 67357, 69442, 71528, 73611, 75697, 77782, 79867, 81950, 84033, 86119, 88202, 90288, 92373, 94459, 96542, 98627, 100712, 102795, 104880, 106965, 109050, 111134]
|
|
hit3 = 1
|
|
data4 = [0, 10551, 13000, 15449, 17893, 20340, 22789, 25237, 27682, 30128, 32577, 35026, 37469, 39918, 42366, 44812, 47258, 49708, 52154, 54600, 57048, 59495, 61942, 64388, 66836, 69284, 71733, 74178, 76624, 79073, 81518, 83967, 86415, 88863, 91307, 93756, 96203, 98650, 101097, 103543, 105993, 108440, 110887, 113334, 115783, 118228, 120676, 123123, 125570, 128017, 130465]
|
|
hit4 = 1
|
|
data5 = [0, 0, 0, 903, 1048, 1191, 1336, 1477, 1620, 1766, 1908, 2050, 2192, 2338, 2482, 2623, 2765, 2910, 3053, 3198, 3340, 3484, 3628, 3769, 3913, 4055, 4199, 4343, 4484, 4630, 4774, 5002, 5154, 5307, 5458, 5610, 5761, 5914, 6064, 6215, 6370, 6515, 6658, 6800, 6943, 7088, 7231, 7374, 7518, 7661, 7804]
|
|
hit5 = 10
|
|
灼伤转换 = [0, 1, 2, 3, 4, 5]
|
|
|
|
def 等效百分比(self, **argv):
|
|
return (1.1 if self.等级 >= 6 else 1.0)*super().等效百分比(**argv)
|
|
|
|
|
|
class 技能18(主动技能):
|
|
名称 = "忍法:飞燕手里剑"
|
|
所在等级 = 60
|
|
等级上限 = 50
|
|
学习间隔 = 2
|
|
等级精通 = 40
|
|
CD = 30
|
|
MP = [400, 1120]
|
|
无色消耗 = 1
|
|
data0 = [0, 116, 131, 139, 152, 163, 176, 185, 201, 211, 222, 236, 247, 257, 269, 282, 292, 305, 318, 330, 340, 350, 366, 375, 387, 398, 412, 421, 436, 448, 459, 468, 480, 491, 506, 517, 530, 542, 552, 565, 576, 588, 599, 612, 624, 635, 646, 658, 669, 682, 694]
|
|
hit0 = 1
|
|
data1 = [0, 146, 160, 176, 188, 203, 219, 234, 249, 262, 279, 292, 307, 323, 337, 350, 366, 381, 396, 412, 425, 439, 455, 468, 485, 500, 514, 528, 544, 558, 574, 588, 600, 617, 631, 646, 660, 675, 690, 705, 721, 736, 750, 764, 777, 792, 807, 824, 836, 853, 869]
|
|
hit1 = 3
|
|
data2 = [0, 82, 89, 100, 108, 116, 123, 132, 143, 151, 158, 168, 176, 185, 194, 201, 211, 217, 228, 236, 240, 251, 258, 269, 279, 284, 292, 301, 308, 318, 326, 336, 342, 352, 362, 370, 378, 386, 396, 405, 412, 419, 428, 438, 446, 452, 460, 468, 480, 488, 494]
|
|
hit2 = 15
|
|
data3 = [0, 168, 183, 201, 217, 234, 251, 269, 282, 301, 318, 336, 350, 367, 386, 402, 419, 437, 452, 468, 486, 504, 520, 535, 554, 570, 588, 604, 621, 640, 655, 670, 688, 705, 721, 737, 756, 773, 789, 806, 824, 841, 858, 874, 890, 906, 925, 940, 957, 974, 992]
|
|
hit3 = 15
|
|
data4 = [0, 583, 640, 699, 758, 818, 875, 935, 994, 1053, 1109, 1172, 1229, 1289, 1345, 1406, 1466, 1523, 1584, 1642, 1700, 1761, 1819, 1879, 1935, 1994, 2055, 2113, 2171, 2232, 2289, 2350, 2408, 2468, 2526, 2585, 2645, 2702, 2760, 2819, 2880, 2939, 2996, 3057, 3114, 3174, 3231, 3293, 3350, 3408, 3468]
|
|
hit4 = 1
|
|
data5 = [0, 485, 534, 585, 631, 682, 730, 777, 827, 877, 925, 974, 1026, 1074, 1123, 1174, 1222, 1271, 1317, 1367, 1415, 1466, 1516, 1563, 1614, 1662, 1711, 1763, 1811, 1861, 1911, 1958, 2004, 2055, 2104, 2151, 2204, 2251, 2302, 2351, 2399, 2449, 2500, 2547, 2597, 2646, 2693, 2742, 2792, 2839, 2889]
|
|
hit5 = 10
|
|
data6 = [0, 678, 746, 818, 885, 953, 1021, 1089, 1158, 1228, 1297, 1366, 1434, 1503, 1573, 1641, 1710, 1779, 1847, 1915, 1983, 2054, 2122, 2192, 2259, 2328, 2395, 2467, 2534, 2605, 2671, 2741, 2809, 2880, 2948, 3015, 3084, 3151, 3223, 3290, 3360, 3427, 3497, 3565, 3635, 3703, 3773, 3838, 3910, 3977, 4047]
|
|
hit6 = 10
|
|
TP成长 = 0.1
|
|
TP上限 = 5
|
|
|
|
是否有护石 = 1
|
|
|
|
六道 = False
|
|
|
|
形态 = ["满", "空中"]
|
|
|
|
def 形态变更(self, 形态, char):
|
|
if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
|
|
形态 = self.形态[0]
|
|
if 形态 == "满":
|
|
self.hit0 = 1
|
|
self.hit1 = 3
|
|
self.hit2 = 15
|
|
self.hit3 = 15
|
|
self.hit4 = 1
|
|
self.hit5 = 10
|
|
self.hit6 = 10
|
|
if 形态 == "空中":
|
|
self.hit0 = 0
|
|
self.hit1 = 0
|
|
self.hit2 = 0
|
|
self.hit3 = 0
|
|
self.hit4 = 0
|
|
self.hit5 = 15
|
|
self.hit6 = 15
|
|
|
|
def 装备护石(self, char):
|
|
self.倍率 *= 1.16
|
|
|
|
|
|
class 技能19(主动技能):
|
|
名称 = "火遁·风魔手里剑"
|
|
所在等级 = 70
|
|
等级上限 = 50
|
|
学习间隔 = 2
|
|
等级精通 = 40
|
|
CD = 50
|
|
MP = [800, 1680]
|
|
无色消耗 = 2
|
|
data0 = [0, 339, 371, 407, 440, 476, 509, 544, 577, 613, 646, 679, 715, 749, 783, 818, 852, 885, 922, 955, 991, 1023, 1058, 1092, 1127, 1159, 1196, 1229, 1264, 1298, 1333, 1365, 1402, 1436, 1471, 1505, 1538, 1573, 1607, 1642, 1675, 1710, 1743, 1779, 1812, 1846, 1881, 1916, 1950, 1985, 2018]
|
|
hit0 = 15
|
|
data1 = [0, 760, 837, 916, 992, 1069, 1147, 1223, 1300, 1378, 1454, 1533, 1610, 1686, 1764, 1842, 1919, 1994, 2073, 2150, 2226, 2305, 2381, 2457, 2536, 2614, 2689, 2767, 2845, 2922, 2999, 3075, 3153, 3230, 3307, 3386, 3462, 3539, 3617, 3694, 3771, 3847, 3926, 4002, 4079, 4158, 4234, 4310, 4389, 4466, 4544]
|
|
hit1 = 10
|
|
data2 = [0, 12682, 13967, 15255, 16541, 17828, 19116, 20402, 21687, 22976, 24261, 25548, 26836, 28122, 29409, 30694, 31981, 33268, 34556, 35841, 37128, 38416, 39702, 40987, 42274, 43561, 44848, 46134, 47421, 48708, 49994, 51280, 52567, 53854, 55141, 56428, 57714, 59000, 60286, 61575, 62860, 64146, 65435, 66722, 68005, 69294, 70581, 71867, 73154, 74441, 75727]
|
|
hit2 = 1
|
|
TP成长 = 0.1
|
|
TP上限 = 5
|
|
|
|
是否有护石 = 1
|
|
|
|
def 装备护石(self, char):
|
|
self.hit0 = 0
|
|
self.hit1 = 20
|
|
self.power2 = 1.3
|
|
# 灼伤 仅佩戴护石时有效,选用data1的数据;为data1的6%
|
|
self.灼伤转换 = [1]
|
|
self.灼伤倍率 = 0.06
|
|
|
|
|
|
class 技能20(主动技能):
|
|
名称 = "八岐大蛇"
|
|
所在等级 = 75
|
|
等级上限 = 50
|
|
学习间隔 = 2
|
|
等级精通 = 40
|
|
CD = 43
|
|
MP = [600, 4500]
|
|
无色消耗 = 3
|
|
data0 = [0, 3420, 3631, 3844, 4055, 4266, 4476, 4689, 4902, 5113, 5325, 5535, 5747, 5959, 6172, 6382, 6595, 6806, 7018, 7229, 7442, 7652, 7864, 8075, 8288, 8500, 8712, 8923, 9134, 9346, 9558, 9768, 9980, 10194, 10403, 10616, 10828, 11039, 11250, 11463, 11673, 11884, 12098, 12308, 12521, 12734, 12944, 13155, 13367, 13580, 13790]
|
|
hit0 = 1
|
|
data1 = [0, 3539, 3863, 4191, 4515, 4841, 5165, 5491, 5817, 6144, 6469, 6794, 7119, 7446, 7771, 8097, 8423, 8748, 9076, 9401, 9724, 10052, 10375, 10704, 11029, 11354, 11678, 12004, 12331, 12656, 12983, 13306, 13633, 13959, 14285, 14609, 14937, 15260, 15588, 15913, 16239, 16563, 16890, 17215, 17542, 17867, 18192, 18517, 18844, 19169, 19494]
|
|
hit1 = 10
|
|
data2 = [0, 552, 638, 725, 808, 893, 979, 1062, 1146, 1231, 1316, 1402, 1484, 1570, 1653, 1740, 1824, 1908, 1994, 2079, 2161, 2248, 2331, 2416, 2503, 2585, 2671, 2756, 2840, 2925, 3011, 3093, 3179, 3263, 3348, 3432, 3518, 3602, 3685, 3771, 3857, 3939, 4026, 4109, 4194, 4280, 4363, 4449, 4535, 4617, 4702]
|
|
hit2 = 21
|
|
|
|
是否有护石 = 1
|
|
|
|
def 装备护石(self, char):
|
|
self.hit0 = 1
|
|
self.hit1 = 11
|
|
self.power1 = 1.74
|
|
self.hit2 = 0
|
|
|
|
|
|
class 技能21(主动技能):
|
|
名称 = '八尺琼勾玉'
|
|
备注 = '来回两次伤害'
|
|
是否主动 = 0
|
|
所在等级 = 75
|
|
等级上限 = 1
|
|
学习间隔 = 1
|
|
等级精通 = 1
|
|
|
|
data0 = [int(i) for i in [0, 740]]
|
|
hit0 = 2
|
|
data1 = [int(i) for i in [0, 820]]
|
|
hit1 = 2
|
|
data2 = [int(i) for i in [0, 850]]
|
|
hit2 = 2
|
|
CD = 3.0
|
|
|
|
六道 = False
|
|
|
|
def 等效CD(self, **argv):
|
|
return 3.0
|
|
|
|
|
|
class 技能22(被动技能):
|
|
名称 = '八咫镜'
|
|
所在等级 = 75
|
|
等级上限 = 50
|
|
学习间隔 = 3
|
|
等级精通 = 40
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(1.08 + 0.02 * self.等级, 5)
|
|
|
|
|
|
class 技能23(主动技能):
|
|
名称 = "天照"
|
|
所在等级 = 80
|
|
等级上限 = 50
|
|
学习间隔 = 2
|
|
等级精通 = 40
|
|
CD = 51
|
|
MP = [800, 6000]
|
|
无色消耗 = 5
|
|
data0 = [0, 4552, 5012, 5475, 5937, 6400, 6861, 7322, 7784, 8245, 8709, 9170, 9630, 10093, 10556, 11018, 11478, 11941, 12401, 12865, 13327, 13787, 14249, 14712, 15175, 15634, 16097, 16558, 17020, 17481, 17943, 18405, 18866, 19330, 19792, 20253, 20714, 21177, 21637, 22099, 22561, 23024, 23487, 23947, 24409, 24870, 25332, 25793, 26257, 26718, 27180]
|
|
hit0 = 2
|
|
data1 = [0, 4844, 5338, 5829, 6320, 6813, 7304, 7796, 8288, 8778, 9272, 9761, 10254, 10746, 11237, 11729, 12220, 12711, 13205, 13694, 14186, 14677, 15171, 15663, 16152, 16643, 17136, 17628, 18120, 18611, 19102, 19596, 20087, 20580, 21069, 21562, 22053, 22545, 23034, 23528, 24019, 24509, 25003, 25493, 25986, 26477, 26968, 27460, 27951, 28442, 28934]
|
|
hit1 = 8
|
|
|
|
倍率 = 1.06 # 者皆阵倍率
|
|
# 攻击倍率 = 1.03 # 临兵斗倍率
|
|
是否有护石 = 1
|
|
|
|
def 装备护石(self, char):
|
|
self.power1 = 1.33
|
|
self.CDR *= 0.85
|
|
|
|
|
|
class 技能24(主动技能):
|
|
名称 = "火炎灼空:草雉剑"
|
|
所在等级 = 85
|
|
等级上限 = 50
|
|
学习间隔 = 5
|
|
等级精通 = 40
|
|
CD = 180
|
|
MP = [2800, 5000]
|
|
无色消耗 = 10
|
|
data0 = [0, 2991, 3116, 3243, 3361, 3491, 3613, 3738, 3861, 3987, 4110, 4228, 4355, 4480, 4598, 4732, 4854, 4970, 5101, 5228, 5346, 5465, 5599, 5718, 5843, 5971, 6089, 6210, 6343, 6459, 6585, 6707, 6836, 6956, 7081, 7207, 7333, 7455, 7578, 7700, 7825, 7949, 8074, 8196, 8322, 8449, 8570, 8693, 8822, 8945, 9067]
|
|
hit0 = 0
|
|
data1 = [0, 3002, 3120, 3238, 3350, 3473, 3588, 3706, 3821, 3940, 4055, 4166, 4284, 4404, 4516, 4640, 4755, 4864, 4990, 5108, 5219, 5332, 5457, 5568, 5686, 5805, 5916, 6031, 6157, 6266, 6384, 6499, 6620, 6733, 6851, 6970, 7088, 7204, 7318, 7433, 7551, 7667, 7786, 7901, 8019, 8138, 8253, 8367, 8489, 8606, 8720]
|
|
hit1 = 0
|
|
data2 = [0, 3077, 3212, 3349, 3478, 3618, 3749, 3886, 4018, 4155, 4286, 4415, 4551, 4687, 4816, 4959, 5091, 5217, 5359, 5496, 5623, 5753, 5896, 6026, 6160, 6297, 6426, 6560, 6701, 6826, 6962, 7094, 7233, 7364, 7499, 7635, 7771, 7904, 8036, 8168, 8303, 8437, 8571, 8705, 8841, 8977, 9109, 9242, 9381, 9514, 9645]
|
|
hit2 = 0
|
|
data3 = [0, 6063, 7471, 8878, 10282, 11688, 13095, 14500, 15906, 17313, 18717, 20123, 21532, 22938, 24343, 25750, 27156, 28560, 29966, 31375, 32781, 34186, 35594, 37000, 38405, 39811, 41218, 42623, 44030, 45436, 46841, 48247, 49654, 51060, 52465, 53873, 55279, 56684, 58091, 59496, 60901, 62307, 63716, 65121, 66527, 67934, 69340, 70744, 72151, 73557, 74962]
|
|
hit3 = 1
|
|
data4 = [0, 30724, 37848, 44970, 52097, 59220, 66344, 73468, 80594, 87716, 94840, 101965, 109089, 116214, 123339, 130463, 137586, 144711, 151835, 158959, 166083, 173206, 180331, 187457, 194579, 201706, 208828, 215953, 223076, 230199, 237326, 244449, 251576, 258698, 265824, 272946, 280070, 287195, 294318, 301443, 308568, 315690, 322815, 329942, 337065, 344189, 351313, 358438, 365561, 372686, 379808]
|
|
hit4 = 3
|
|
|
|
灼伤倍率 = 0.1
|
|
灼伤转换 = [0, 1, 2]
|
|
|
|
CD = 180
|
|
|
|
六道 = False
|
|
|
|
形态 = ["平x", "空中", "终结"]
|
|
|
|
def 形态变更(self, 形态, char):
|
|
if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
|
|
形态 = self.形态[0]
|
|
if 形态 == "终结":
|
|
self.hit0 = 0
|
|
self.hit1 = 0
|
|
self.hit2 = 0
|
|
self.hit3 = 1
|
|
self.hit4 = 3
|
|
if 形态 == "平x":
|
|
self.hit0 = 1
|
|
self.hit1 = 1
|
|
self.hit2 = 0
|
|
self.hit3 = 0
|
|
self.hit4 = 0
|
|
if 形态 == "空中":
|
|
self.hit0 = 0
|
|
self.hit1 = 0
|
|
self.hit2 = 2
|
|
self.hit3 = 0
|
|
self.hit4 = 0
|
|
|
|
|
|
class 技能25(主动技能):
|
|
名称 = "勾玉之火·镰鼬"
|
|
所在等级 = 95
|
|
等级上限 = 50
|
|
学习间隔 = 2
|
|
等级精通 = 40
|
|
CD = 60 * 0.6
|
|
MP = [960, 2000]
|
|
无色消耗 = 7
|
|
data0 = [0, 6212, 6843, 7473, 8101, 8731, 9364, 9993, 10623, 11253, 11884, 12514, 13145, 13776, 14406, 15035, 15666, 16294, 16926, 17557, 18186, 18816, 19447, 20077, 20708, 21339, 21969, 22599, 23228, 23857, 24491, 25119, 25749, 26379, 27010, 27639, 28270, 28902, 29532, 30161, 30792, 31421, 32051, 32682, 33312, 33941, 34573, 35202, 35832, 36463, 37095]
|
|
hit0 = 5
|
|
data1 = [0, 72483, 79834, 87186, 94517, 101867, 109238, 116590, 123941, 131292, 138643, 145994, 153365, 160716, 168068, 175419, 182770, 190101, 197472, 204823, 212173, 219525, 226876, 234228, 241598, 248948, 256301, 263652, 271003, 278334, 285725, 293056, 300406, 307758, 315110, 322460, 329811, 337183, 344533, 351885, 359236, 366587, 373917, 381289, 388639, 395989, 403342, 410694, 418044, 425415, 432766]
|
|
hit1 = 1
|
|
结算加成 = 1.0
|
|
|
|
# def 等效CD(self, **argv):
|
|
# # 武器类型 输出类型 额外CDR 手搓收益 恢复
|
|
# 武器类型 = argv.get('武器类型', '')
|
|
# 输出类型 = argv.get('输出类型', '')
|
|
# 额外CDR = argv.get('额外CDR', 1.0)
|
|
# # 手搓收益 = argv.get('手搓收益', 1.0)
|
|
# 面板显示 = argv.get('面板显示', False)
|
|
# 额外恢复 = argv.get('额外恢复', 0)
|
|
|
|
# cdr = self.手搓CD()
|
|
|
|
# return round(max(self.CD * self.CDR * 额外CDR / ((self.恢复 + 额外恢复) if not 面板显示 else 1) * (self.武器CD系数(武器类型, 输出类型) - (cdr if not 面板显示 else 0)), self.CD * 0.3)*self.CDR_O
|
|
# - ((self.CD * self.CDR * 额外CDR * 0.4 * (self.武器CD系数(武器类型, 输出类型) - (cdr if not 面板显示 else 0))) if not 面板显示 else 0), 1)
|
|
|
|
|
|
class 技能26(被动技能):
|
|
名称 = '三元刹'
|
|
所在等级 = 95
|
|
等级上限 = 50
|
|
学习间隔 = 3
|
|
等级精通 = 40
|
|
|
|
def 加成倍率(self, 武器类型):
|
|
if self.等级 == 0:
|
|
return 1.0
|
|
else:
|
|
return round(1.18 + 0.02 * self.等级, 5)
|
|
|
|
|
|
class 技能27(主动技能):
|
|
名称 = "火源限界·八咫乌"
|
|
所在等级 = 100
|
|
等级上限 = 50
|
|
学习间隔 = 5
|
|
等级精通 = 40
|
|
CD = 290
|
|
MP = [4028, 8056]
|
|
无色消耗 = 15
|
|
data0 = [0, 7970, 9818, 11664, 13512, 15360, 17207, 19055, 20904, 22751, 24599, 26447, 28295, 30142, 31990, 33839, 35685, 37534, 39382, 41229, 43078, 44925, 46774, 48620, 50469, 52316, 54164, 56013, 57860, 59709, 61555, 63404, 65251, 67099, 68947, 70795, 72644, 74490, 76339, 78187, 80034, 81882, 83730, 85579, 87425, 89274, 91122, 92969, 94817, 96665, 98512]
|
|
hit0 = 12
|
|
data1 = [0, 10246, 12622, 14997, 17373, 19748, 22124, 24500, 26876, 29252, 31627, 34003, 36378, 38755, 41130, 43506, 45883, 48258, 50634, 53010, 55386, 57761, 60137, 62513, 64888, 67265, 69640, 72016, 74391, 76767, 79144, 81519, 83895, 86270, 88646, 91021, 93399, 95775, 98150, 100526, 102901, 105277, 107654, 110029, 112405, 114780, 117156, 119530, 121908, 124284, 126658]
|
|
hit1 = 14
|
|
data2 = [0, 239063, 294499, 349933, 405368, 460804, 516238, 571672, 627108, 682543, 737977, 793412, 848847, 904284, 959717, 1015152, 1070588, 1126022, 1181456, 1236892, 1292327, 1347761, 1403196, 1458631, 1514068, 1569501, 1624935, 1680372, 1735807, 1791241, 1846676, 1902111, 1957546, 2012980, 2068416, 2123852, 2179285, 2234720, 2290156, 2345590, 2401025, 2456460, 2511895, 2567330, 2622764, 2678201, 2733635, 2789069, 2844504, 2899940, 2955376]
|
|
hit2 = 1
|
|
|
|
|
|
class classChange(Character):
|
|
def __init__(self, equVersion=""):
|
|
self.实际名称 = 'kunoichi'
|
|
self.名称 = '隐夜·忍者'
|
|
self.角色 = '暗夜使者'
|
|
|
|
self.职业 = '忍者'
|
|
self.武器选项 = ['苦无']
|
|
self.输出类型选项 = ['魔法百分比']
|
|
self.防具精通属性 = ['智力']
|
|
self.类型 = '魔法百分比'
|
|
self.武器类型 = '苦无'
|
|
self.防具类型 = '布甲'
|
|
|
|
技能列表 = []
|
|
技能序号 = {}
|
|
i = 0
|
|
while i >= 0:
|
|
try:
|
|
tem = eval('技能'+str(i)+'()')
|
|
tem.基础等级计算()
|
|
技能序号[tem.名称] = i
|
|
技能列表.append(tem)
|
|
i += 1
|
|
except Exception:
|
|
i = -1
|
|
self.技能栏 = 技能列表
|
|
self.技能序号 = 技能序号
|
|
self.buff = 2.04
|
|
|
|
super().__init__(equVersion)
|
|
|
|
def set_individuation(self, info):
|
|
info['char_optiopns'] = []
|
|
for skill in self.技能栏:
|
|
if skill.是否有伤害 == 1 and getattr(skill, "六道", False):
|
|
info['char_optiopns'].append({
|
|
"name": "["+skill.名称+"]"+"六道",
|
|
"option": ["跟随六道次数"]+[i for i in range(0, 16)]
|
|
})
|
|
# 设置选项example
|
|
# name为名称,option内为选项
|
|
# 其他地方调用的时候,调用self.individuation
|
|
# 比如取第二个选项的选择结果,函数传入第几个-1,返回选择的index,比如选择了选项2,返回1
|
|
# self.get_individuation(1)
|
|
|
|
def 异常系数计算(self,item,skill):
|
|
from core.basic.equipment import get_global_data
|
|
cur = item
|
|
pa = ''
|
|
if item == '中毒':
|
|
pa = 'zd_rate'
|
|
if item == '出血':
|
|
pa = 'cx_rate'
|
|
if item == '感电':
|
|
pa = 'gd_rate'
|
|
if item == '灼伤':
|
|
pa = 'zs_rate'
|
|
if item == '灼伤' and '灼伤' in get_global_data("state_type", self.equVersion) and ('冰冻' in get_global_data("get_state_type", self.equVersion) or ('冰冻' in get_global_data("state_type", self.equVersion) and self.check_equ_by_name("永眠前的准备"))):
|
|
pa = 'zs_bd_rate'
|
|
cur = '灼伤破冰'
|
|
保有率 = 0
|
|
异常基础加成 = 1.0
|
|
异常结算加成 = 1.0
|
|
装备加成异常结算 = 1.0
|
|
if pa == 'zs_bd_rate':
|
|
保有率 = self.异常保有率计算(pa,cur)
|
|
异常基础加成 = 1.0
|
|
异常结算加成 = self.异常基础加成['灼伤破冰']
|
|
装备加成异常结算 = self.异常结算加成.get(cur,1.0)
|
|
else:
|
|
保有率 = self.异常保有率计算(pa,cur)
|
|
# 叠层处理
|
|
异常基础加成 = 1+ (self.异常基础加成.get(cur,1.0)-1) * get_global_data(pa,self.equVersion,1.0)
|
|
异常结算加成 = 1.0
|
|
装备加成异常结算 = self.异常结算加成.get(cur,1.0)
|
|
# 95结算灼伤,且结算灼伤加成>1,仅仅结算非95及100技能
|
|
if item == '灼伤' and self.get_skill_by_name("勾玉之火·镰鼬").结算加成 > 1 and skill.所在等级 < 95:
|
|
持续时间 = self.异常时间[cur][0] * self.异常时间[cur][2] + self.异常时间[cur][1]
|
|
异常CD = 3.5
|
|
保有率 = max(1 - (2*异常CD + 1) / (4*持续时间),0)
|
|
异常基础加成 = 1
|
|
异常结算加成 = self.get_skill_by_name("勾玉之火·镰鼬").结算加成
|
|
装备加成异常结算 = 1
|
|
系数 = self.伤害系数.get(item, 0.0) * ( (1-保有率) * 异常基础加成 + 保有率 * 异常基础加成 * 异常结算加成 * 装备加成异常结算)
|
|
return 系数
|
|
|
|
def 伤害计算(self):
|
|
data = super().伤害计算()
|
|
六道 = data['skills'].get("忍法:六道轮回", None)
|
|
if 六道 is None:
|
|
return data
|
|
六道技能 = []
|
|
六道倍率 = self.get_skill_by_name("忍法:残影术").六道倍率()
|
|
for skill in self.技能栏:
|
|
if skill.是否有伤害 == 1 and getattr(skill, "六道", False):
|
|
六道技能.append(skill.名称)
|
|
for index in range(0, len(六道技能)):
|
|
skill = 六道技能[index]
|
|
temp = data['skills'].get(skill, None)
|
|
if temp is not None:
|
|
count = self.get_individuation(index)
|
|
六道['damage'] += temp['damage']/temp['count'] * \
|
|
min(六道['count'] if count == 0 else (
|
|
count-1), temp['count'])*0.8*六道倍率
|
|
pass
|
|
data['total_data'] += 六道['damage']
|
|
dps = 0
|
|
for temp in data['skills']:
|
|
skill = data['skills'][temp]
|
|
try:
|
|
dps += (skill['damage']/skill['count'])/skill['cd']
|
|
except Exception:
|
|
pass
|
|
data['dps'] = dps
|
|
return data
|