Files
dcalc/Characters/神启·诱魔者.py
2024-11-04 14:45:20 +08:00

681 lines
36 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from PublicReference.carry.base import *
# 主动技能,单段攻击
class 技能0(主动技能):
名称 = '罪业加身'
所在等级 = 10
等级上限 = 60
基础等级 = 46
data = [int(i*1.205*1.085) for i in [0, 2014, 2220, 2424, 2628, 2832, 3037, 3242, 3446, 3651, 3854, 4059, 4263, 4468, 4672, 4877, 5080, 5285, 5492, 5695, 5900, 6104, 6308, 6514, 6718, 6922, 7126, 7331, 7535, 7740, 7944, 8148, 8352, 8557, 8762, 8966, 9171, 9374, 9579, 9784, 9989, 10194, 10398, 10602, 10807, 11012, 11215, 11420, 11623, 11829, 12034, 12237, 12442, 12646, 12851, 13055, 13260, 13463, 13668, 13872, 14077, 14282, 14487, 14691, 14895, 15101, 15304, 15509, 15714, 15917, 16123]]
攻击次数 = 1
CD = 6.0
TP成长 = 0.08
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,二段攻击
class 技能1(主动技能):
名称 = '双重切割'
所在等级 = 15
等级上限 = 60
基础等级 = 46
data1 = [int(i*1.2019*1.085) for i in [0, 1065, 1172, 1280, 1387, 1497, 1605, 1712, 1821, 1928, 2038, 2145, 2253, 2360, 2468, 2576, 2685, 2792, 2901, 3009, 3117, 3224, 3333, 3440, 3549, 3657, 3764, 3873, 3982, 4090, 4197, 4305, 4412, 4522, 4629, 4737, 4844, 4953, 5061, 5170, 5277, 5385, 5493, 5601, 5709, 5816, 5926, 6034, 6142, 6249, 6357, 6466, 6574, 6681, 6789, 6896, 7007, 7114, 7222, 7329, 7437, 7545, 7653, 7762, 7869, 7979, 8086, 8194, 8301, 8410, 8518]]
攻击次数1 = 1
data2 = [int(i*1.2022*1.085) for i in [0, 1597, 1758, 1920, 2084, 2245, 2406, 2570, 2731, 2893, 3055, 3216, 3379, 3542, 3703, 3864, 4028, 4189, 4351, 4515, 4675, 4837, 5000, 5162, 5324, 5486, 5647, 5810, 5973, 6133, 6295, 6457, 6620, 6782, 6942, 7106, 7268, 7429, 7593, 7754, 7915, 8078, 8241, 8402, 8564, 8726, 8888, 9051, 9212, 9373, 9537, 9699, 9860, 10022, 10185, 10346, 10509, 10672, 10832, 10995, 11157, 11318, 11482, 11643, 11804, 11968, 12130, 12290, 12453, 12616, 12777]]
攻击次数2 = 1
CD = 6.0
TP成长 = 0.1
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 武器精通,被动技能,满级前成长为1%,满级后2%
class 技能2(被动技能):
名称 = '负罪者镰刀精通'
所在等级 = 15
等级上限 = 30
基础等级 = 20
def 加成倍率(self, 武器类型):
if self.等级 <= 20:
return round(1.05 + 0.01 * self.等级, 5)
else:
return round(0.85 + 0.02 * self.等级, 5)
def 魔法攻击力倍率(self, 武器类型):
if self.等级 <= 20:
return round(1.05 + 0.01 * self.等级, 5)
else:
return round(0.85 + 0.02 * self.等级, 5)
# 被动技能,满级前成长为1%,满级后2%
class 技能3(被动技能):
名称 = '罪业诱惑'
所在等级 = 15
等级上限 = 20
基础等级 = 10
def 加成倍率(self, 武器类型):
if self.等级 <= 10:
return round(1.00 + 0.01 * self.等级, 5)
else:
return round(0.90 + 0.02 * self.等级, 5)
# 主动技能,二段攻击
class 技能4(主动技能):
名称 = '断头台'
所在等级 = 20
等级上限 = 60
基础等级 = 43
data1 = [int(i*1.242*1.085) for i in [0, 1648, 1815, 1982, 2150, 2316, 2483, 2651, 2818, 2985, 3153, 3320, 3487, 3654, 3821, 3988, 4156, 4323, 4490, 4658, 4825, 4991, 5159, 5326, 5493, 5661, 5828, 5995, 6162, 6329, 6496, 6664, 6831, 6998, 7166, 7333, 7499, 7667, 7834, 8001, 8169, 8336, 8503, 8671, 8837, 9004, 9172, 9339, 9506, 9674, 9841, 10007, 10175, 10342, 10509, 10677, 10844, 11011, 11179, 11345, 11512, 11680, 11847, 12014, 12182, 12349, 12516, 12683, 12850, 13017, 13185]]
攻击次数1 = 1
data2 = [int(i*1.242*1.085) for i in [0, 2534, 2791, 3049, 3305, 3563, 3820, 4077, 4334, 4592, 4848, 5106, 5363, 5620, 5877, 6134, 6391, 6649, 6905, 7163, 7420, 7677, 7934, 8192, 8448, 8706, 8963, 9220, 9477, 9735, 9991, 10249, 10506, 10762, 11020, 11276, 11534, 11791, 12048, 12305, 12563, 12819, 13077, 13334, 13591, 13848, 14106, 14362, 14620, 14877, 15134, 15391, 15649, 15905, 16163, 16419, 16677, 16934, 17191, 17448, 17706, 17962, 18220, 18477, 18734, 18991, 19249, 19505, 19763, 20020, 20277]]
攻击次数2 = 1
CD = 8.0
TP成长 = 0.10
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,二段攻击
class 技能5(主动技能):
名称 = '欲望之手'
所在等级 = 20
等级上限 = 60
基础等级 = 43
data1 = [int(i*1.2028*1.085) for i in [0, 1632, 1796, 1962, 2128, 2293, 2459, 2625, 2790, 2956, 3122, 3287, 3452, 3618, 3784, 3949, 4115, 4280, 4446, 4612, 4777, 4943, 5108, 5274, 5439, 5605, 5770, 5936, 6103, 6267, 6433, 6599, 6765, 6929, 7094, 7260, 7426, 7593, 7757, 7923, 8088, 8255, 8421, 8584, 8750, 8916, 9082, 9248, 9413, 9578, 9745, 9911, 10074, 10240, 10406, 10572, 10738, 10903, 11068, 11235, 11401, 11566, 11730, 11895, 12062, 12228, 12392, 12558, 12725, 12891, 13056]]
攻击次数1 = 1
data2 = [int(i*1.2031*1.085) for i in [0, 2580, 2841, 3104, 3366, 3627, 3889, 4151, 4412, 4675, 4936, 5199, 5459, 5722, 5984, 6246, 6507, 6769, 7031, 7294, 7554, 7817, 8078, 8340, 8602, 8864, 9126, 9387, 9649, 9911, 10172, 10435, 10696, 10959, 11219, 11482, 11744, 12006, 12267, 12529, 12791, 13054, 13314, 13577, 13836, 14099, 14361, 14623, 14884, 15146, 15408, 15670, 15931, 16194, 16455, 16718, 16978, 17241, 17503, 17764, 18026, 18288, 18550, 18812, 19073, 19336, 19596, 19859, 20121, 20383, 20644]]
攻击次数2 = 1
CD = 8.0
TP成长 = 0.10
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,单段攻击
class 技能6(主动技能):
名称 = '傲慢之堕'
所在等级 = 25
等级上限 = 60
基础等级 = 27
data = [int(i*1.2029*1.085) for i in [0, 4755, 5514, 6272, 7030, 7788, 8547, 9305, 10063, 10821, 11579, 12338, 13096, 13854, 14613, 15370, 16128, 16887, 17646, 18403, 19162, 19920, 20677, 21436, 22195, 22953, 23711, 24470, 25227, 25985, 26744, 27502, 28261, 29019, 29776, 30535, 31292, 32051, 32810, 33569, 34325, 35084, 35843, 36600, 37359, 38118, 38875, 39633, 40391, 41150, 41908, 42666, 43425, 44183, 44940, 45699, 46458, 47215, 47974, 48732, 49490, 50248, 51007, 51765, 52523, 53281, 54039, 54798, 55556, 56314, 57073]]
攻击次数 = 1
CD = 10.0
TP成长 = 0.10
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,空中4段,落地1段
class 技能7(主动技能):
名称 = '屠戮回旋斩'
所在等级 = 30
等级上限 = 60
基础等级 = 38
data1 = [int(i*1.2029*1.085 ) for i in [0, 828, 911, 995, 1079, 1163, 1247, 1331, 1416, 1500, 1583, 1666, 1752, 1835, 1919, 2002, 2088, 2171, 2255, 2339, 2424, 2507, 2590, 2674, 2758, 2844, 2927, 3011, 3095, 3179, 3262, 3347, 3431, 3515, 3599, 3684, 3767, 3850, 3935, 4019, 4103, 4186, 4270, 4355, 4439, 4523, 4607, 4691, 4774, 4858, 4941, 5027, 5111, 5195, 5278, 5363, 5446, 5529, 5615, 5699, 5782, 5866, 5951, 6034, 6119, 6202, 6287, 6370, 6454, 6537, 6624]]
攻击次数1 = 4
data2 = [int(i*1.2029*1.085) for i in [0, 3311, 3648, 3984, 4319, 4655, 4991, 5327, 5663, 5998, 6334, 6670, 7006, 7343, 7678, 8015, 8350, 8685, 9022, 9357, 9694, 10029, 10365, 10701, 11038, 11373, 11710, 12044, 12381, 12718, 13053, 13390, 13726, 14062, 14397, 14733, 15069, 15405, 15741, 16077, 16412, 16748, 17085, 17420, 17757, 18093, 18428, 18764, 19099, 19436, 19772, 20108, 20443, 20780, 21115, 21452, 21788, 22124, 22461, 22795, 23132, 23468, 23804, 24140, 24475, 24811, 25148, 25483, 25819, 26156, 26490]]
攻击次数2 = 1
CD = 12.0
TP成长 = 0.10
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,单段攻击
class 技能8(主动技能):
名称 = '怠惰之息'
所在等级 = 30
等级上限 = 60
基础等级 = 38
data = [int(i*1.182*1.085) for i in [0, 7473, 8231, 8988, 9746, 10504, 11262, 12020, 12781, 13539, 14296, 15054, 15812, 16570, 17328, 18086, 18845, 19604, 20361, 21119, 21877, 22635, 23393, 24151, 24910, 25668, 26425, 27183, 27942, 28700, 29458, 30216, 30975, 31733, 32490, 33248, 34006, 34764, 35523, 36281, 37040, 37797, 38556, 39314, 40072, 40830, 41588, 42347, 43106, 43863, 44621, 45379, 46137, 46895, 47653, 48411, 49170, 49928, 50686, 51444, 52202, 52960, 53718, 54476, 55235, 55992, 56750, 57509, 58267, 59025, 59783]]
攻击次数 = 1
CD = 15.0
TP成长 = 0.10
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,二段攻击
class 技能9(主动技能):
名称 = '诱魔之手'
所在等级 = 35
等级上限 = 60
基础等级 = 36
data1 = [int(i*1.203*1.085) for i in [0, 2655, 2925, 3194, 3463, 3733, 4003, 4272, 4542, 4811, 5081, 5350, 5619, 5889, 6158, 6427, 6697, 6966, 7235, 7506, 7775, 8045, 8314, 8583, 8853, 9122, 9391, 9661, 9930, 10199, 10469, 10739, 11009, 11278, 11547, 11817, 12086, 12355, 12625, 12894, 13163, 13433, 13702, 13971, 14242, 14511, 14781, 15050, 15319, 15589, 15858, 16127, 16397, 16666, 16935, 17205, 17474, 17745, 18014, 18283, 18553, 18822, 19091, 19361, 19630, 19899, 20169, 20438, 20707, 20978, 21247]]
攻击次数1 = 1
data2 = [int(i*1.203*1.085) for i in [0, 6196, 6825, 7454, 8083, 8712, 9341, 9968, 10597, 11226, 11855, 12484, 13113, 13742, 14369, 14998, 15627, 16256, 16885, 17514, 18141, 18770, 19399, 20028, 20657, 21286, 21915, 22542, 23171, 23800, 24429, 25058, 25687, 26315, 26943, 27572, 28201, 28830, 29459, 30088, 30716, 31344, 31973, 32602, 33231, 33860, 34488, 35116, 35745, 36374, 37003, 37632, 38261, 38889, 39517, 40146, 40775, 41404, 42033, 42661, 43290, 43918, 44547, 45176, 45805, 46434, 47062, 47691, 48319, 48948, 49577]]
攻击次数2 = 1
CD = 15.0
TP成长 = 0.10
TP上限 = 5
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,基础攻击段数为9
# 带魔界大战护石22段,减伤50.6%,护石倍率22/9*0.494=1.207555,护石减少15%冷却
# 带圣痕护石22段,减伤46.7%,护石倍率22/9*0.533=1.302888,护石减少15%冷却
class 技能10(主动技能):
名称 = '贪婪之刺'
所在等级 = 35
等级上限 = 60
基础等级 = 36
data = [int(i*1.349*1.085*1.052) for i in [0, 868, 955, 1045, 1132, 1220, 1308, 1396, 1483, 1573, 1661, 1748, 1837, 1924, 2012, 2102, 2190, 2277, 2366, 2454, 2541, 2630, 2718, 2806, 2893, 2982, 3069, 3157, 3245, 3334, 3422, 3510, 3598, 3685, 3775, 3863, 3951, 4039, 4127, 4214, 4303, 4391, 4479, 4568, 4655, 4743, 4831, 4919, 5006, 5096, 5183, 5271, 5361, 5448, 5536, 5625, 5713, 5800, 5889, 5976, 6064, 6154, 6241, 6329, 6417, 6505, 6592, 6681, 6768, 6857, 6945]]
攻击次数 = 9
CD = 20.0
TP成长 = 0.10
TP上限 = 5
是否有护石 = 1
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数 *= 22/9*0.494
self.CD *= 0.85
elif x == 1:
self.攻击次数 *= 22/9*0.533
self.CD *= 0.85
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,基础攻击段数为9
# 带魔界大战护石15段,减伤26.56%,护石倍率15/9*0.7344=1.224
# 带圣痕护石15段,减伤21.12%,护石倍率15/9*0.7888=1.31466
class 技能11(主动技能):
名称 = '杀戮战镰'
所在等级 = 40
等级上限 = 60
基础等级 = 33
data = [int(i*1.203*1.085*1.055) for i in [0, 1281, 1412, 1542, 1672, 1801, 1931, 2061, 2192, 2322, 2452, 2581, 2712, 2842, 2973, 3102, 3232, 3363, 3493, 3624, 3753, 3883, 4012, 4143, 4273, 4403, 4532, 4663, 4793, 4923, 5053, 5183, 5313, 5444, 5573, 5704, 5833, 5964, 6094, 6224, 6353, 6483, 6613, 6744, 6873, 7004, 7133, 7264, 7395, 7524, 7655, 7784, 7915, 8045, 8175, 8305, 8435, 8564, 8695, 8824, 8955, 9084, 9214, 9345, 9475, 9605, 9735, 9864, 9996, 10125, 10256]]
攻击次数 = 9
CD = 20.0
TP成长 = 0.10
TP上限 = 5
是否有护石 = 1
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数 *= 15/9*0.7344
elif x == 1:
self.攻击次数 *= 15/9 * 0.7888
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,单段攻击
# 带魔界大战护石增伤23%,护石倍率1+0.23=1.23
# 带圣痕护石增伤31%,护石倍率1+0.31=1.31
class 技能12(主动技能):
名称 = '愤怒之袭'
所在等级 = 45
等级上限 = 60
基础等级 = 31
data = [int(i*1.202*1.085*1.054) for i in [0, 19881, 21897, 23914, 25931, 27949, 29965, 31981, 33999, 36016, 38032, 40050, 42067, 44083, 46101, 48117, 50134, 52152, 54168, 56185, 58203, 60219, 62236, 64252, 66270, 68287, 70303, 72320, 74338, 76354, 78371, 80388, 82405, 84423, 86439, 88455, 90474, 92490, 94506, 96523, 98541, 100557, 102574, 104591, 106608, 108625, 110642, 112659, 114676, 116692, 118710, 120726, 122743, 124761, 126777, 128793, 130812, 132828, 134844, 136862, 138879, 140896, 142913, 144929, 146947, 148963, 150980, 152997, 155014, 157031, 159048]]
攻击次数 = 1
CD = 45.0
TP成长 = 0.10
TP上限 = 5
是否有护石 = 1
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数 *= 1.23
elif x == 1:
self.攻击次数 *= 1.31
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,一觉主动,多段攻击为15段多段伤害+1段爆炸伤害(多段攻击次数受站街攻速影响随机为14-17段)
class 技能13(主动技能):
名称 = '净化之花'
所在等级 = 50
等级上限 = 40
基础等级 = 12
data1 = [int(i*1.2027*1.085) for i in [0, 735, 905, 1075, 1246, 1416, 1588, 1757, 1928, 2098, 2270, 2439, 2611, 2780, 2952, 3122, 3293, 3462, 3633, 3805, 3975, 4145, 4316, 4485, 4657, 4827, 4998, 5168, 5340, 5509, 5680, 5850, 6019, 6192, 6362, 6532, 6702, 6874, 7043, 7215, 7385, 7555, 7726, 7897, 8066, 8237, 8409, 8579, 8749, 8920, 9089, 9261, 9432, 9602, 9772, 9944, 10113, 10284, 10454, 10625, 10796, 10966, 11137, 11306, 11477, 11646, 11819, 11989, 12160, 12329, 12501]]
攻击次数1 = 15
data2 = [int(i*1.203*1.085) for i in [0, 45069, 55518, 65969, 76421, 86871, 97321, 107773, 118223, 128673, 139125, 149575, 160026, 170477, 180929, 191379, 201830, 212282, 222731, 233182, 243634, 254083, 264533, 274986, 285435, 295885, 306338, 316787, 327237, 337690, 348139, 358591, 369042, 379491, 389943, 400394, 410843, 421295, 431746, 442195, 452647, 463098, 473548, 484000, 494451, 504902, 515352, 525803, 536254, 546704, 557156, 567606, 578056, 588507, 598959, 609408, 619859, 630311, 640760, 651211, 661663, 672113, 682563, 693015, 703466, 713915, 724367, 734818, 745267, 755719, 766170]]
攻击次数2 = 1
CD = 140
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * self.倍率
# 被动技能,一觉被动,每级2%成长
class 技能14(被动技能):
名称 = '罪业宣告'
所在等级 = 48
等级上限 = 40
基础等级 = 20
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.04+0.02 * self.等级, 5)
# 主动技能,二段攻击,第一段为无伤害判定
# 带魔界大战护石增伤19%,护石倍率1+0.19=1.19
# 带圣痕护石增伤28%,护石倍率1+0.28=1.28
class 技能15(主动技能):
名称 = '嫉妒之吻'
所在等级 = 60
等级上限 = 40
基础等级 = 23
data = [int(i*1.203*1.085*1.051) for i in [0, 19205, 21155, 23102, 25051, 26999, 28947, 30895, 32844, 34792, 36741, 38690, 40638, 42587, 44534, 46483, 48431, 50381, 52328, 54277, 56225, 58174, 60121, 62070, 64019, 65968, 67916, 69864, 71813, 73760, 75709, 77657, 79607, 81554, 83503, 85452, 87400, 89348, 91296, 93246, 95194, 97142, 99090, 101039, 102986, 104935, 106884, 108833, 110782, 112729, 114678, 116626, 118574, 120522, 122472, 124420, 126368, 128317, 130265, 132214, 134161, 136110, 138059, 140008, 141955, 143904, 145852, 147800, 149749, 151698, 153647]]
攻击次数 = 1
CD = 30
TP成长 = 0.10
TP上限 = 5
是否有护石 = 1
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数 *= 1.19
elif x == 1:
self.攻击次数 *= 1.28
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,吸收为最高8段攻击,释放为4段
# 带魔界大战护石吸收段数锁定4段,伤害+200%(换算为伤害不变,段数12段(0.5*3*8=12));释放伤害+8%(换算为伤害不变,段数4.32段(1.08*4=4.32)
# 带圣痕护石吸收段数锁定4段,伤害+200%(换算为伤害不变,段数12段(0.5*3*8=12));释放伤害+18%(换算为伤害不变,段数4.72段(1.18*4=4.72)
class 技能16(主动技能):
名称 = '暴食之噬'
所在等级 = 70
等级上限 = 40
基础等级 = 18
data1 = [int(i*1.2025*1.085*1.056) for i in [0, 810, 893, 974, 1057, 1139, 1222, 1303, 1386, 1468, 1551, 1632, 1715, 1797, 1879, 1961, 2044, 2127, 2209, 2291, 2374, 2455, 2538, 2620, 2703, 2784, 2867, 2949, 3032, 3113, 3196, 3278, 3359, 3442, 3524, 3607, 3688, 3771, 3853, 3935, 4017, 4100, 4182, 4264, 4346, 4429, 4511, 4593, 4676, 4759, 4840]]
攻击次数1 = 8
data2 = [int(i*1.203*1.085*1.056) for i in [0, 6485, 7143, 7801, 8460, 9118, 9776, 10433, 11091, 11749, 12407, 13066, 13723, 14381, 15039, 15698, 16355, 17012, 17672, 18330, 18987, 19645, 20304, 20962, 21620, 22277, 22936, 23593, 24251, 24908, 25567, 26225, 26883, 27542, 28200, 28858, 29516, 30173, 30831, 31489, 32147, 32805, 33463, 34121, 34779, 35437, 36097, 36752, 37410, 38069, 38728]]
攻击次数2 = 4
CD = 50
TP成长 = 0.10
TP上限 = 5
是否有护石 = 1
护石选项 = ['魔界', '圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数1 = 12
self.攻击次数2 = 4.32
elif x == 1:
self.攻击次数1 = 12
self.攻击次数2 = 4.72
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率
# 主动技能,二段攻击
# 带圣痕护石增伤29%,护石倍率1+0.29=1.29
class 技能17(主动技能):
名称 = '灵魂烙印:原罪冲击'
所在等级 = 75
等级上限 = 40
基础等级 = 16
data1 = [int(i*1.202*1.085*1.053) for i in [0, 9308, 10254, 11198, 12143, 13088, 14032, 14977, 15920, 16863, 17810, 18754, 19698, 20643, 21587, 22532, 23477, 24420, 25366, 26310, 27254, 28200, 29144, 30089, 31032, 31975, 32920, 33867, 34810, 35755, 36699, 37644, 38587, 39532, 40477, 41422, 42366, 43311, 44255, 45199, 46144, 47088, 48033, 48978, 49921, 50868, 51811, 52754, 53699, 54643, 55588, 56534, 57478, 58423, 59366, 60310, 61255, 62200, 63145, 64089, 65034, 65979, 66921, 67866, 68811, 69755, 70699, 71644, 72590, 73535, 74478]]
攻击次数1 = 1
data2 = [int(i*1.202*1.085*1.053) for i in [0, 37237, 41016, 44794, 48572, 52350, 56128, 59905, 63684, 67462, 71241, 75017, 78796, 82574, 86352, 90130, 93908, 97685, 101463, 105242, 109018, 112797, 116575, 120352, 124131, 127908, 131686, 135464, 139243, 143021, 146798, 150576, 154355, 158132, 161909, 165687, 169465, 173243, 177022, 180798, 184577, 188355, 192133, 195910, 199689, 203466, 207245, 211023, 214802, 218578, 222357, 226135, 229911, 233690, 237467, 241246, 245023, 248803, 252578, 256358, 260135, 263914, 267690, 271470, 275246, 279026, 282803, 286580, 290358, 294137, 297915]]
攻击次数2 = 1
CD = 40
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * self.倍率
护石选项 = ['圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数1 *= 1.29
self.攻击次数2 *= 1.29
self.CD *= 0.9
# 单段技能,由75被动拆分,固定冷却时间2s,此处添加演出时间减少释放次数
class 技能18(主动技能):
名称 = '(光辉)智慧起源:原罪结晶'
所在等级 = 75
等级上限 = 0
基础等级 = 0
data = [int(i*1.218*1.085*1.052) for i in [0, 3793, 4398, 5004, 5608, 6213, 6818, 7422, 8028, 8632, 9237, 9842, 10447, 11052, 11657, 12261, 12867, 13471, 14076, 14681, 15286, 15891, 16495, 17100, 17705, 18310, 18915, 19520, 20124, 20730, 21334, 21939, 22544, 23149, 23754, 24358, 24963, 25568, 26173, 26778, 27383, 27987, 28593, 29197, 29802, 30407, 31012, 31617, 32221, 32826, 33432, 34036, 34641, 35246, 35850, 36456, 37060, 37665, 38270, 38875, 39480, 40085, 40689, 41295, 41899, 42504, 43109, 43714, 44319, 44923, 45528]]
攻击次数 = 1
CD = 2
演出时间 = 2
def 等效百分比(self, 武器类型):
return (self.data[self.等级] * self.攻击次数) * self.倍率
def 等效CD(self, 武器类型, 输出类型):
return 2
# 被动技能,由75被动拆分,每级成长2%
class 技能19(被动技能):
名称 = '智慧起源:原罪结晶'
所在等级 = 75
等级上限 = 40
基础等级 = 11
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.23 + 0.02 * self.等级, 5)
# 主动技能,刺击为单段伤害,散开为三段伤害。散开伤害根据罪业层数每层+3%,罪业层数最高为7,即散开为3*1.21段伤害
# 带圣痕护石散开部分伤害增加54%,换算为攻击次数2 *= 1.54
class 技能20(主动技能):
名称 = '肋骨重塑:原罪战矛'
所在等级 = 80
等级上限 = 40
基础等级 = 13
data1 = [int(i*1.202*1.085*1.051) for i in [0, 29112, 32065, 35017, 37971, 40924, 43878, 46831, 49785, 52738, 55692, 58645, 61598, 64552, 67505, 70458, 73412, 76365, 79319, 82271, 85224, 88178, 91131, 94086, 97039, 99993, 102946, 105898, 108852, 111805, 114759, 117712, 120665, 123619, 126572, 129525, 132478, 135433, 138386, 141339, 144293, 147246, 150200, 153152, 156105, 159059, 162012, 164966, 167919, 170874, 173825, 176779, 179733, 182686, 185640, 188593, 191546, 194500, 197452, 200406, 203359, 206313, 209266, 212219, 215174, 218127, 221080, 224033, 226986, 229940, 232893]]
攻击次数1 = 1
data2 = [int(i*1.202*1.085*1.051) for i in [0, 9704, 10688, 11672, 12656, 13641, 14626, 15610, 16595, 17579, 18563, 19548, 20531, 21517, 22502, 23486, 24470, 25455, 26439, 27423, 28407, 29393, 30377, 31361, 32346, 33331, 34314, 35299, 36284, 37268, 38253, 39237, 40221, 41206, 42190, 43175, 44159, 45144, 46129, 47112, 48097, 49082, 50066, 51051, 52035, 53019, 54004, 54988, 55972, 56958, 57942, 58927, 59910, 60895, 61880, 62863, 63848, 64834, 65817, 66802, 67786, 68770, 69755, 70739, 71725, 72709, 73693, 74678, 75661, 76646, 77631]]
攻击次数2 = 3*1.21
CD = 45.0
是否有护石 = 1
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * self.倍率
护石选项 = ['圣痕']
def 装备护石(self, x):
if x == 0:
self.攻击次数1 *= 1
self.攻击次数2 *= 1.54
# 主动技能,二觉主动,三段攻击
class 技能21(主动技能):
名称 = '失乐园'
所在等级 = 85
等级上限 = 40
基础等级 = 5
data1 = [int(i*1.206*1.085) for i in [0, 20182, 24863, 29543, 34223, 38904, 43584, 48265, 52944, 57624, 62306, 66987, 71666, 76347, 81027, 85706, 90387, 95068, 99748, 104428, 109108, 113789, 118469, 123149, 127830, 132510, 137189, 141870, 146550, 151231, 155911, 160591, 165271, 169951, 174631, 179312, 183993, 188672, 193353, 198033, 202712, 207394, 212074, 216754, 221434, 226114, 230794, 235476, 240155, 244835, 249516, 254195, 258875, 263557, 268237, 272917, 277597, 282277, 286960, 291639, 296319, 301000, 305679, 310359, 315041, 319721, 324400, 329081, 333761, 338440, 343122]]
攻击次数1 = 1
data2 = [int(i*1.206*1.085) for i in [0, 40367, 49727, 59089, 68449, 77809, 87170, 96531, 105890, 115251, 124612, 133971, 143333, 152693, 162054, 171414, 180774, 190135, 199495, 208856, 218216, 227579, 236938, 246299, 255660, 265019, 274380, 283741, 293102, 302461, 311823, 321183, 330543, 339904, 349265, 358624, 367985, 377346, 386706, 396067, 405427, 414788, 424148, 433508, 442869, 452230, 461591, 470951, 480313, 489672, 499033, 508394, 517753, 527114, 536475, 545836, 555195, 564557, 573917, 583277, 592638, 601999, 611359, 620719, 630080, 639440, 648801, 658161, 667522, 676882, 686244]]
攻击次数2 = 1
data3 = [int(i*1.206*1.085) for i in [0, 74006, 91167, 108328, 125489, 142649, 159812, 176972, 194132, 211294, 228455, 245616, 262776, 279938, 297099, 314259, 331421, 348582, 365743, 382903, 400065, 417226, 434386, 451549, 468709, 485869, 503030, 520192, 537353, 554513, 571675, 588836, 605996, 623157, 640319, 657479, 674640, 691802, 708963, 726122, 743286, 760446, 777605, 794766, 811928, 829089, 846249, 863410, 880572, 897732, 914894, 932055, 949215, 966376, 983537, 1000699, 1017859, 1035020, 1052182, 1069342, 1086503, 1103664, 1120826, 1137986, 1155147, 1172309, 1189469, 1206631, 1223791, 1240952, 1258113]]
攻击次数3 = 1
CD = 180.0
def 等效百分比(self, 武器类型):
return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * self.倍率
# 被动技能,二觉被动,成长2%
class 技能22(被动技能):
名称 = '原罪之初'
所在等级 = 95
等级上限 = 40
基础等级 = 4
def 加成倍率(self, 武器类型):
if self.等级 == 0:
return 1.0
else:
return round(1.18 + 0.02 * self.等级, 5)
# 主动技能,6+1段攻击。1级11504%*6+46015%,2级12670%*6+50683%,3级13837%*6+55352%,4级15004%*6+60020%,5级16172%*6+64689%
class 技能23(主动技能):
名称 = '至高之刑'
所在等级 = 95
等级上限 = 40
基础等级 = 6
data0 = [int(i*1.218*1.085) for i in [0, 11504, 12670, 13837, 15004, 16172, 17339, 18506, 19673, 20840, 22007, 23174, 24341, 25508, 26676, 27843, 29009, 30176, 31343, 32511, 33678, 34845, 36011, 37178, 38346, 39513, 40680, 41847, 43015, 44181, 45348, 46515, 47682, 48850, 50017, 51184, 52350, 53517, 54685, 55852, 57019, 58186, 59353, 60520, 61687, 62854, 64021, 65189, 66356, 67522, 68689, 69856, 71024, 72191, 73358, 74525, 75691, 76859, 78026, 79193, 80360, 81527, 82695, 83861, 85028, 86195, 87363, 88530, 89697, 90864, 92030]]
攻击次数 = 6
data1 = [int(i*1.218*1.085) for i in [0, 46015, 50683, 55352, 60020, 64689, 69356, 74024, 78693, 83361, 88030, 92698, 97366, 102034, 106702, 111371, 116039, 120707, 125376, 130043, 134712, 139380, 144048, 148717, 153385, 158054, 162721, 167389, 172058, 176726, 181395, 186063, 190731, 195399, 200067, 204736, 209404, 214073, 218741, 223408, 228077, 232745, 237414, 242082, 246750, 251418, 256086, 260755, 265423, 270091, 274760, 279428, 284096, 288764, 293432, 298101, 302769, 307438, 312105, 316773, 321442, 326110, 330779, 335447, 340115, 344783, 349451, 354120, 358788, 363457, 368125]]
攻击次数2 = 1
CD = 60
def 等效百分比(self, 武器类型):
return (self.data0[self.等级] * self.攻击次数 + self.data1[self.等级] * self.攻击次数2) * self.倍率
# 主动技能,单段攻击,1级354055%,2级436155%,3级518254%
class 技能24(主动技能):
名称 = '原罪之翼·永息'
所在等级 = 100
等级上限 = 40
基础等级 = 2
data0 = [int(i*1.206*1.085*1.05) for i in [0, 354055, 436155, 518254, 600354, 682454, 764554, 846653, 928753, 1010853, 1092953, 1175053, 1257152, 1339252, 1421352, 1503452, 1585552, 1667651, 1749751, 1831851, 1913951, 1996050, 2078150, 2160250, 2242350, 2324450, 2406549, 2488649, 2570749, 2652849, 2734948, 2817048, 2899148, 2981248, 3063348, 3145447, 3227547, 3309647, 3391747, 3473846, 3555946]]
攻击次数 = 1
CD = 290
关联技能 = ['无']
def 加成倍率(self, 武器类型):
return 0.0
def 等效百分比(self, 武器类型):
return (self.data0[self.等级] * self.攻击次数) * self.倍率
技能列表 = []
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 = 1.875
BUFF属强 = 0
远古记忆 = 0
def __init__(self):
基础属性输入(self)
self.技能栏 = deepcopy(技能列表)
self.技能序号 = deepcopy(技能序号)
def 被动倍率计算(self):
super().被动倍率计算()
self.技能栏[self.技能序号['(光辉)智慧起源:原罪结晶']
].等级 = self.技能栏[self.技能序号['智慧起源:原罪结晶']].等级
def 伤害指数计算(self):
self.所有属性强化(self.BUFF属强)
super().伤害指数计算()
class 神启·诱魔者(角色窗口):
def 窗口属性输入(self):
self.初始属性 = 神启·诱魔者角色属性()
self.角色属性A = 神启·诱魔者角色属性()
self.角色属性B = 神启·诱魔者角色属性()
self.一觉序号 = 神启·诱魔者一觉序号
self.二觉序号 = 神启·诱魔者二觉序号
self.三觉序号 = 神启·诱魔者三觉序号
self.护石选项 = deepcopy(神启·诱魔者护石选项)
self.符文选项 = deepcopy(神启·诱魔者符文选项)
def 护石判断(self):
sign = 0
for x in range(3):
if self.护石栏[x].currentText() == '暴食之噬':
sign = 1
if sign == 1:
self.暴食段数选择.setEnabled(False)
self.暴食段数选择.setStyleSheet(下拉框样式)
else:
self.暴食段数选择.setEnabled(True)
self.暴食段数选择.setStyleSheet(下拉框样式)
def 界面(self):
super().界面()
self.BUFF.move(self.BUFF.x() - 18, self.BUFF.y())
self.BUFF输入.move(self.BUFF输入.x() - 20, self.BUFF输入.y())
self.BUFF输入.resize(40, 25)
self.BUFF.setToolTip(
trans('<font size="3" face="宋体">{最高值参考}:$value</font>',
value='87.5%'))
self.BUFF输入.setToolTip(
trans('<font size="3" face="宋体">{最高值参考}:$value</font>',
value='87.5%'))
self.BUFF输入2 = QLineEdit(self.main_frame2)
self.BUFF输入2.setText(str(self.初始属性.BUFF属强))
self.BUFF输入2.resize(40, 25)
self.BUFF输入2.move(self.BUFF输入.x() + 45, self.BUFF输入.y())
self.BUFF输入2.setStyleSheet(输入框样式)
self.BUFF输入2.setAlignment(Qt.AlignCenter)
self.BUFF输入2.setToolTip('七宗罪Buff属强值')
for i in range(3):
self.护石栏[i].currentIndexChanged.connect(lambda state: self.护石判断())
self.手搓冷却 = QCheckBox('技能手搓冷却适用', self.main_frame2)
self.手搓冷却.resize(120, 20)
self.手搓冷却.move(320, 340)
self.手搓冷却.setStyleSheet(复选框样式)
self.净化之花冷却Buff = QCheckBox('净化之花冷却Buff', self.main_frame2)
self.净化之花冷却Buff.resize(120, 20)
self.净化之花冷却Buff.move(320, 370)
self.净化之花冷却Buff.setStyleSheet(复选框样式)
self.凈化之花多段段数选择 = MyQComboBox(self.main_frame2)
for i in range(19):
self.凈化之花多段段数选择.addItem('净化之花:' + str(i) + '+1段')
self.凈化之花多段段数选择.setCurrentIndex(15)
self.凈化之花多段段数选择.resize(120, 20)
self.凈化之花多段段数选择.move(320, 400)
self.暴食段数选择 = MyQComboBox(self.main_frame2)
for i in range(9):
self.暴食段数选择.addItem('暴食之噬:' + str(i) + '+4段')
self.暴食段数选择.setCurrentIndex(8)
self.暴食段数选择.resize(120, 20)
self.暴食段数选择.move(320, 430)
self.职业存档.append(('BUFF输入2', self.BUFF输入2, 2))
self.职业存档.append(('手搓冷却', self.手搓冷却, 0))
self.职业存档.append(('净化之花冷却Buff', self.净化之花冷却Buff, 0))
self.职业存档.append(('凈化之花多段段数选择', self.凈化之花多段段数选择, 1))
self.职业存档.append(('暴食段数选择', self.暴食段数选择, 1))
def 输入属性(self, 属性, x=0):
super().输入属性(属性, x)
if self.手搓冷却.isChecked():
属性.技能冷却缩减(10, 25, 0.01)
属性.技能冷却缩减(30, 45, 0.02)
属性.技能冷却缩减(50, 100, 0.05)
if self.净化之花冷却Buff.isChecked():
属性.技能冷却缩减(1, 48, 0.10)
属性.技能冷却缩减(55, 100, 0.10)
属性.技能栏[属性.技能序号['净化之花']].攻击次数1 = self.凈化之花多段段数选择.currentIndex()
if self.暴食段数选择.isEnabled():
属性.技能栏[属性.技能序号['暴食之噬']].攻击次数1 = self.暴食段数选择.currentIndex()
try:
self.BUFF全属强 = int(self.BUFF输入2.text())
except:
self.BUFF全属强 = self.初始属性.BUFF属强
属性.BUFF属强 = self.BUFF全属强