Files
dcalc/Characters/知源·小魔女.py
T
2024-11-04 14:45:20 +08:00

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()