from PublicReference.carry.base import * from math import * 等级 = 100 + 5 class 职业主动技能(主动技能): 技能施放时间 = 0.0 脱手 = 1 data0 = [] data1 = [] data2 = [] data3 = [] def 等效百分比(self, 武器类型): 等效倍率 = 0.0 if len(self.data0) >= self.等级 and len(self.data0) > 0: 等效倍率 += self.data0[self.等级] * self.攻击次数 if len(self.data1) >= self.等级 and len(self.data1) > 0: 等效倍率 += self.data1[self.等级] * self.攻击次数2 if len(self.data2) >= self.等级 and len(self.data2) > 0: 等效倍率 += self.data2[self.等级] * self.攻击次数3 if len(self.data3) >= self.等级 and len(self.data3) > 0: 等效倍率 += self.data3[self.等级] * self.攻击次数4 return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率 class 技能0(被动技能): 名称 = '单兵推进器' 所在等级 = 15 等级上限 = 20 基础等级 = 10 关联技能 = ['交叉射击', '聚合弹', '凝固汽油弹', '轻火力速射'] 关联技能2 = ['爆裂弹'] def 加成倍率(self, 武器类型): if self.等级 == 0: return 1.0 else: return round(1 + (10 + self.等级) / 100, 3) def 加成倍率2(self, 武器类型): if self.等级 == 0: return 1.0 else: return round(1 + (2 * self.等级) / 100, 3) class 技能1(被动技能): 名称 = '兵器研究' 所在等级 = 20 等级上限 = 20 基础等级 = 10 冷却关联技能 = ['所有'] 非冷却关联技能 = ['EMP磁暴', '决战之日', '终解·制空霸权'] def 加成倍率(self, 武器类型): return (1.1 + (self.等级 - 10) * 0.02) if self.等级 >= 10 else (1 + self.等级 * 0.01) def 独立攻击力倍率(self, 武器类型): return (1.1 + (self.等级 - 10) * 0.02) if self.等级 >= 10 else (1 + self.等级 * 0.01) def CD缩减倍率(self, 武器类型): if self.等级 == 0: return 1.0 else: return round(1 - 0.01 * self.等级, 3) class 技能2(被动技能): 名称 = '手雷精通' 所在等级 = 20 等级上限 = 20 基础等级 = 10 关联技能 = ['G35感电手雷', 'G18冰冻手雷'] def 加成倍率(self, 武器类型): if self.等级 == 0: return 1.0 else: return round(1 + 0.1 * self.等级, 3) class 技能3(被动技能): 名称 = '弹药改良' 所在等级 = 20 等级上限 = 20 基础等级 = 10 关联技能 = ['所有'] 技能加成描述 = '' 加成数值 = 1.0 关联技能2 = ['所有'] def 加成倍率(self, 武器类型): return self.加成数值 def 加成倍率2(self, 武器类型): if self.等级 == 0: return 1.0 else: return 1.03 + min(10, self.等级) * 0.02 + max(0, self.等级 - 10) * 0.01 自定义描述 = 1 def 技能描述(self, 武器类型): return self.技能加成描述 class 技能4(职业主动技能): 名称 = 'M18阔剑地雷' 所在等级 = 20 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.132)for i in [0, 700, 771, 842, 913, 984, 1055, 1126, 1197, 1268, 1340, 1411, 1482, 1553, 1624, 1695, 1766, 1837, 1908, 1979, 2050, 2121, 2192, 2263, 2334, 2406, 2477, 2548, 2619, 2690, 2761, 2832, 2903, 2974, 3045, 3116, 3187, 3258, 3329, 3400, 3471, 3543, 3614, 3685, 3756, 3827, 3898, 3969, 4040, 4111, 4182, 4253, 4324, 4395, 4466, 4537, 4609, 4680, 4751, 4822, 4893, 4964, 5035, 5106, 5177, 5248, 5319, 5390, 5461, 5532, 5603]] 攻击次数 = 3 CD = 6.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 class 技能5(职业主动技能): 名称 = 'G35感电手雷' 所在等级 = 25 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.142*1.063)for i in [0, 540, 595, 650, 705, 760, 815, 870, 924, 979, 1034, 1089, 1144, 1199, 1254, 1308, 1363, 1418, 1473, 1528, 1583, 1637, 1692, 1747, 1802, 1857, 1912, 1967, 2021, 2076, 2131, 2186, 2241, 2296, 2350, 2405, 2460, 2515, 2570, 2625, 2680, 2734, 2789, 2844, 2899, 2954, 3009, 3063, 3118, 3173, 3228, 3283, 3338, 3393, 3447, 3502, 3557, 3612, 3667, 3722, 3777, 3831, 3886, 3941, 3996, 4051, 4106, 4160, 4215, 4270, 4325]] 攻击次数 = 1 data1 = [0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14] 攻击次数2 = 18 CD = 3.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 基础释放次数 = 3 # def 等效CD(self, 武器类型, 输出类型): # # 经过测试,手雷恢复速度无法享受技能冷却恢复加成 # return round(self.CD, 1) class 技能6(职业主动技能): 名称 = '交叉射击' 所在等级 = 25 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.153)for i in [0, 1329, 1463, 1598, 1733, 1868, 2003, 2138, 2272, 2407, 2542, 2677, 2812, 2947, 3081, 3216, 3351, 3486, 3621, 3756, 3890, 4025, 4160, 4295, 4430, 4565, 4699, 4834, 4969, 5104, 5239, 5374, 5508, 5643, 5778, 5913, 6048, 6183, 6317, 6452, 6587, 6722, 6857, 6992, 7126, 7261, 7396, 7531, 7666, 7801, 7935, 8070, 8205, 8340, 8475, 8610, 8744, 8879, 9014, 9149, 9284, 9419, 9553, 9688, 9823, 9958, 10093, 10228, 10362, 10497, 10632]] 攻击次数 = 3 CD = 8.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 class 技能7(职业主动技能): 名称 = '爆裂弹' 所在等级 = 30 等级上限 = 20 基础等级 = 10 data0 = [int(i*1.157)for i in [0, 662, 768, 873, 978, 1084, 1189, 1294, 1400, 1506, 1611, 1717, 1822, 1927, 2033, 2138, 2244, 2350, 2455, 2561, 2666]] 攻击次数 = 1 CD = 5.0 class 技能8(职业主动技能): 名称 = 'G18冰冻手雷' 所在等级 = 30 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.115*1.076)for i in [0, 666, 733, 801, 869, 936, 1004, 1071, 1139, 1207, 1274, 1342, 1409, 1477, 1545, 1612, 1680, 1747, 1815, 1883, 1950, 2018, 2085, 2153, 2220, 2288, 2356, 2423, 2491, 2558, 2626, 2694, 2761, 2829, 2896, 2964, 3032, 3099, 3167, 3234, 3302, 3370, 3437, 3505, 3572, 3640, 3708, 3775, 3843, 3910, 3978, 4046, 4113, 4181, 4248, 4316, 4384, 4451, 4519, 4586, 4654, 4722, 4789, 4857, 4924, 4992, 5060, 5127, 5195, 5262, 5330]] 攻击次数 = 1 基础释放次数 = 3 CD = 4.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 # def 等效CD(self, 武器类型, 输出类型): # # 经过测试,手雷恢复速度无法享受技能冷却恢复加成 # return round(self.CD, 1) class 技能9(职业主动技能): 名称 = '聚合弹' 所在等级 = 35 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.216)for i in [0, 8804, 9698, 10591, 11484, 12377, 13271, 14164, 15057, 15951, 16844, 17737, 18630, 19524, 20417, 21310, 22203, 23097, 23990, 24883, 25776, 26670, 27563, 28456, 29349, 30243, 31136, 32029, 32922, 33816, 34709, 35602, 36495, 37389, 38282, 39175, 40068, 40962, 41855, 42748, 43641, 44535, 45428, 46321, 47215, 48108, 49001, 49894, 50788, 51681, 52574, 53467, 54361, 55254, 56147, 57040, 57934, 58827, 59720, 60613, 61507, 62400, 63293, 64186, 65080, 65973, 66866, 67759, 68653, 69546, 70439]] 攻击次数 = 1 CD = 18.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 class 技能10(职业主动技能): 名称 = 'C4飞弹' 所在等级 = 35 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.151)for i in [0, 8305, 9148, 9990, 10833, 11676, 12518, 13361, 14203, 15046, 15889, 16731, 17574, 18416, 19259, 20102, 20944, 21787, 22629, 23472, 24315, 25157, 26000, 26842, 27685, 28528, 29370, 30213, 31055, 31898, 32741, 33583, 34426, 35268, 36111, 36954, 37796, 38639, 39481, 40324, 41167, 42009, 42852, 43694, 44537, 45380, 46222, 47065, 47907, 48750, 49593, 50435, 51278, 52120, 52963, 53806, 54648, 55491, 56333, 57176, 58019, 58861, 59704, 60546, 61389, 62232, 63074, 63917, 64759, 65602, 66445]] 攻击次数 = 1 CD = 20.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 是否有护石 = 1 护石选项 = ['魔界', '圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data0 = [i * 1.16 for i in self.data0] elif 类型 == 1: self.data0 = [i * 1.25 for i in self.data0] class 技能11(职业主动技能): 名称 = '凝固汽油弹' 所在等级 = 40 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.204)for i in [0, 9616, 10591, 11566, 12541, 13518, 14493, 15468, 16444, 17420, 18395, 19370, 20345, 21322, 22297, 23272, 24248, 25224, 26199, 27174, 28150, 29125, 30101, 31076, 32052, 33027, 34003, 34979, 35954, 36929, 37905, 38880, 39856, 40831, 41806, 42783, 43758, 44733, 45710, 46685, 47660, 48635, 49610, 50587, 51562, 52537, 53513, 54489, 55464, 56439, 57414, 58391, 59366, 60341, 61317, 62292, 63268, 64244, 65219, 66194, 67170, 68145, 69121, 70096, 71072, 72048, 73023, 73998, 74973, 75949, 76925]] 攻击次数 = 1 data1 = [int(i*1.204)for i in [0, 50, 53, 59, 63, 69, 73, 79, 83, 89, 93, 98, 104, 108, 114, 118, 124, 128, 134, 137, 143, 148, 153, 159, 163, 169, 173, 178, 182, 188, 193, 198, 203, 208, 214, 218, 223, 227, 233, 238, 243, 248, 253, 258, 262, 268, 273, 278, 283, 288, 293, 298, 302, 307, 312, 318, 323, 328, 333, 338, 343, 347, 352, 357, 363, 367, 373, 378, 383, 387, 392]] 攻击次数2 = 15 CD = 20.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 是否有护石 = 1 护石选项 = ['魔界', '圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data0 = [x * 1.31 for x in self.data0] self.攻击次数2 = 0 self.CD *= 0.94 elif 类型 == 1: self.data0 = [x * 1.40 for x in self.data0] self.攻击次数2 = 0 self.CD *= 0.94 class 技能12(职业主动技能): 名称 = '镭射狙击' 所在等级 = 45 等级上限 = 60 学习间隔 = 2 等级精通 = 50 data0 = [int(i*1.161*1.056)for i in [0, 3351, 3691, 4031, 4371, 4711, 5051, 5391, 5731, 6071, 6411, 6752, 7092, 7432, 7772, 8112, 8452, 8792, 9132, 9472, 9812, 10152, 10492, 10832, 11172, 11512, 11852, 12192, 12532, 12872, 13212, 13552, 13892, 14232, 14572, 14912, 15252, 15592, 15932, 16272, 16612, 16952, 17292, 17632, 17973, 18313, 18653, 18993, 19333, 19673, 20013, 20353, 20693, 21033, 21373, 21713, 22053, 22393, 22733, 23073, 23413, 23753, 24093, 24433, 24773, 25113, 25453, 25793, 26133, 26473, 26813]] 攻击次数 = 5 CD = 45.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 是否有护石 = 1 护石选项 = ['魔界', '圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data0 = [x * 0.26 for x in self.data0] self.攻击次数 = 24 self.技能施放时间 = 3.0 elif 类型 == 1: self.data0 = [x * 0.28 for x in self.data0] self.攻击次数 = 24 self.技能施放时间 = 3.0 class 技能13(被动技能): 名称 = '弹药强化' 所在等级 = 48 等级上限 = 40 基础等级 = 20 关联技能 = ['所有'] def 加成倍率(self, 武器类型): return 1.105 + self.等级 * 0.015 if self.等级 > 0 else 1 class 技能14(职业主动技能): 名称 = 'EMP磁暴' 所在等级 = 50 等级上限 = 40 学习间隔 = 5 等级精通 = 30 data0 = [int(i*1.232)for i in [0, 11718, 14435, 17152, 19870, 22587, 25304, 28021, 30739, 33456, 36173, 38891, 41608, 44325, 47042, 49760, 52477, 55194, 57912, 60629, 63346, 66063, 68781, 71498, 74215, 76932, 79650, 82367, 85084, 87802, 90519, 93236, 95953, 98671, 101388, 104105, 106823, 109540, 112257, 114974, 117692, 120409, 123126, 125844, 128561, 131278, 133995, 136713, 139430, 142147, 144864, 147582, 150299, 153016, 155734, 158451, 161168, 163885, 166603, 169320, 172037, 174755, 177472, 180189, 182906, 185624, 188341, 191058, 193776, 196493, 199210]] 攻击次数 = 3 data1 = [int(i*1.232)for i in [0, 585, 721, 857, 993, 1129, 1265, 1401, 1536, 1672, 1808, 1944, 2080, 2216, 2352, 2488, 2623, 2759, 2895, 3031, 3167, 3303, 3439, 3574, 3710, 3846, 3982, 4118, 4254, 4390, 4525, 4661, 4797, 4933, 5069, 5205, 5341, 5477, 5612, 5748, 5884, 6020, 6156, 6292, 6428, 6563, 6699, 6835, 6971, 7107, 7243, 7379, 7514, 7650, 7786, 7922, 8058, 8194, 8330, 8466, 8601, 8737, 8873, 9009, 9145, 9281, 9417, 9552, 9688, 9824, 9960]] 攻击次数2 = 20 CD = 145.0 class 技能15(职业主动技能): 名称 = 'G61重力手雷' 所在等级 = 60 等级上限 = 40 学习间隔 = 2 等级精通 = 30 data0 = [int(i*1.166*1.054)for i in [0, 6165, 6791, 7417, 8042, 8668, 9293, 9919, 10544, 11170, 11795, 12421, 13046, 13672, 14297, 14923, 15549, 16174, 16800, 17425, 18051, 18676, 19302, 19927, 20553, 21178, 21804, 22429, 23055, 23680, 24306, 24932, 25557, 26183, 26808, 27434, 28059, 28685, 29310, 29936, 30561, 31187, 31812, 32438, 33063, 33689, 34315, 34940, 35566, 36191, 36817, 37442, 38068, 38693, 39319, 39944, 40570, 41195, 41821, 42446, 43072, 43698, 44323, 44949, 45574, 46200, 46825, 47451, 48076, 48702, 49327]] 攻击次数 = 1 data1 = [int(i*1.166*1.054)for i in [0, 205, 226, 247, 268, 288, 309, 330, 351, 372, 393, 414, 434, 455, 476, 497, 518, 539, 560, 580, 601, 622, 643, 664, 685, 705, 726, 747, 768, 789, 810, 831, 851, 872, 893, 914, 935, 956, 977, 997, 1018, 1039, 1060, 1081, 1102, 1122, 1143, 1164, 1185, 1206, 1227, 1248, 1268, 1289, 1310, 1331, 1352, 1373, 1394, 1414, 1435, 1456, 1477, 1498, 1519, 1540, 1560, 1581, 1602, 1623, 1644]] 攻击次数2 = 29 CD = 20.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 技能施放时间 = 3 是否有护石 = 1 护石选项 = ['魔界', '圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data0 = [x * 2.16 for x in self.data0] self.技能施放时间 = 0.5 self.攻击次数2 = 5 elif 类型 == 1: self.data0 = [x * 2.34 for x in self.data0] self.技能施放时间 = 0.5 self.攻击次数2 = 5 class 技能16(职业主动技能): 名称 = '轻火力速射' 脱手 = 0 所在等级 = 70 等级上限 = 40 学习间隔 = 2 等级精通 = 30 data0 = [int(i*1.16)for i in [0, 1233, 1359, 1484, 1609, 1734, 1859, 1984, 2110, 2235, 2360, 2485, 2610, 2735, 2861, 2986, 3111, 3236, 3361, 3486, 3612, 3737, 3862, 3987, 4112, 4237, 4363, 4488, 4613, 4738, 4863, 4989, 5114, 5239, 5364, 5489, 5614, 5740, 5865, 5990, 6115, 6240, 6365, 6491, 6616, 6741, 6866, 6991, 7116, 7242, 7367, 7492, 7617, 7742, 7867, 7993, 8118, 8243, 8368, 8493, 8618, 8744, 8869, 8994, 9119, 9244, 9370, 9495, 9620, 9745, 9870]] 攻击次数 = 17 CD = 30.0 TP成长 = 0.10 TP基础 = 5 TP上限 = 5 技能施放时间 = 1 是否有护石 = 1 护石选项 = ['魔界', '圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data1 = [x * 0.6 for x in self.data0] self.技能施放时间 = 1.5 self.攻击次数2 = 6 self.CD *= 0.95 elif 类型 == 1: self.data1 = [x * 0.82 for x in self.data0] self.技能施放时间 = 1.5 self.攻击次数2 = 6 self.CD *= 0.95 class 技能17(被动技能): 名称 = '制空掌握' 所在等级 = 75 等级上限 = 30 基础等级 = 11 关联技能 = ['所有'] def 加成倍率(self, 武器类型): if self.等级 == 0: return 1.0 else: return round(1.18 + 0.02 * self.等级, 3) class 技能18(职业主动技能): 名称 = '开火' 所在等级 = 75 等级上限 = 40 学习间隔 = 2 等级精通 = 30 data0 = [int(i*1.139*1.052)for i in [0, 8299, 9141, 9982, 10824, 11666, 12508, 13350, 14192, 15034, 15876, 16718, 17560, 18402, 19244, 20086, 20928, 21770, 22612, 23453, 24295, 25137, 25979, 26821, 27663, 28505, 29347, 30189, 31031, 31873, 32715, 33557, 34399, 35241, 36082, 36924, 37766, 38608, 39450, 40292, 41134, 41976, 42818, 43660, 44502, 45344, 46186, 47028, 47870, 48712, 49553, 50395, 51237, 52079, 52921, 53763, 54605, 55447, 56289, 57131, 57973, 58815, 59657, 60499, 61341, 62183, 63024, 63866, 64708, 65550, 66392]] 攻击次数 = 6 CD = 45.0 脱手 = 0 技能施放时间 = 1 是否有护石 = 1 护石选项 = ['圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data0 = [x * 1.35 for x in self.data0] class 技能19(职业主动技能): 名称 = 'G96热压手雷' 所在等级 = 80 等级上限 = 40 学习间隔 = 2 等级精通 = 30 data0 = [int(i*1.146*1.132)for i in [0, 42837, 47183, 51529, 55874, 60220, 64566, 68912, 73258, 77604, 81949, 86295, 90641, 94987, 99333, 103679, 108024, 112370, 116716, 121062, 125408, 129754, 134099, 138445, 142791, 147137, 151483, 155829, 160174, 164520, 168866, 173212, 177558, 181904, 186249, 190595, 194941, 199287, 203633, 207979, 212324, 216670, 221016, 225362, 229708, 234054, 238399, 242745, 247091, 251437, 255783, 260129, 264474, 268820, 273166, 277512, 281858, 286204, 290549, 294895, 299241, 303587, 307933, 312279, 316624, 320970, 325316, 329662, 334008, 338354, 342699]] 攻击次数 = 1 CD = 45.0 是否有护石 = 1 护石选项 = ['圣痕'] def 装备护石(self, 类型): if 类型 == 0: self.data0 = [x * 1.29 for x in self.data0] self.CD *= 0.9 class 技能20(职业主动技能): 名称 = '决战之日' 所在等级 = 85 等级上限 = 40 学习间隔 = 5 等级精通 = 30 技能施放时间 = 5 data0 = [int(i*1.182)for i in [0, 3284, 4046, 4808, 5570, 6331, 7093, 7855, 8616, 9378, 10140, 10902, 11663, 12425, 13187, 13949, 14710, 15472, 16234, 16995, 17757, 18519, 19281, 20042, 20804, 21566, 22328, 23089, 23851, 24613, 25374, 26136, 26898, 27660, 28421, 29183, 29945, 30706, 31468, 32230, 32992, 33753, 34515, 35277, 36039, 36800, 37562, 38324, 39085, 39847, 40609, 41371, 42132, 42894, 43656, 44417, 45179, 45941, 46703, 47464, 48226, 48988, 49750, 50511, 51273, 52035, 52796, 53558, 54320, 55082, 55843]] 攻击次数 = 40 CD = 180.0 class 技能21(被动技能): 名称 = '单兵推进器-02X' 所在等级 = 95 等级上限 = 40 学习间隔 = 3 等级精通 = 30 def 加成倍率(self, 武器类型): if self.等级 == 0: return 1.0 else: return round(1.18 + 0.02 * self.等级, 5) class 技能22(职业主动技能): 名称 = '空袭战略' 所在等级 = 95 等级上限 = 40 学习间隔 = 2 等级精通 = 10 # 脱手 = 1 # 技能施放时间 = 3 持续时间 = 6 CD = 60.0 # 毛雷 data0 = [int(i*1.152*1.075)for i in [0, 12509, 13778, 15047, 16316, 17585, 18854, 20123, 21392, 22661, 23930, 25199, 26468, 27737, 29006, 30275, 31544, 32814, 34083, 35352, 36621, 37890, 39159, 40428, 41697, 42966, 44235, 45504, 46773, 48042, 49311, 50580, 51849, 53118, 54387, 55656, 56926, 58195, 59464, 60733, 62002, 63271, 64540, 65809, 67078, 68347, 69616, 70885, 72154, 73423, 74692, 75961, 77230, 78499, 79768, 81037, 82307, 83576, 84845, 86114, 87383, 88652, 89921, 91190, 92459, 93728, 94997, 96266, 97535, 98804, 100073]] 攻击次数 = 6 # # 电雷 # data1 = [0,223,246,268,291,314,337,360,383,406,429,452,475,498,521,544,567,590,613,636,659] # 攻击次数2 = 40*3 # # 冰雷 # data2 = [0,446,492,537,582,628,674,720,766,812,858,904,950,996,1042,1088,1134,1180,1226,1272,1318] # 攻击次数3 = 20*3 # 终结 data1 = [int(i*1.152)for i in [0, 32166, 35429, 38693, 41956, 45219, 48482, 51746, 55009, 58272, 61536, 64799, 68062, 71325, 74589, 77852, 81115, 84378, 87642, 90905, 94168, 97432, 100695, 103958, 107221, 110485, 113748, 117011, 120274, 123538, 126801, 130064, 133328, 136591, 139854, 143117, 146381, 149644, 152907, 156170, 159434, 162697, 165960, 169224, 172487, 175750, 179013, 182277, 185540, 188803, 192067, 195330, 198593, 201856, 205120, 208383, 211646, 214909, 218173, 221436, 224699, 227963, 231226, 234489, 237752, 241016, 244279, 247542, 250805, 254069, 257332]] 攻击次数2 = 1 class 技能23(职业主动技能): 名称 = '终解·制空霸权' 所在等级 = 100 等级上限 = 40 学习间隔 = 5 等级精通 = 30 关联技能 = ['无'] CD = 290.0 脱手 = 0 技能施放时间 = 6.8 data0 = [int(i*1.23)for i in [0, 17492, 21548, 25604, 29660, 33716, 37773, 41829, 45885, 49941, 53997, 58054, 62110, 66166, 70222, 74278, 78334, 82391, 86447, 90503, 94559, 98615, 102671, 106728, 110784, 114840, 118896, 122952, 127009, 131065, 135121, 139177, 143233, 147289, 151346, 155402, 159458, 163514, 167570, 171626, 175683, 179739, 183795, 187851, 191907, 195963, 200020, 204076, 208132, 212188, 216244, 220301, 224357, 228413, 232469, 236525, 240581, 244638, 248694, 252750, 256806, 260862, 264918, 268975, 273031, 277087, 281143, 285199, 289256, 293312, 297368]] 攻击次数 = 7 data1 = [int(i*1.23)for i in [0, 57141, 70391, 83641, 96891, 110142, 123392, 136642, 149892, 163142, 176392, 189643, 202893, 216143, 229393, 242643, 255893, 269144, 282394, 295644, 308894, 322144, 335395, 348645, 361895, 375145, 388395, 401645, 414896, 428146, 441396, 454646, 467896, 481146, 494397, 507647, 520897, 534147, 547397, 560648, 573898, 587148, 600398, 613648, 626898, 640149, 653399, 666649, 679899, 693149, 706399, 719650, 732900, 746150, 759400, 772650, 785900, 799151, 812401, 825651, 838901, 852151, 865402, 878652, 891902, 905152, 918402, 931652, 944903, 958153, 971403]] 攻击次数2 = 5 def 加成倍率(self, 武器类型): return 0.0 技能列表 = [] i = 0 while i >= 0: try: tem = eval('技能'+str(i)+'()') tem.基础等级计算() 技能列表.append(tem) i += 1 except: i = -1 class 职业属性(角色属性): 实际名称 = '重霄·弹药专家·女' 角色 = '神枪手(女)' 职业 = '弹药专家' 武器选项 = ['手弩', '步枪'] 类型选择 = ['魔法固伤', '物理固伤'] 类型 = '魔法固伤' 防具类型 = '皮甲' 防具精通属性 = ['智力', '力量'] 超负荷属性 = 0 主BUFF = 1.84 远古记忆 = 0 打桩模式 = 0 补给输出形态选择 = 0 # 守门人四属强 = [0,0,0,0] def __init__(self, 技能列表, 技能序号): 基础属性输入(self) self.技能栏 = deepcopy(技能列表) self.技能序号 = deepcopy(技能序号) def 技能释放次数计算(self): 技能释放次数 = [] 技能消耗时间 = 0.0 爆裂弹间隔 = 0.115 每轮空射次数 = 12 + floor(0.5 * min(self.技能栏[self.技能序号['单兵推进器']].等级, 20)) 每轮时间 = 爆裂弹间隔 * 每轮空射次数 + 1.05 # 最大不脱手时间 = 0.0 反应时间 = 0.0 释放时间系数 = 0.0 起落地时间 = 0.0 CD延迟 = 0.0 if(self.打桩模式 == 0): 反应时间 = 1.5 释放时间系数 = 1.0 起落地时间 = 1.5 CD延迟 = 0.0 elif(self.打桩模式 == 1): 反应时间 = 0.0 释放时间系数 = 0.0 起落地时间 = 1.0 CD延迟 = 0.0 elif(self.打桩模式 == 2): 反应时间 = 3.0 释放时间系数 = 2.0 起落地时间 = 3.0 CD延迟 = 2.0 if (self.武器类型 != '手弩'): 爆裂弹间隔 = 0.14 每轮空射次数 = 4 + floor(0.5 * min(self.技能栏[self.技能序号['单兵推进器']].等级, 20)) 每轮时间 = 爆裂弹间隔 * 每轮空射次数 + 起落地时间 爆裂弹位置 = self.技能序号['爆裂弹'] 最大不脱手时间 = 0 for i in self.技能栏: if i.是否有伤害 == 1 and i.脱手 != 1 and i.技能施放时间 > 最大不脱手时间 and self.次数输入[self.技能序号[i.名称]]: 最大不脱手时间 = i.技能施放时间 + 0.5 # print(最大不脱手时间) for i in self.技能栏: if i.是否有伤害 == 1: if i.名称 == '爆裂弹': 技能释放次数.append(0) else: if '/CD' in self.次数输入[self.技能序号[i.名称]]: # 根据技能CD及最大不脱手时间得到技能空转的时间 最终CD = i.等效CD(self.武器类型, self.类型) 空转时间 = 0 if 最终CD < 最大不脱手时间: 空转时间 = 最大不脱手时间 - 最终CD # 计算不脱手时间 # 技能无法释放次数 = int(最大不脱手时间/(i.等效CD(self.武器类型,self.类型))) # print(技能无法释放次数) # print(最大不脱手时间) # print(int((self.时间输入 - 反应时间-最大不脱手时间) / (i.等效CD(self.武器类型,self.类型) + i.技能施放时间*释放时间系数 + CD延迟) + 1 + i.基础释放次数)) # print(技能无法释放次数) 技能次数 = max(0, int((self.时间输入 - 反应时间 - 空转时间) / (最终CD + i.技能施放时间*释放时间系数 + CD延迟) + 1 + i.基础释放次数)) 技能释放次数.append(技能次数) # 技能释放次数.append(int((self.时间输入 - 反应时间) / (i.等效CD(self.武器类型) + i.技能施放时间*释放时间系数 + CD延迟) + 1 + i.基础释放次数)) if i.脱手 == 1: 技能消耗时间 += 技能次数 * 0.12 * 释放时间系数 else: 技能消耗时间 += 技能次数 * i.技能施放时间*释放时间系数 elif self.次数输入[self.技能序号[i.名称]] != '0': 技能释放次数.append( round(float(self.次数输入[self.技能序号[i.名称]]), 2)) if i.脱手 == 1: 技能消耗时间 += int(self.次数输入[self.技能序号[i.名称]] ) * 0.12 * 释放时间系数 else: 技能消耗时间 += int(self.次数输入[self.技能序号[i.名称]] ) * i.技能施放时间 * 释放时间系数 else: 技能释放次数.append(0) else: 技能释放次数.append(0) # 填补补给占用时间,补给期间选择丢雷暂时不考虑空射 # 追加补给选择丢雷对子弹的输出时间的影响 # 技能消耗时间 += self.技能栏[self.技能序号['空袭战略']].持续时间() if self.补给输出形态选择 == 0 else 0 # print(补给占用时间) if '/CD' in self.次数输入[self.技能序号['爆裂弹']]: 技能释放次数[爆裂弹位置] = max( int(floor((self.时间输入 - 技能消耗时间) / 每轮时间) * 每轮空射次数), 0) 技能释放次数[爆裂弹位置] += max(floor((self.时间输入 - 技能消耗时间 - 每轮时间 * floor((self.时间输入 - 技能消耗时间) / 每轮时间) - 起落地时间/2) / 爆裂弹间隔), 0) else: 技能释放次数[爆裂弹位置] = int(float(self.次数输入[self.技能序号['爆裂弹']]) * 每轮空射次数) return self.技能释放次数解析(技能释放次数) def 预处理(self): if self.超负荷属性 == 0: self.技能栏[self.技能序号['弹药改良']].加成数值 = 1.1 self.技能栏[self.技能序号['弹药改良']].自定义描述 = 0 if self.超负荷属性 == 1: self.技能栏[self.技能序号['弹药改良']].技能加成描述 = '火属性强化增加:36' self.火属性强化 += 36 if self.超负荷属性 == 2: self.技能栏[self.技能序号['弹药改良']].技能加成描述 = '冰属性强化增加:36' self.冰属性强化 += 36 if self.超负荷属性 == 3: self.技能栏[self.技能序号['弹药改良']].技能加成描述 = '光属性强化增加:36' self.光属性强化 += 36 super().预处理() class 重霄·弹药专家·女(角色窗口): def 窗口属性输入(self): 技能序号 = 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 and i.名称 != '爆裂弹': 符文选项.append(i.名称) self.初始属性 = 职业属性(技能列表, 技能序号) self.角色属性A = 职业属性(技能列表, 技能序号) self.角色属性B = 职业属性(技能列表, 技能序号) self.一觉序号 = 一觉序号 self.二觉序号 = 二觉序号 self.三觉序号 = 三觉序号 self.护石选项 = deepcopy(护石选项) self.符文选项 = deepcopy(符文选项) def 界面2(self): super().界面2() self.超负荷属性选择 = MyQComboBox(self.main_frame2) self.超负荷属性选择.addItems(['超负荷装填:无', '超负荷装填:火', '超负荷装填:冰', '超负荷装填:光']) self.超负荷属性选择.resize(120, 20) self.超负荷属性选择.move(325, 420) # self.补给输出形态选择=MyQComboBox(self.main_frame2) # self.补给输出形态选择.addItems(['输出丢雷','爆发丢技能']) # self.补给输出形态选择.resize(120,20) # self.补给输出形态选择.move(325,450) self.打桩模式 = MyQComboBox(self.main_frame2) y = QLabel("打桩模式:", self.main_frame2) y.move(500, self.height() - 63) y.resize(70, 20) y.setStyleSheet(标签样式) self.打桩模式.addItems(['常规打桩', '桩逼模式', '手残模式']) self.打桩模式.move(570, self.height() - 63) self.打桩模式.resize(80, 20) self.职业存档.append(('超负荷属性选择', self.超负荷属性选择, 1)) self.职业存档.append(('打桩模式', self.打桩模式, 1)) def 输入属性(self, 属性, x=0): super().输入属性(属性, x) 属性.打桩模式 = self.打桩模式.currentIndex() 属性.超负荷属性 = self.超负荷属性选择.currentIndex() # 属性.补给输出形态选择 = self.补给输出形态选择.currentIndex()