299 lines
10 KiB
Python
299 lines
10 KiB
Python
from PublicReference.buffer.base import *
|
|
|
|
|
|
class 知源·小魔女技能0(被动技能):
|
|
名称 = '人偶操纵者'
|
|
所在等级 = 15
|
|
等级上限 = 60
|
|
基础等级 = 31
|
|
额外智力 = 0
|
|
站街生效 = 1
|
|
智力 = [0, 69, 73, 77, 81, 85, 90, 95, 100, 106, 112, 118, 124, 130, 137, 144, 152, 160, 168, 176, 184, 193, 202, 212, 221, 231, 241, 252, 262, 273, 284,
|
|
296, 308, 320, 332, 344, 358, 371, 384, 398, 412, 426, 440, 456, 470, 486, 502, 518, 534, 550, 567, 581, 597, 613, 629, 645, 660, 676, 692, 708, 724]
|
|
|
|
def 智力加成(self):
|
|
return self.智力[self.等级] + self.额外智力 + self.进图加成
|
|
|
|
def 结算统计(self, context):
|
|
return [self.智力加成(), 0, 0, 0, 0, 0, 0, 0]
|
|
# 智力 体力 精神 力量 智力 物攻 魔攻 独立
|
|
|
|
|
|
class 知源·小魔女技能1(主动技能):
|
|
名称 = '小魔女的偏爱'
|
|
所在等级 = 20
|
|
等级上限 = 40
|
|
基础等级 = 10
|
|
增幅倍率 = 0.15
|
|
|
|
def 结算统计(self, context):
|
|
buff = context.技能表['BUFF']
|
|
if buff.是否启用 and context.偏爱独立计算:
|
|
values = buff.结算统计(context)
|
|
return [int(round(i * self.增幅倍率, 3)) for i in values]
|
|
return [0]*8
|
|
|
|
|
|
class 知源·小魔女技能2(主动技能):
|
|
名称 = '禁忌诅咒'
|
|
所在等级 = 30
|
|
等级上限 = 40
|
|
基础等级 = 10
|
|
BUFF力量per = 0
|
|
BUFF智力per = 0
|
|
BUFF物攻per = 0
|
|
BUFF魔攻per = 0
|
|
BUFF独立per = 0
|
|
BUFF力量 = 0
|
|
BUFF智力 = 0
|
|
BUFF物攻 = 0
|
|
BUFF魔攻 = 0
|
|
BUFF独立 = 0
|
|
三攻 = [0, 34, 35, 37, 38, 39, 41, 42, 43, 45, 46, 47, 49, 50, 51, 53, 54, 55, 57, 58,
|
|
60, 61, 62, 64, 65, 66, 68, 69, 70, 72, 73, 74, 76, 77, 78, 80, 81, 82, 84, 85, 87]
|
|
力智 = [0, 131, 140, 149, 158, 167, 175, 184, 193, 202, 211, 220, 229, 238, 247, 256, 264, 273, 282, 291,
|
|
300, 309, 318, 327, 336, 345, 353, 362, 371, 380, 389, 398, 407, 416, 425, 434, 442, 451, 460, 469, 478]
|
|
|
|
def 结算统计(self, context=None):
|
|
倍率 = self.适用数值 / 665 + 1
|
|
|
|
偏爱 = context.技能表['小魔女的偏爱']
|
|
if 偏爱.是否启用 and not context.偏爱独立计算:
|
|
倍率 *= 1 + 偏爱.增幅倍率
|
|
|
|
temp = [0, 0, 0] # 智力,体力,精神
|
|
temp.append(
|
|
int(round((self.力智[self.等级] + self.BUFF力量) * self.BUFF力量per * 倍率, 3))) # 力量
|
|
temp.append(
|
|
int(round((self.力智[self.等级] + self.BUFF智力) * self.BUFF智力per * 倍率, 3))) # 智力
|
|
temp.append(
|
|
int(round((self.三攻[self.等级] + self.BUFF物攻) * self.BUFF物攻per * 倍率, 3))) # 物攻
|
|
temp.append(
|
|
int(round((self.三攻[self.等级] + self.BUFF魔攻) * self.BUFF魔攻per * 倍率, 3))) # 魔攻
|
|
temp.append(
|
|
int(round((self.三攻[self.等级] + self.BUFF独立) * self.BUFF独立per * 倍率, 3))) # 独立
|
|
|
|
return temp
|
|
|
|
def 技能面板(self):
|
|
temp = []
|
|
temp.append(self.名称)
|
|
temp.append(
|
|
int(round((self.力智[self.等级] + self.BUFF力量) * self.BUFF力量per, 0)))
|
|
temp.append(
|
|
int(round((self.力智[self.等级] + self.BUFF智力) * self.BUFF智力per, 0)))
|
|
temp.append(
|
|
int(round((self.三攻[self.等级] + self.BUFF物攻) * self.BUFF物攻per, 0)))
|
|
temp.append(
|
|
int(round((self.三攻[self.等级] + self.BUFF魔攻) * self.BUFF魔攻per, 0)))
|
|
temp.append(
|
|
int(round((self.三攻[self.等级] + self.BUFF独立) * self.BUFF独立per, 0)))
|
|
return temp
|
|
|
|
|
|
class 知源·小魔女技能3(主动技能):
|
|
名称 = '死命召唤'
|
|
所在等级 = 35
|
|
等级上限 = 60
|
|
基础等级 = 24
|
|
增幅倍率 = 0.25
|
|
|
|
def 结算统计(self, context):
|
|
buff = context.技能表['BUFF']
|
|
偏爱 = context.技能表['小魔女的偏爱']
|
|
if buff.是否启用:
|
|
values = buff.结算统计(context)
|
|
|
|
if context.偏爱独立计算 and 偏爱.是否启用:
|
|
temps = 偏爱.结算统计(context)
|
|
for i in range(8):
|
|
values[i] += temps[i]
|
|
|
|
return [int(round(i * self.增幅倍率)) for i in values]
|
|
return [0]*8
|
|
|
|
|
|
class 知源·小魔女技能4(被动技能):
|
|
名称 = '少女的爱'
|
|
所在等级 = 48
|
|
等级上限 = 40
|
|
基础等级 = 20
|
|
额外力智 = 0
|
|
力智 = [0, 14, 37, 59, 82, 104, 127, 149, 172, 194, 217, 239, 262, 284, 307, 329, 352, 374, 397, 419, 442,
|
|
464, 487, 509, 532, 554, 577, 599, 622, 644, 667, 689, 712, 734, 757, 779, 802, 824, 847, 869, 892]
|
|
三攻 = 22
|
|
|
|
def 力智加成(self):
|
|
return self.力智[self.等级] + self.额外力智
|
|
|
|
def 三攻加成(self):
|
|
if self.等级 > 0:
|
|
return self.三攻 + self.等级
|
|
else:
|
|
return 0
|
|
|
|
def 结算统计(self, context):
|
|
return [self.力智加成(), 0, 0, self.力智加成(), self.力智加成(), 0, 0, 0]
|
|
# 智力 体力 精神 力量 智力 物攻 魔攻 独立
|
|
|
|
|
|
class 知源·小魔女技能5(觉醒技能):
|
|
名称 = '开幕!人偶剧场'
|
|
pass
|
|
|
|
|
|
class 知源·小魔女技能6(被动技能):
|
|
名称 = '冥月绽放'
|
|
所在等级 = 75
|
|
等级上限 = 40
|
|
基础等级 = 11
|
|
站街生效 = 1
|
|
智力 = [0, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330,
|
|
340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540]
|
|
|
|
def 智力加成(self):
|
|
return self.智力[self.等级]
|
|
|
|
def 结算统计(self, context):
|
|
return [self.智力加成(), 0, 0, 0, 0, 0, 0, 0]
|
|
# 智力 体力 精神 力量 智力 物攻 魔攻 独立
|
|
|
|
|
|
class 知源·小魔女技能7(主动技能):
|
|
名称 = '人偶之森'
|
|
所在等级 = 85
|
|
等级上限 = 40
|
|
基础等级 = 5
|
|
|
|
def 结算统计(self, context):
|
|
return [0]*8
|
|
|
|
|
|
class 知源·小魔女技能8(被动技能):
|
|
名称 = '不祥的微笑'
|
|
所在等级 = 95
|
|
等级上限 = 40
|
|
基础等级 = 4
|
|
站街生效 = 1
|
|
智力 = [0, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340,
|
|
350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550]
|
|
|
|
def 智力加成(self):
|
|
return self.智力[self.等级]
|
|
|
|
def 结算统计(self, context):
|
|
return [self.智力加成(), 0, 0, 0, 0, 0, 0, 0]
|
|
# 智力 体力 精神 力量 智力 物攻 魔攻 独立
|
|
|
|
|
|
class 知源·小魔女技能9(三觉技能):
|
|
名称 = '终幕!人偶剧场'
|
|
关联技能 = ['人偶之森']
|
|
pass
|
|
|
|
|
|
技能表 = {}
|
|
技能栏 = []
|
|
i = 0
|
|
while i >= 0:
|
|
try:
|
|
skill: 技能 = eval("知源·小魔女技能"+str(i)+"()")
|
|
skill.技能序号 = i
|
|
名称 = skill.名称
|
|
if skill.所在等级 == 30:
|
|
名称 = 'BUFF'
|
|
elif skill.所在等级 == 50:
|
|
名称 = '一次觉醒'
|
|
elif skill.所在等级 == 85:
|
|
名称 = '二次觉醒'
|
|
elif skill.所在等级 == 100:
|
|
名称 = '三次觉醒'
|
|
技能表[名称] = skill
|
|
技能栏.append(skill)
|
|
i += 1
|
|
except:
|
|
i = -1
|
|
|
|
|
|
class 知源·小魔女角色属性(辅助角色属性):
|
|
实际名称 = '知源·小魔女'
|
|
角色 = '魔法师(女)'
|
|
职业 = '小魔女'
|
|
|
|
武器选项 = ['扫把']
|
|
|
|
防具类型 = '板甲'
|
|
防具精通属性 = ['智力']
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.武器选项 = ['扫把']
|
|
self.防具精通属性 = ['智力']
|
|
self.类型选择 = ['智力']
|
|
self.类型 = '智力'
|
|
self.技能表 = deepcopy(技能表)
|
|
self.技能栏 = list(self.技能表.values())
|
|
self.buff_type = 1
|
|
self.一觉序号 = self.技能表['一次觉醒'].技能序号
|
|
self.二觉序号 = self.技能表['二次觉醒'].技能序号
|
|
self.三觉序号 = self.技能表['三次觉醒'].技能序号
|
|
基础属性输入(self)
|
|
|
|
def 系数数值站街(self):
|
|
return self.智力
|
|
|
|
def 系数数值进图(self):
|
|
return self.进图智力
|
|
|
|
def 专属词条计算(self):
|
|
|
|
self.技能表['人偶操纵者'].等级加成(self.转职被动Lv)
|
|
self.技能表['人偶操纵者'].额外智力 += self.转职被动智力
|
|
self.技能表['人偶操纵者'].进图加成 += self.被动进图加成
|
|
|
|
self.技能表['BUFF'].等级加成(self.BUFFLv)
|
|
self.技能表['BUFF'].BUFF力量per = self.BUFF力量per
|
|
self.技能表['BUFF'].BUFF智力per = self.BUFF智力per
|
|
self.技能表['BUFF'].BUFF物攻per = self.BUFF物攻per
|
|
self.技能表['BUFF'].BUFF魔攻per = self.BUFF魔攻per
|
|
self.技能表['BUFF'].BUFF独立per = self.BUFF独立per
|
|
self.技能表['BUFF'].BUFF力量 = self.BUFF力量
|
|
self.技能表['BUFF'].BUFF智力 = self.BUFF智力
|
|
self.技能表['BUFF'].BUFF物攻 = self.BUFF物攻
|
|
self.技能表['BUFF'].BUFF魔攻 = self.BUFF魔攻
|
|
self.技能表['BUFF'].BUFF独立 = self.BUFF独立
|
|
|
|
self.技能表['一次觉醒'].等级加成(self.一觉Lv)
|
|
self.技能表['一次觉醒'].一觉力智 = self.一觉力智
|
|
self.技能表['一次觉醒'].一觉力智per = self.一觉力智per
|
|
|
|
self.技能表['少女的爱'].等级加成(self.一觉被动Lv)
|
|
self.技能表['少女的爱'].额外力智 = self.一觉被动力智
|
|
|
|
def get_data(self):
|
|
buff_rate = 1.25 if self.技能表['死命召唤'].是否启用 else 1
|
|
buff_rate *= 1.15 if self.技能表['小魔女的偏爱'].是否启用 else 1
|
|
self.buff_rate = buff_rate
|
|
return super().get_data()
|
|
|
|
|
|
class 知源·小魔女(角色窗口):
|
|
def 窗口属性输入(self):
|
|
self.初始属性 = 知源·小魔女角色属性()
|
|
self.登记属性 = deepcopy(self.初始属性)
|
|
|
|
self.角色属性A = deepcopy(self.初始属性)
|
|
self.角色属性B = deepcopy(self.初始属性)
|
|
self.偏爱独立计算 = False
|
|
|
|
def 界面(self):
|
|
super().界面()
|
|
self.偏爱显示 = QCheckBox("偏爱独立显示", self.main_frame2)
|
|
self.偏爱显示.resize(130, 20)
|
|
self.偏爱显示.move(32, 360)
|
|
self.偏爱显示.setStyleSheet(复选框样式)
|
|
|
|
def exports_property(self, property):
|
|
super().exports_property(property)
|
|
property.偏爱独立计算 = self.偏爱显示.isChecked()
|