Files
2024-11-04 14:45:20 +08:00

206 lines
7.4 KiB
Python

from PublicReference.utils.common import to_percent
from PublicReference.utils.config import trans
label = '{}{} +{}<br>'
力智增加量 = trans('{力量、智力}{增加量}')
力量增加量 = trans('{力量}{增加量}')
智力增加量 = trans('{智力}{增加量}')
三攻增加量 = trans('{物理、魔法、独立攻击力}{增加量}')
物攻增加量 = trans('{物理攻击力}{增加量}')
魔攻增加量 = trans('{魔法攻击力}{增加量}')
独立增加量 = trans('{独立攻击力}{增加量}')
def BUFF增加(
self,
BUFFLv=0,
BUFF力量=0,
BUFF智力=0,
BUFF力量per=1,
BUFF智力per=1,
BUFF物攻=0,
BUFF魔攻=0,
BUFF独立=0,
BUFF物攻per=1,
BUFF魔攻per=1,
BUFF独立per=1,
BUFF力智=0,
BUFF三攻=0,
BUFF力智per=1,
BUFF三攻per=1,
):
if BUFF力智 > 0:
BUFF力量 += BUFF力智
BUFF智力 += BUFF力智
if BUFF三攻 > 0:
BUFF物攻 += BUFF三攻
BUFF魔攻 += BUFF三攻
BUFF独立 += BUFF三攻
if BUFF力智per > 0:
BUFF力量per *= BUFF力智per
BUFF智力per *= BUFF力智per
if BUFF三攻per > 0:
BUFF物攻per *= BUFF三攻per
BUFF魔攻per *= BUFF三攻per
BUFF独立per *= BUFF三攻per
buff_name = trans('Lv30 Buff技能')
if self is not None:
if self.装备描述 == 0:
self.BUFFLv += BUFFLv
self.BUFF力量 += BUFF力量
self.BUFF智力 += BUFF智力
self.BUFF物攻 += BUFF物攻
self.BUFF魔攻 += BUFF魔攻
self.BUFF独立 += BUFF独立
self.BUFF力量per *= BUFF力量per
self.BUFF智力per *= BUFF智力per
self.BUFF物攻per *= BUFF物攻per
self.BUFF魔攻per *= BUFF魔攻per
self.BUFF独立per *= BUFF独立per
buff_name = '[{}]'.format(trans(self.技能表['BUFF'].名称))
tem = ''
if BUFFLv > 0:
tem += label.format(buff_name, trans("Lv"), int(BUFFLv))
if BUFF力量 > 0 and BUFF智力 > 0:
tem += label.format(buff_name, 力智增加量, int(BUFF力量))
elif BUFF力量 > 0:
tem += label.format(buff_name, 力量增加量, int(BUFF力量))
elif BUFF智力 > 0:
tem += label.format(buff_name, 智力增加量, int(BUFF智力))
if BUFF力量per > 1 and BUFF智力per > 1:
tem += label.format(buff_name, 力智增加量, to_percent(BUFF力量per - 1))
elif BUFF力量per > 1:
tem += label.format(buff_name, 力量增加量, to_percent(BUFF力量per - 1))
elif BUFF智力per > 1:
tem += label.format(buff_name, 智力增加量, to_percent(BUFF智力per - 1))
if BUFF物攻 > 0 and BUFF魔攻 > 0 and BUFF独立 > 0:
tem += label.format(buff_name, 三攻增加量, int(BUFF物攻))
elif BUFF物攻 > 0:
tem += label.format(buff_name, 物攻增加量, int(BUFF物攻))
elif BUFF魔攻 > 0:
tem += label.format(buff_name, 魔攻增加量, int(BUFF魔攻))
elif BUFF独立 > 0:
tem += label.format(buff_name, 独立增加量, int(BUFF独立))
if BUFF物攻per > 1 and BUFF魔攻per > 1 and BUFF独立per > 1:
tem += label.format(buff_name, 三攻增加量, to_percent(BUFF物攻per - 1))
elif BUFF物攻per > 1:
tem += label.format(buff_name, 物攻增加量, to_percent(BUFF物攻per - 1))
elif BUFF魔攻per > 1:
tem += label.format(buff_name, 魔攻增加量, to_percent(BUFF魔攻per - 1))
elif BUFF独立per > 1:
tem += label.format(buff_name, 独立增加量, to_percent(BUFF独立per - 1))
return tem
def 觉醒增加(self, 一觉Lv=0, 一觉力智=0, 一觉力智per=1):
awake_name = 'Lv50主动技能'
if self is not None:
if self.装备描述 == 0:
self.一觉Lv += 一觉Lv
self.一觉力智 += 一觉力智
self.一觉力智per *= 一觉力智per
awake_name = '[{}]'.format(self.技能表['一次觉醒'].名称)
tem = ''
if 一觉Lv > 0:
tem += label.format(awake_name, trans('Lv'), int(一觉Lv))
if 一觉力智 > 0:
tem += label.format(awake_name, 力智增加量, int(一觉力智))
if 一觉力智per > 1:
tem += label.format(awake_name, 力智增加量, to_percent(一觉力智per - 1))
return tem
def 力智固定加成(self, x=0):
if self is not None:
if self.装备描述 == 0:
self.力量 += x
self.智力 += x
if self.类型 not in ['力量', '智力']:
return ''
return '{} +{}<br>'.format(trans("力量、智力"), x)
def 体精固定加成(self, x=0):
if self is not None:
if self.装备描述 == 0:
self.体力 += x
self.精神 += x
if self.类型 not in ['体力', '精神']:
return ''
return '{} +{}<br>'.format(trans("体力、精神"), x)
def 被动增加(self,
转职被动Lv=0,
转职被动智力=0,
守护恩赐体精=0,
信念光环体精=0,
一觉被动Lv=0,
一觉被动力智=0,
被动进图加成=0):
角色 = None
if self is not None:
if self.装备描述 == 0:
self.转职被动Lv += 转职被动Lv
self.守护恩赐体精 += 守护恩赐体精
self.转职被动智力 += 转职被动智力
self.一觉被动Lv += 一觉被动Lv
self.信念光环体精 += 信念光环体精
self.一觉被动力智 += 一觉被动力智
self.被动进图加成 += 被动进图加成
角色 = self.角色
tem = ''
转职被动 = {
'圣职者(男)': '[{守护恩赐}]',
'圣职者(女)': '[{启示圣歌}]',
'魔法师(女)': '[{人偶操纵者}]',
'None': '[{守护恩赐}]、[{启示圣歌}]、[{人偶操纵者}]'
}[str(角色)]
if 转职被动Lv > 0:
tem += label.format(trans(转职被动), trans("技能Lv"), int(转职被动Lv))
if 被动进图加成 > 0:
转职被动智力 += 被动进图加成
信念光环体精 += 被动进图加成
if 角色 == '圣职者(男)' or 角色 is None:
if 守护恩赐体精 > 0:
tem += label.format(trans("[{守护恩赐}]"), trans('体力、精神'), int(守护恩赐体精))
if 一觉被动Lv > 0:
tem += label.format(trans("[{信念光环}]"), trans('技能Lv'), int(一觉被动Lv))
if 一觉被动力智 > 0:
tem += label.format(trans("[{信念光环}]"), trans('{体力、精神}{增加量}'),
int(一觉被动力智))
if 角色 in ['圣职者(女)', '魔法师(女)'] or 角色 is None:
觉醒被动 = {
'圣职者(女)': '[{虔诚信念}]',
'魔法师(女)': '[{少女的爱}]',
'None': '[{虔诚信念}]、[{少女的爱}]'
}[str(角色)]
if 转职被动智力 > 0:
tem += label.format(trans(转职被动), trans("智力"), int(转职被动智力))
if 一觉被动Lv > 0:
tem += label.format(trans(觉醒被动), trans("技能Lv"), int(一觉被动Lv))
if 一觉被动力智 > 0:
tem += label.format(trans(觉醒被动), 力智增加量, int(一觉被动力智))
return tem
def tooltip_trim(tempstr):
if tempstr.endswith('<br>'):
tempstr = tempstr[:-4]
return tempstr