mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2025-04-12 23:29:37 +08:00
✨ 伤害计算增加部分角色以及激化反应
This commit is contained in:
parent
cc02a82d84
commit
6838a0b903
@ -47,14 +47,22 @@
|
||||
"10000058": ["八重神子", "神子", "八重", "狐狸", "屑狐狸"],
|
||||
"10000062": ["埃洛伊"],
|
||||
"10000063": ["申鹤", "小姨", "小姨妈"],
|
||||
"10000064": ["云堇", "云先生"],
|
||||
"10000064": ["云堇", "云先生", "云瑾"],
|
||||
"10000066": ["神里绫人", "0人", "大舅子", "小舅子", "绫人", "神里哥", "凌人", "神里凌人"],
|
||||
"10000060": ["夜兰", "夜阑", "叶兰"],
|
||||
"10000065": ["久岐忍", "忍者", "阿卡丽", "97忍", "97人"],
|
||||
"10000059": ["鹿野院平藏", "近战法师", "平藏", "小鹿"],
|
||||
"10000067": ["柯莱", "科莱"],
|
||||
"10000068": ["多莉", "克隆羊", "商人"],
|
||||
"10000069": ["提纳里", "小驴", "小提"]
|
||||
"10000069": ["提纳里", "小驴", "小提"],
|
||||
"10000098": ["妮露", "舞女"],
|
||||
"10000099": ["赛诺", "风纪官"],
|
||||
"10000100": ["坎蒂丝", "潘森"],
|
||||
"10000101": ["纳西妲", "草神", "艹神", "小草王", "小吉祥草王", "草萝莉", "艹萝莉"],
|
||||
"10000102": ["散兵", "伞兵", "国崩", "卢本伟", "大炮", "sb"],
|
||||
"10000103": ["迪希雅"],
|
||||
"10000104": ["艾尔海森", "苏"],
|
||||
"10000105": ["白术"]
|
||||
},
|
||||
"武器": {
|
||||
"磐岩结绿": [
|
||||
|
@ -23418,77 +23418,386 @@
|
||||
"element": "雷",
|
||||
"weapon": "双手剑",
|
||||
"date": "2022年09月09日",
|
||||
"tag": "治疗、能量回复、炼金返还",
|
||||
"tag": "治疗、能量回复、炼金返还、自身附魔",
|
||||
"birthday": "12月21日",
|
||||
"mission": "待补充",
|
||||
"introduce": "神出鬼没的旅行百货商人,最喜欢亮闪闪的摩拉。",
|
||||
"destiny_name": "神灯座",
|
||||
"destiny": {
|
||||
"追加投资": "",
|
||||
"特许经营": "",
|
||||
"百巧千奇": "",
|
||||
"酌盈剂虚": "",
|
||||
"物超所值": "",
|
||||
"漫掷万镒": ""
|
||||
"追加投资": "断除烦恼炮命中后产生的售后服务弹增加1枚。",
|
||||
"特许经营": "在战斗状态中,当灯中幽精为相连的角色进行治疗时,将从该角色处发射一枚镇灵炮,造成相当于多莉攻击力50%的伤害。",
|
||||
"百巧千奇": "卡萨扎莱宫的无微不至的技能等级提高3级。",
|
||||
"酌盈剂虚": "与灯中幽精相连的角色,依据当前的生命值与元素能量,获得以下提升:",
|
||||
"物超所值": "镇灵之灯·烦恼解决炮的技能等级提高3级。",
|
||||
"漫掷万镒": "多莉施放镇灵之灯·烦恼解决炮后的3秒内,将获得以下效果:"
|
||||
},
|
||||
"attribute": {
|
||||
"hp": {
|
||||
"1": "",
|
||||
"20": "",
|
||||
"40": "",
|
||||
"50": "",
|
||||
"60": "",
|
||||
"70": "",
|
||||
"80": "",
|
||||
"90": ""
|
||||
"1": "1039",
|
||||
"20": "2670",
|
||||
"40": "5163",
|
||||
"50": "6573",
|
||||
"60": "8168",
|
||||
"70": "9577",
|
||||
"80": "10987",
|
||||
"90": "12397"
|
||||
},
|
||||
"atk": {
|
||||
"1": "",
|
||||
"20": "",
|
||||
"40": "",
|
||||
"50": "",
|
||||
"60": "",
|
||||
"70": "",
|
||||
"80": "",
|
||||
"90": ""
|
||||
"1": "19",
|
||||
"20": "48",
|
||||
"40": "93",
|
||||
"50": "118",
|
||||
"60": "147",
|
||||
"70": "172",
|
||||
"80": "198",
|
||||
"90": "223"
|
||||
},
|
||||
"def": {
|
||||
"1": "",
|
||||
"20": "",
|
||||
"40": "",
|
||||
"50": "",
|
||||
"60": "",
|
||||
"70": "",
|
||||
"80": "",
|
||||
"90": ""
|
||||
"1": "61",
|
||||
"20": "156",
|
||||
"40": "301",
|
||||
"50": "384",
|
||||
"60": "477",
|
||||
"70": "559",
|
||||
"80": "641",
|
||||
"90": "723"
|
||||
},
|
||||
"attribute": "",
|
||||
"attribute": "生命值加成",
|
||||
"attributes": {
|
||||
"1": "0",
|
||||
"20": "0",
|
||||
"40": "0",
|
||||
"50": "",
|
||||
"60": "",
|
||||
"70": "",
|
||||
"80": "",
|
||||
"90": ""
|
||||
"1": "0%",
|
||||
"20": "0%",
|
||||
"40": "0%",
|
||||
"50": "6%",
|
||||
"60": "12%",
|
||||
"70": "12%",
|
||||
"80": "18%",
|
||||
"90": "24%"
|
||||
}
|
||||
},
|
||||
"skill": {
|
||||
"普通攻击·妙显剑舞·改": {
|
||||
"描述": "普通攻击进行至多三段的连续挥砍。重击持续消耗体力,旋转大剑攻击周围的敌人。停止旋转时,会进行一次格外有力的挥砍。下落攻击从空中下坠冲击地面,攻击下落路径上的敌人,并在落地时造成范围伤害。",
|
||||
"数值": { }
|
||||
"数值": {
|
||||
"一段伤害": [
|
||||
"90.2%",
|
||||
"97.6%",
|
||||
"104.9%",
|
||||
"115.4%",
|
||||
"122.7%",
|
||||
"131.1%",
|
||||
"142.7%",
|
||||
"154.2%",
|
||||
"165.7%",
|
||||
"178.3%",
|
||||
"190.9%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"二段伤害": [
|
||||
"41.1%+43.1%",
|
||||
"44.4%+46.6%",
|
||||
"47.8%+50.1%",
|
||||
"52.5%+55.2%",
|
||||
"55.9%+58.7%",
|
||||
"59.7%+62.7%",
|
||||
"65%+68.2%",
|
||||
"70.2%+73.7%",
|
||||
"75.5%+79.2%",
|
||||
"81.2%+85.2%",
|
||||
"85.9%+91.3%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"三段伤害": [
|
||||
"128.4%",
|
||||
"138.8%",
|
||||
"149.3%",
|
||||
"164.2%",
|
||||
"174.7%",
|
||||
"186.6%",
|
||||
"203%",
|
||||
"219.5%",
|
||||
"235.9%",
|
||||
"253.8%",
|
||||
"271.7%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"重击循环伤害": [
|
||||
"62.5%",
|
||||
"67.6%",
|
||||
"72.7%",
|
||||
"80%",
|
||||
"85.1%",
|
||||
"90.9%",
|
||||
"98.9%",
|
||||
"106.9%",
|
||||
"114.9%",
|
||||
"123.6%",
|
||||
"133.6%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"重击终结伤害": [
|
||||
"113%",
|
||||
"122%",
|
||||
"132%",
|
||||
"145%",
|
||||
"154%",
|
||||
"164%",
|
||||
"179%",
|
||||
"193%",
|
||||
"208%",
|
||||
"224%",
|
||||
"242%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"重击体力消耗": [
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"每秒40.0点",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"最大持续时间": [
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"5.0秒",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"下坠期间伤害": [
|
||||
"74.6%",
|
||||
"80.7%",
|
||||
"86.7%",
|
||||
"95.4%",
|
||||
"101.5%",
|
||||
"108.4%",
|
||||
"118%",
|
||||
"127.5%",
|
||||
"137%",
|
||||
"147.4%",
|
||||
"157.8%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"低空/高空坠地冲击伤害": [
|
||||
"149%/186%",
|
||||
"161%/201%",
|
||||
"173%/217%",
|
||||
"191%/238%",
|
||||
"203%/253%",
|
||||
"217%/271%",
|
||||
"236%/295%",
|
||||
"255%/318%",
|
||||
"274%/342%",
|
||||
"295%/368%",
|
||||
"316%/394%",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
"镇灯之灵·烦恼解决炮": {
|
||||
"镇灵之灯·烦恼解决炮": {
|
||||
"描述": "示意镇灵之灯向敌人发射断除烦恼炮,造成雷元素伤害。断除烦恼炮命中后,将会产生2枚能自行追踪附近敌人的售后服务弹,造成雷元素伤害。据说,无论想要解决什么样的烦恼,只要出价足够合适,多莉都能办得到。",
|
||||
"数值": { }
|
||||
"数值": {
|
||||
"断除烦恼炮伤害": [
|
||||
"147.3%",
|
||||
"158.3%",
|
||||
"169.4%",
|
||||
"184.1%",
|
||||
"195.1%",
|
||||
"206.2%",
|
||||
"220.9%",
|
||||
"235.6%",
|
||||
"250.4%",
|
||||
"265.1%",
|
||||
"279.8%",
|
||||
"294.6%",
|
||||
"313%",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"售后服务弹伤害": [
|
||||
"31.6%",
|
||||
"33.9%",
|
||||
"36.3%",
|
||||
"39.5%",
|
||||
"41.8%",
|
||||
"44.2%",
|
||||
"47.3%",
|
||||
"50.5%",
|
||||
"53.7%",
|
||||
"56.8%",
|
||||
"60%",
|
||||
"63.1%",
|
||||
"67.1%",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"冷却时间": [
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"9秒",
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
"卡萨扎莱宫的无微不至": {
|
||||
"描述": "召唤灯中幽精,为顾客提供形形色色的帮助。灯中幽精会与附近的角色相连。与灯中幽精相连的角色将会:\n\n持续恢复生命值,回复量受益于多莉的生命值上限;\n持续获得元素能量;\n处于雷元素附着状态下。\n此外,角色与灯中幽精之间的连接触碰敌人时,将每0.4秒对敌人造成一次雷元素伤害。同时只能存在一个灯中幽精。\n\n「嗯?客人是挑中了这盏灯吗?哎呀…您的品味还真好呢!只不过,这个可是无价之宝。就比如说,不管别人出多少摩拉,客人您也不会把您旁边那个小吉祥物卖出去吧?」",
|
||||
"数值": { }
|
||||
"数值": {
|
||||
"连接伤害": [
|
||||
"16%",
|
||||
"17%",
|
||||
"18%",
|
||||
"20%",
|
||||
"21%",
|
||||
"22%",
|
||||
"24%",
|
||||
"25%",
|
||||
"27%",
|
||||
"29%",
|
||||
"30%",
|
||||
"32%",
|
||||
"34%",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"持续治疗量": [
|
||||
"6.7%生命值上限+642",
|
||||
"7.2%生命值上限+706",
|
||||
"7.7%生命值上限+776",
|
||||
"8.3%生命值上限+851",
|
||||
"8.8%生命值上限+931",
|
||||
"9.3%生命值上限+1017",
|
||||
"10%生命值上限+1107",
|
||||
"10.7%生命值上限+1204",
|
||||
"11.3%生命值上限+1305",
|
||||
"12%生命值上限+1412",
|
||||
"12.7%生命值上限+1525",
|
||||
"13.3%生命值上限+1643",
|
||||
"14.2%生命值上限+1766",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"元素能量回复": [
|
||||
"1.6",
|
||||
"1.7",
|
||||
"1.8",
|
||||
"1.9",
|
||||
"2",
|
||||
"2.1",
|
||||
"2.2",
|
||||
"2.3",
|
||||
"2.4",
|
||||
"2.5",
|
||||
"2.5",
|
||||
"2.5",
|
||||
"2.5",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"持续时间": [
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"12秒",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"冷却时间": [
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"20秒",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"元素能量": [
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"80",
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
"披沙沥金": "",
|
||||
"利上加利": "",
|
||||
"披沙沥金": "与灯中幽精相连的角色在触发感电、超导、超载、原激化、超激化、超绽放、雷元素扩散或雷元素结晶反应后,镇灵之灯·烦恼解决炮的冷却时间缩短1秒。该效果每3秒至多触发一次。",
|
||||
"利上加利": "镇灵之灯·烦恼解决炮的断除烦恼炮或售后服务弹命中敌人时,基于多莉的元素充能效率,每100%为多莉恢复5点元素能量。每次施放镇灵之灯·烦恼解决炮只能通过这种方式恢复一次元素能量,并至多恢复15点元素能量。",
|
||||
"意外订单": "合成角色与武器培养素材时,有25%的概率返还部分合成材料。"
|
||||
},
|
||||
"cv": {
|
||||
@ -23499,14 +23808,14 @@
|
||||
},
|
||||
"food": "料理未知",
|
||||
"story": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
"「多莉·桑歌玛哈巴依,艾尔卡萨扎莱宫之主,无所不有的超级大商人!」\n拿到多莉的名片,引入眼帘的便是这句气派的宣言。\n事实上,多莉确实是须弥诸多商人中最特别的一个。\n她已经坐拥无数财富,却依旧对赚取摩拉抱有极高的热情;\n她麾下有数支赫赫有名的商队,却依旧会亲自去须弥各地推销自己的宝贝。\n而她售卖的东西也让人眼花缭乱:特制旅行包、野外烘干机、全自动雪球发射器…只要出得起摩拉,似乎能够从他手上买到任何东西。",
|
||||
"「哎呀哎呀,客人是要去沙漠吗?我这里可是有好东西呢。」\n「雨林潮湿,里面还有毒蛇猛兽,不做好准备可不行。来来来,带上这个,现在可是八折促销中!」\n「等下客人,你该不会是要从这里过去吧?前面有好多好多魔物,不如在我这买把武器防身吧。」\n「想去阿赫塔蒙柱王遗迹?这你可问对人了。首先你得有一套完整的取水工具,碰巧我可以提供喔。」\n须弥的旅人中流传着一个故事。\n据说当你即将踏足危险的地方,就有机会见到一个等待已久的小小身影。\n无论是在险峻的山脉、荒芜的沙漠、幽暗的雨林,还是魔物丛生的无人区,都能看到她的笑脸。\n相传她的身上总是带着各种神奇的宝贝,能够帮助旅人度过眼下的难关。\n——当然,收费也绝不便宜。\n「在绝望中获得帮助」与「一口气失去大量摩拉」两种完全不同的心情交织在一起,往往让旅人既爱又恨。\n而多莉总是会贴心地无视他们脸上纠结的神色,将收到的摩拉装入鼓鼓的钱包,微笑着离开。\n「多谢惠顾喔,嘿嘿。」",
|
||||
"在外人看来,多莉的生意似乎一直在蒸蒸日上,然而只有多莉自己清楚,她其实多次遇到过旁人无法想象的瓶颈。\n曾经有一段时间,来自须弥各地的订单源源不断地送到多莉的手上,但多莉却无法按期交付这么多的货物。\n因为周边几条商道的货运量十分有限,难以承载如此规模的大宗商品运输。\n商队的成员劝多莉回绝部分订单,这样依旧能凭借现有的商道维持稳定收益。假以时日,富甲一方应该不成问题。\n但多莉却做了一个非常冒险的举措:她一边接下订单,一边与妙论派展开合作,在公认的危险地区开辟新的商道。\n她将这些新商道开放给周边的商队,并借此成立商会、整合资源,终于突破了原先的瓶颈。\n时至今日,整个须弥境内都能见到多莉新修建的商道,「桑歌玛哈巴依老爷」的名声也越传越广。\n与之一同流传的,还有多莉当初对商队成员说的话:\n「我不会放弃任何订单,那是蠢蘑菇才会做的事。」\n「我会赚到所有能赚的摩拉,要问为什么的话,因为摩拉就在那里。」",
|
||||
"多莉曾经患过严重的失眠症,夜晚总会莫名其妙地睡不着,第二天顶着浓浓的黑眼圈去商会。\n就算请最好的医生也诊断不出病因,安神香点了一根又一根,不仅没有带来睡意,反而把多莉呛得不停咳嗽。\n就在这个时候,有一位路过的医生对多莉说:\n「听说有人会在床头放一个沙漏,听着细沙落下的声音入眠。」\n多莉尝试几天后以失败告终,但她突然灵机一动,找人定制了一款超大沙漏。\n沙漏里面装的不是沙子,而是亮闪闪的摩拉。\n夜晚,听着摩拉敲击的声音,多莉终于睡了一个好觉。\n此后,多莉在「应对失眠」这件事上也算小有心得:\n「睡饱饱的秘诀,在于让自己心安。」",
|
||||
"或许是爱屋及乌,除了摩拉之外,多莉对于「能够带来摩拉的家伙」也很感兴趣。\n比如她手下的商队主要靠驮兽运货,多莉就给驮兽修建了一座「乐园」,让它们休息的时候可以在里面随意奔跑。\n她会为驮兽挑选非常精细的饲料,保证它们营养均衡,长得健壮漂亮。\n当然,作为精明的商人,她也不会放过任何商机。\n不同品种的驮兽在一起玩闹,让乐园看上去颇为有趣。多莉借机招揽游客进来观赏,通过销售门票、餐饮、纪念品的方式迅速回本。\n她对驮兽的喜爱是真的,借此小赚一笔也是真的。\n在这一点上,最有发言权的或许是多莉灯中的镇灵。它最初是被多莉骗入灯中,但直到现在也没有离开。\n每次战斗时多莉都把它叫出来,但打完之后多莉却又会满足它的心愿。\n有时镇灵会想,传说中的故事或许是反的——\n灯中装着的其实是一个超强的打手,拿着灯的才是能实现愿望的神灵。",
|
||||
"没有人知道多莉与艾莉丝相遇的具体过程,但她们确实是一对让人艳羡的合作伙伴。\n艾莉丝周游世界各地,不会一直停留在须弥,但每过一段时间,她就会托人将自己的新发明寄给多莉。\n而多莉也会在售卖之后,想办法将摩拉送到艾莉丝手上。\n有时艾莉丝会附一封信,告诉多莉自己最近身处险地,摩拉可以先存放在多莉那里。\n多莉却执意派人携带摩拉赶往距离艾莉丝最近的安全地区,以保证艾莉丝能够第一时间拿到摩拉。\n人工费、运输费、保险费…各项费用相加并非一笔小钱,多莉却毫不吝啬,主动掏腰包提前支付。\n「大善人多莉从不拖欠回款。」\n「而且,艾莉丝女士的开销也不小,必须保证她时时刻刻有钱可用。」\n多莉总是念叨着这些话,不厌其烦地反复确认摩拉是否送到。\n即使现在艾莉丝已经不是多莉唯一的供货商,多莉仍将这视为最重要的事。\n也许在她心里,一直记得相遇那天许下的承诺。\n「你想要数不清的摩拉?可以呀。我可以提供给你各种神奇道具,卖出去多少就看你的本事啦。」\n「请放心。我会卖出高高的价格,换来多多的摩拉,以最快的速度送到你的手上…我会成为你最好的合作伙伴。」",
|
||||
"为了更好地聆听摩拉发出的美妙声响,多莉亲自定制了一款「摩拉音乐盒」。\n音乐盒的正上方有一个开口,开口的大小刚好可以容许一枚摩拉通过。\n当摩拉被投入音乐盒后,便会沿着音乐盒内复杂的机关轨道滚动,并时不时发出轻盈美妙的撞击声。\n撞击声此起彼伏,汇聚成一首悠扬的乐章,多莉也会在空旷的艾尔卡萨扎莱宫中旋转起舞。\n「摩拉,摩拉,亮闪闪的摩拉。」\n「摩拉,摩拉,数不清的摩拉。」\n「美丽的摩拉,是我的摩拉。」\n「别人的摩拉,快快来我家。」\n明明是如此熟悉的歌曲,却总是百听不厌。\n音乐演奏到最后,多莉也会向并不存在的观众深深一躬。\n恰在此时摩拉落入音乐盒的最底部,与那里堆积如山的摩拉相碰——\n伴随着一声清脆的「啪嗒」声,一切完美落幕。\n意犹未尽的多莉总是会选择向音乐盒中再投一枚摩拉。",
|
||||
"两位年龄相仿的小女孩牵着手,哼着轻微变调的歌谣,并肩走过天真烂漫的时光。\n她们在春天折野花戴在彼此的耳旁,光着脚蹚过夏天的溪水。\n在秋天一同从金色的沙丘滑下,依偎在冬天的阳光里看同一本书。\n时间仿佛很长,怎么也过不完。\n直到年长一些的姐姐忽然开始不停咳血,家里围了许许多多陌生的大人。\n他们一本正经地解释着旁人难以理解的病情,随后对着家徒四壁的房屋摇头叹气。\n不知道发生了什么的妹妹每天都去探望,姐姐总是露出明亮的笑容:\n「没事。休息一下就会好的啦。」\n看着她的笑容,天真的妹妹也流露出期待的眼神,甚至开始幻想下次一起出游的日子。\n直到某一天,正在讲故事的姐姐忽然伸手攥紧了胸口的衣服。\n她瘦削的身体栽倒在床上,妹妹伸手去抱她,才发现她的身体很轻很轻。\n…就像一根羽毛,慢慢飘向所有人都触摸不到的远方。\n后来,妹妹在她的枕头下找到了一张揉皱的纸条。\n那是医生开的药方,上面罗列着已经几乎绝迹的药材,只有少数私人收藏家那里还有存货。\n想要购买的话至少需要几千万摩拉,一个令穷困家庭不敢想象的价格。\n总是笑着摇头拒绝这个提议的姐姐,或许只敢在深夜的时候看上几眼,幻想着那遥不可及的「活下去」的希望。\n妹妹将纸条收进衣服的口袋,默默地下了决心。\n「要赚多多的摩拉。」\n「这样就不会再看到亲近的人露出难过的笑脸,这样就不会再因为没有摩拉而失去什么…」\n也许就是在那时,神明的视线落在了她的身上。\n但对于「野心」疯涨的她来说,获得神之眼或许也只是一个开始。\n在今后的无数个日夜中,她不停地告诫自己保持清醒,同时在心里给自己打气:\n「只有执念是不够的。我会为了想要的东西不停努力,直至耗尽最后一分力气。」\n「桑歌玛哈巴依老爷,没有做不到的事。」"
|
||||
]
|
||||
}
|
||||
}
|
@ -257,7 +257,8 @@
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1,
|
||||
"元素充能效率": 1
|
||||
"元素充能效率": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"九条裟罗": {
|
||||
@ -265,14 +266,16 @@
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1,
|
||||
"元素充能效率": 1
|
||||
"元素充能效率": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"刻晴": {
|
||||
"常规": {
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1
|
||||
"攻击力": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"雷泽": {
|
||||
@ -286,7 +289,8 @@
|
||||
"常规": {
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1
|
||||
"攻击力": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"丽莎": {
|
||||
@ -294,7 +298,8 @@
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1,
|
||||
"元素充能效率": 1
|
||||
"元素充能效率": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"北斗": {
|
||||
@ -302,7 +307,8 @@
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1,
|
||||
"元素充能效率": 1
|
||||
"元素充能效率": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"雷主": {
|
||||
@ -310,7 +316,8 @@
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1,
|
||||
"元素充能效率": 1
|
||||
"元素充能效率": 1,
|
||||
"元素精通": 1
|
||||
}
|
||||
},
|
||||
"早柚": {
|
||||
@ -556,9 +563,7 @@
|
||||
},
|
||||
"多莉": {
|
||||
"常规": {
|
||||
"暴击率": 1,
|
||||
"暴击伤害": 1,
|
||||
"攻击力": 1,
|
||||
"生命值": 1,
|
||||
"元素精通": 1,
|
||||
"元素充能效率": 1
|
||||
}
|
||||
|
@ -1,92 +1,92 @@
|
||||
[
|
||||
9,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
16,
|
||||
17,
|
||||
19,
|
||||
20,
|
||||
22,
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
35,
|
||||
38,
|
||||
40,
|
||||
43,
|
||||
46,
|
||||
49,
|
||||
51,
|
||||
54,
|
||||
57,
|
||||
59,
|
||||
61,
|
||||
65,
|
||||
68,
|
||||
71,
|
||||
75,
|
||||
78,
|
||||
81,
|
||||
85,
|
||||
88,
|
||||
8.6,
|
||||
9.3,
|
||||
10.0,
|
||||
10.6,
|
||||
11.3,
|
||||
12.3,
|
||||
13.3,
|
||||
14.4,
|
||||
15.7,
|
||||
17.1,
|
||||
18.6,
|
||||
20.3,
|
||||
22.2,
|
||||
24.3,
|
||||
26.9,
|
||||
29.5,
|
||||
32.2,
|
||||
34.9,
|
||||
37.6,
|
||||
40.3,
|
||||
43.1,
|
||||
45.9,
|
||||
48.6,
|
||||
51.4,
|
||||
54.2,
|
||||
56.6,
|
||||
59.1,
|
||||
61.5,
|
||||
64.9,
|
||||
68.2,
|
||||
71.3,
|
||||
74.5,
|
||||
77.7,
|
||||
80.9,
|
||||
84.6,
|
||||
88.3,
|
||||
92,
|
||||
96,
|
||||
100,
|
||||
104,
|
||||
108,
|
||||
112,
|
||||
117,
|
||||
122,
|
||||
128,
|
||||
134,
|
||||
141,
|
||||
148,
|
||||
155,
|
||||
162,
|
||||
168,
|
||||
175,
|
||||
182,
|
||||
189,
|
||||
199,
|
||||
208,
|
||||
217,
|
||||
226,
|
||||
236,
|
||||
246,
|
||||
257,
|
||||
270,
|
||||
283,
|
||||
296,
|
||||
312,
|
||||
326,
|
||||
340,
|
||||
354,
|
||||
368,
|
||||
383,
|
||||
397,
|
||||
412,
|
||||
426,
|
||||
439,
|
||||
457,
|
||||
473,
|
||||
490,
|
||||
506,
|
||||
522,
|
||||
539,
|
||||
555,
|
||||
571,
|
||||
588,
|
||||
605,
|
||||
627,
|
||||
644,
|
||||
663,
|
||||
682,
|
||||
703,
|
||||
723
|
||||
95.9,
|
||||
99.8,
|
||||
103.7,
|
||||
107.7,
|
||||
112.1,
|
||||
116.8,
|
||||
121.1,
|
||||
128.0,
|
||||
134.3,
|
||||
140.8,
|
||||
147.5,
|
||||
154.5,
|
||||
161.8,
|
||||
168.4,
|
||||
175.3,
|
||||
182.2,
|
||||
189.3,
|
||||
199.3,
|
||||
208.2,
|
||||
217.2,
|
||||
226.5,
|
||||
236.3,
|
||||
246.4,
|
||||
256.8,
|
||||
269.6,
|
||||
282.8,
|
||||
296.3,
|
||||
312.2,
|
||||
325.7,
|
||||
339.8,
|
||||
353.9,
|
||||
368.3,
|
||||
382.8,
|
||||
397.4,
|
||||
412.3,
|
||||
425.6,
|
||||
438.9,
|
||||
457.1,
|
||||
473.4,
|
||||
489.7,
|
||||
505.6,
|
||||
522.4,
|
||||
538.7,
|
||||
555.0,
|
||||
571.5,
|
||||
588.2,
|
||||
605.1,
|
||||
626.9,
|
||||
644.5,
|
||||
622.7,
|
||||
681.7,
|
||||
702.6,
|
||||
723.4
|
||||
]
|
@ -1,7 +1,7 @@
|
||||
from copy import deepcopy
|
||||
from LittlePaimon.database.models import Character
|
||||
|
||||
from .damage_model import common_fix, draw_dmg_pic, udc, get_damage_multipiler, growth_reaction
|
||||
from .damage_model import common_fix, draw_dmg_pic, udc, get_damage_multipiler, growth_reaction, intensify_reaction
|
||||
|
||||
|
||||
async def get_role_dmg(info: Character):
|
||||
@ -26,11 +26,18 @@ async def get_role_dmg(info: Character):
|
||||
a[1] += f'+{ly[1]}'
|
||||
dmg_data['踢枪伤害'] = a
|
||||
elif info.name == '雷电将军':
|
||||
r = intensify_reaction(info.level, '超激化', info.prop.elemental_mastery, info.prop.reaction_coefficient['激化'])
|
||||
info.damage_describe.insert(0, '满愿力')
|
||||
vq['增伤'] += dm['e增伤']
|
||||
dci = 0.6 if len(info.constellation) >= 2 else 0
|
||||
dmg_data['协同攻击'] = udc(dm['协同攻击'] * info.prop.attack, (info.prop.crit_rate + ve['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['雷'] + ve['增伤'], info.level, dci=dci)
|
||||
dmg_data['梦想一刀'] = udc((dm['梦想一刀基础'] + dm['梦想一刀愿力']) * info.prop.attack, (info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['雷'] + vq['增伤'],
|
||||
dmg_data['梦想一刀'] = udc((dm['梦想一刀基础'] + dm['梦想一刀愿力']) * info.prop.attack,
|
||||
(info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage),
|
||||
info.prop.dmg_bonus['雷'] + vq['增伤'],
|
||||
info.level, dci=dci)
|
||||
dmg_data['梦想一刀超激化'] = udc((dm['梦想一刀基础'] + dm['梦想一刀愿力']) * info.prop.attack + r,
|
||||
(info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage),
|
||||
info.prop.dmg_bonus['雷'] + vq['增伤'],
|
||||
info.level, dci=dci)
|
||||
a1 = udc((dm['梦想一心重击基础'][0] + dm['梦想一心愿力']) * info.prop.attack, (info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['雷'] + vq['增伤'], info.level,
|
||||
dci=dci)
|
||||
@ -41,26 +48,27 @@ async def get_role_dmg(info: Character):
|
||||
dmg_data['梦想一心能量'] = (str(round(dm['梦想一心能量'] * (1 + extra_energy) * 5, 1)),)
|
||||
elif info.name == '申鹤':
|
||||
dmg_data['冰翎加成'] = (str(int(dm['冰翎'] * info.prop.attack)),)
|
||||
info.prop.dmg_bonus[-1] += 0.15 if info.level >= 40 else 0
|
||||
bl = int(dmg_data['冰翎加成'][0])
|
||||
info.prop.dmg_bonus['冰'] += 0.15 if info.level >= 40 else 0
|
||||
vq['增伤'] += 0.15 if info.level >= 70 else 0
|
||||
dmg_data['战技长按'] = udc(dm['e长按'] * info.prop.attack, (info.prop.crit_rate + ve['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus[-1] + ve['增伤'], info.level, rcd=dm['大招减抗'])
|
||||
dmg_data['大招持续伤害'] = udc(dm['大招持续'] * info.prop.attack, (info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus[-1] + vq['增伤'], info.level,
|
||||
dmg_data['战技长按'] = udc(dm['e长按'] * info.prop.attack + bl, (info.prop.crit_rate + ve['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['冰'] + ve['增伤'], info.level, rcd=dm['大招减抗'])
|
||||
dmg_data['大招持续伤害'] = udc(dm['大招持续'] * info.prop.attack + bl, (info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['冰'] + vq['增伤'], info.level,
|
||||
rcd=dm['大招减抗'])
|
||||
elif info.name == '珊瑚宫心海':
|
||||
adb = 0.15 * info.prop.healing_bonus if info.level >= 70 else 0
|
||||
if len(info.constellation) >= 6:
|
||||
info.prop.dmg_bonus[3] += 0.4
|
||||
info.prop.dmg_bonus['水'] += 0.4
|
||||
info.damage_describe.insert(0, '六命触发')
|
||||
ab = udc(dm['普攻第一段'] * info.prop.attack, (info.prop.crit_rate + va['普攻暴击率'], info.prop.crit_damage), info.prop.dmg_bonus[3] + va['普攻增伤'], info.level)
|
||||
aq = udc(dm['普攻伤害提升'] * info.prop.health, (info.prop.crit_rate + va['普攻暴击率'], info.prop.crit_damage), info.prop.dmg_bonus[3] + adb + va['普攻增伤'], info.level)
|
||||
ab = udc(dm['普攻第一段'] * info.prop.attack, (info.prop.crit_rate + va['普攻暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['水'] + va['普攻增伤'], info.level)
|
||||
aq = udc(dm['普攻伤害提升'] * info.prop.health, (info.prop.crit_rate + va['普攻暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['水'] + adb + va['普攻增伤'], info.level)
|
||||
if len(ab) == 1:
|
||||
dmg_data['开大普攻第一段'] = (str(int(ab[0]) + int(aq[0])), )
|
||||
else:
|
||||
dmg_data['开大普攻第一段'] = (str(int(ab[0]) + int(aq[0])), str(int(ab[1]) + int(aq[1])))
|
||||
dmg_data['开大战技伤害'] = udc(dm['水母伤害'] * info.prop.attack + dm['E伤害提升'] * info.prop.health, (info.prop.crit_rate + ve['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus[3] + ve['增伤'], info.level)
|
||||
dmg_data['大招释放伤害'] = udc(dm['大招伤害'] * info.prop.health, (info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus[3] + vq['增伤'], info.level)
|
||||
dmg_data['开大普攻治疗量'] = (str(int((float(dm['大招治疗量'][0].replace('%生命值上限', '')) / 100.0 * info.prop.health + float(dm['大招治疗量'][1]) * (1 + info.prop.healing_bonus)))),)
|
||||
dmg_data['战技治疗量'] = (str(int((float(dm['水母治疗量'][0].replace('%生命值上限', '')) / 100.0 * info.prop.health + float(dm['水母治疗量'][1]) * (1 + info.prop.healing_bonus)))),)
|
||||
dmg_data['开大战技伤害'] = udc(dm['水母伤害'] * info.prop.attack + dm['E伤害提升'] * info.prop.health, (info.prop.crit_rate + ve['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['水'] + ve['增伤'], info.level)
|
||||
dmg_data['大招释放伤害'] = udc(dm['大招伤害'] * info.prop.health, (info.prop.crit_rate + vq['暴击率'], info.prop.crit_damage), info.prop.dmg_bonus['水'] + vq['增伤'], info.level)
|
||||
dmg_data['开大普攻治疗量'] = (str(int((float(dm['大招治疗量'][0].replace('%生命值上限', '')) / 100.0 * info.prop.health + float(dm['大招治疗量'][1])) * (1 + info.prop.healing_bonus))),)
|
||||
dmg_data['战技治疗量'] = (str(int((float(dm['水母治疗量'][0].replace('%生命值上限', '')) / 100.0 * info.prop.health + float(dm['水母治疗量'][1])) * (1 + info.prop.healing_bonus))),)
|
||||
else:
|
||||
dmg_data = get_dmg_data(info, dm, va, ve, vq)
|
||||
if info.damage_describe:
|
||||
@ -75,7 +83,7 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
'暴击伤害': 0,
|
||||
'增伤': va['普攻增伤'],
|
||||
'额外倍率': va['普攻额外倍率'],
|
||||
'减抗': 0,
|
||||
'减抗': va['减抗'],
|
||||
'减防': 0
|
||||
},
|
||||
'AZ': {
|
||||
@ -83,7 +91,7 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
'暴击伤害': 0,
|
||||
'增伤': va['重击增伤'],
|
||||
'额外倍率': va['重击额外倍率'],
|
||||
'减抗': 0,
|
||||
'减抗': va['减抗'],
|
||||
'减防': 0
|
||||
},
|
||||
'AX': {
|
||||
@ -91,7 +99,7 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
'暴击伤害': 0,
|
||||
'增伤': va['下落攻击增伤'],
|
||||
'额外倍率': va['下落攻击额外倍率'],
|
||||
'减抗': 0,
|
||||
'减抗': va['减抗'],
|
||||
'减防': 0
|
||||
},
|
||||
'E': {
|
||||
@ -99,7 +107,7 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
'暴击伤害': 0,
|
||||
'增伤': ve['增伤'],
|
||||
'额外倍率': ve['额外倍率'],
|
||||
'减抗': 0,
|
||||
'减抗': ve['减抗'],
|
||||
'减防': 0
|
||||
},
|
||||
'Q': {
|
||||
@ -107,7 +115,7 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
'暴击伤害': 0,
|
||||
'增伤': vq['增伤'],
|
||||
'额外倍率': 0,
|
||||
'减抗': 0,
|
||||
'减抗': vq['减抗'],
|
||||
'减防': 0
|
||||
},
|
||||
}
|
||||
@ -141,6 +149,7 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
dmg_data[skill_name] = (str(num), )
|
||||
else:
|
||||
r = 1 # 反应系数
|
||||
j = 0 # 激化反应系数
|
||||
n = '1' # 段数
|
||||
e = '物理' # 伤害元素类型序号
|
||||
t = '攻击力' # 倍率区类型
|
||||
@ -150,6 +159,8 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
for p in para[1:]:
|
||||
if p.startswith('r'):
|
||||
r = growth_reaction(info.prop.elemental_mastery, float(p[3:]), info.prop.reaction_coefficient[f'{p[1:3]}'])
|
||||
if p.startswith('j'):
|
||||
j = intensify_reaction(info.level, p[1:], info.prop.elemental_mastery, info.prop.reaction_coefficient['激化'])
|
||||
if p.startswith('n'):
|
||||
n = p[1:]
|
||||
if p.startswith('e'):
|
||||
@ -157,13 +168,13 @@ def get_dmg_data(info: Character, dm: dict, va: dict, ve: dict, vq: dict) -> dic
|
||||
if p.startswith('t'):
|
||||
t = p[1:]
|
||||
if isinstance(num, tuple):
|
||||
n1 = udc(num[0] * dmt[t] + v[skill_type]['额外倍率'], (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
n2 = udc(num[1] * dmt[t] + v[skill_type]['额外倍率'], (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
n1 = udc(num[0] * dmt[t] + v[skill_type]['额外倍率'] + j, (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
n2 = udc(num[1] * dmt[t] + v[skill_type]['额外倍率'] + j, (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
dmg_data[skill_name] = (n1[0] + '+' + n2[0], n1[1] + '+' + n2[1])
|
||||
else:
|
||||
if n == '1':
|
||||
dmg_data[skill_name] = udc(num * dmt[t] + v[skill_type]['额外倍率'], (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
dmg_data[skill_name] = udc(num * dmt[t] + v[skill_type]['额外倍率'] + j, (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
else:
|
||||
dmg = udc(num * dmt[t] + v[skill_type]['额外倍率'], (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
dmg = udc(num * dmt[t] + v[skill_type]['额外倍率'] + j, (info.prop.crit_rate + v[skill_type]['暴击率'], info.prop.crit_damage + v[skill_type]['暴击伤害']), info.prop.dmg_bonus[e] + v[skill_type]['增伤'], info.level, r=r, rcd=v[skill_type]['减抗'], dcr=v[skill_type]['减防'])
|
||||
dmg_data[skill_name] = (dmg[0] + '*' + n, dmg[1] + '*' + n)
|
||||
return dmg_data
|
||||
|
@ -1,4 +1,4 @@
|
||||
from pathlib import Path
|
||||
import random
|
||||
from typing import Tuple, Dict, Optional, List, Union
|
||||
|
||||
from LittlePaimon.config.path import JSON_DATA
|
||||
@ -118,6 +118,20 @@ def upheaval_reaction(level: int, type: str, mastery: int = 0, extra_coefficient
|
||||
return base_coefficient * base_ratio * (1 + mastery_increase + extra_coefficient) * resistance
|
||||
|
||||
|
||||
def intensify_reaction(level: int, type: str, mastery: int = 0, extra_coefficient: float = 0):
|
||||
"""
|
||||
计算激化反应的伤害
|
||||
:param level: 等级
|
||||
:param type: 反应类型
|
||||
:param mastery: 元素精通
|
||||
:param extra_coefficient: 反应系数提高,如如雷4件套效果
|
||||
:return: 激化伤害
|
||||
"""
|
||||
r = 2.3 if type == '超激化' else 2.5
|
||||
base_coefficient = upheaval_value[level - 1]
|
||||
return r * base_coefficient * (1 + (mastery * 5) / (mastery + 1200)) * (1 + extra_coefficient)
|
||||
|
||||
|
||||
def weapon_common_fix(info: Character):
|
||||
"""
|
||||
对武器的通用面板属性修正
|
||||
@ -127,13 +141,15 @@ def weapon_common_fix(info: Character):
|
||||
# 针对q的额外属性
|
||||
extra_q = {
|
||||
'暴击率': 0,
|
||||
'增伤': 0
|
||||
'增伤': 0,
|
||||
'减抗': 0
|
||||
}
|
||||
# 针对e的额外属性
|
||||
extra_e = {
|
||||
'暴击率': 0,
|
||||
'增伤': 0,
|
||||
'额外倍率': 0
|
||||
'额外倍率': 0,
|
||||
'减抗': 0
|
||||
}
|
||||
# 针对a的额外属性
|
||||
extra_a = {
|
||||
@ -145,12 +161,13 @@ def weapon_common_fix(info: Character):
|
||||
'重击额外倍率': 0,
|
||||
'下落攻击暴击率': 0,
|
||||
'下落攻击增伤': 0,
|
||||
'下落攻击额外倍率': 0
|
||||
'下落攻击额外倍率': 0,
|
||||
'减抗': 0
|
||||
}
|
||||
# 单手剑
|
||||
if info.weapon.name == '波乱月白经津':
|
||||
for i in info.prop.dmg_bonus:
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.09 + 0.03 * info.weapon.affix_level)
|
||||
# for i in info.prop.dmg_bonus:
|
||||
# info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.09 + 0.03 * info.weapon.affix_level)
|
||||
extra_a['普攻增伤'] += 2 * (0.15 + 0.05 * info.weapon.affix_level)
|
||||
info.damage_describe.append('波乱满层')
|
||||
elif info.weapon.name == '辰砂之纺锤':
|
||||
@ -169,7 +186,7 @@ def weapon_common_fix(info: Character):
|
||||
elif info.weapon.name == '雾切之回光':
|
||||
# TODO 吃不满3层的角色
|
||||
for i in info.prop.dmg_bonus:
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.3 + 0.1 * info.weapon.affix_level)
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.21 + 0.07 * info.weapon.affix_level)
|
||||
info.damage_describe.append('雾切满层')
|
||||
elif info.weapon.name == '铁蜂刺':
|
||||
for i in info.prop.dmg_bonus:
|
||||
@ -283,6 +300,12 @@ def weapon_common_fix(info: Character):
|
||||
elif info.weapon.name == '弹弓':
|
||||
extra_a['普攻增伤'] += 0.3 + 0.06 * info.weapon.affix_level
|
||||
extra_a['重击增伤'] += 0.3 + 0.06 * info.weapon.affix_level
|
||||
elif info.weapon.name == '猎人之径':
|
||||
extra_a['重击额外倍率'] += info.prop.elemental_mastery * (1.2 + 0.4 * info.weapon.affix_level)
|
||||
info.damage_describe.append('猎人弓触发')
|
||||
elif info.weapon.name == '王下近侍':
|
||||
info.prop.elemental_mastery += 40 + 20 * info.weapon.affix_level
|
||||
info.damage_describe.append('王下近侍触发')
|
||||
|
||||
# 长柄武器
|
||||
elif info.weapon.name == '白缨枪':
|
||||
@ -300,8 +323,8 @@ def weapon_common_fix(info: Character):
|
||||
info.prop.extra_attack += info.prop.base_attack * 0.18 + 0.06 * info.weapon.affix_level
|
||||
info.damage_describe.append('决斗单怪')
|
||||
elif info.weapon.name == '息灾':
|
||||
for i in info.prop.dmg_bonus:
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.09 + 0.03 * info.weapon.affix_level)
|
||||
# for i in info.prop.dmg_bonus:
|
||||
# info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.09 + 0.03 * info.weapon.affix_level)
|
||||
info.prop.extra_attack += info.prop.base_attack * 6 * (0.024 + 0.006 * info.weapon.affix_level)
|
||||
info.damage_describe.append('息灾前台满层')
|
||||
elif info.weapon.name == '薙草之稻光':
|
||||
@ -320,7 +343,7 @@ def weapon_common_fix(info: Character):
|
||||
extra_e['增伤'] += 3 * (0.09 + 0.03 * info.weapon.affix_level)
|
||||
info.damage_describe.append('神乐满层')
|
||||
elif info.weapon.name == '不灭月华':
|
||||
info.prop.healing_bonus += 0.075 + 0.025 * info.weapon.affix_level
|
||||
# info.prop.healing_bonus += 0.075 + 0.025 * info.weapon.affix_level
|
||||
extra_a['普攻额外倍率'] += (0.005 + 0.005 * info.weapon.affix_level) * info.prop.health
|
||||
elif info.weapon.name == '白辰之环':
|
||||
for i in info.prop.dmg_bonus:
|
||||
@ -334,9 +357,17 @@ def weapon_common_fix(info: Character):
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + 4 * (0.06 + 0.02 * info.weapon.affix_level)
|
||||
info.damage_describe.append('四风满层')
|
||||
elif info.weapon.name == '流浪乐章':
|
||||
t = random.randint(1, 3)
|
||||
if t == 1:
|
||||
info.prop.extra_attack += (0.45 + 0.15 * info.weapon.affix_level) * info.prop.base_attack
|
||||
info.damage_describe.append('流浪触发加攻')
|
||||
elif t == 2:
|
||||
for i in info.prop.dmg_bonus:
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + (0.36 + 0.12 * info.weapon.affix_level)
|
||||
info.damage_describe.append('流浪触发增伤')
|
||||
else:
|
||||
info.prop.elemental_mastery += 180 + 60 * info.weapon.affix_level
|
||||
info.damage_describe.append('流浪触发加精通')
|
||||
elif info.weapon.name == '万国诸海图谱':
|
||||
for i in info.prop.dmg_bonus:
|
||||
info.prop.dmg_bonus[i] = info.prop.dmg_bonus[i] + 2 * (0.06 + 0.02 * info.weapon.affix_level)
|
||||
@ -354,6 +385,10 @@ def weapon_common_fix(info: Character):
|
||||
extra_q['增伤'] += 0.15 + 0.05 * info.weapon.affix_level
|
||||
extra_e['增伤'] += 0.15 + 0.05 * info.weapon.affix_level
|
||||
extra_a['普攻增伤'] += 0.15 + 0.05 * info.weapon.affix_level
|
||||
elif info.weapon.name == '盈满之实':
|
||||
info.prop.elemental_mastery += 5 * (21 + 3 * info.weapon.affix_level)
|
||||
info.prop.extra_attack -= 5 * 0.05 * info.prop.base_attack
|
||||
info.damage_describe.append('盈满之实满层')
|
||||
|
||||
# 系列武器
|
||||
elif info.weapon.name.startswith('千岩'):
|
||||
@ -436,6 +471,13 @@ def common_fix(info: Character) -> Tuple[Character, dict, dict, dict]:
|
||||
info.prop.reaction_coefficient['融化'] += 0.15
|
||||
info.prop.reaction_coefficient['超载'] += 0.4
|
||||
info.prop.reaction_coefficient['燃烧'] += 0.4
|
||||
info.prop.reaction_coefficient['绽放'] += 0.4
|
||||
elif suit[0][0] == '如雷的盛怒':
|
||||
info.prop.reaction_coefficient['超载'] += 0.4
|
||||
info.prop.reaction_coefficient['感电'] += 0.4
|
||||
info.prop.reaction_coefficient['超导'] += 0.4
|
||||
info.prop.reaction_coefficient['绽放'] += 0.4
|
||||
info.prop.reaction_coefficient['激化'] += 0.2
|
||||
elif suit[0][0] == '翠绿之影':
|
||||
info.prop.reaction_coefficient['扩散'] += 0.6
|
||||
elif suit[0][0] == '渡过烈火的贤人':
|
||||
@ -482,6 +524,15 @@ def common_fix(info: Character) -> Tuple[Character, dict, dict, dict]:
|
||||
info.damage_describe.append('武人触发')
|
||||
elif suit[0][0] == '行者之心':
|
||||
extra_a['重击暴击率'] += 0.3
|
||||
elif suit[0][0] == '饰金之梦':
|
||||
info.prop.elemental_mastery += 3 * 50
|
||||
info.prop.extra_attack += 0.14 * info.prop.base_attack
|
||||
info.damage_describe.append('饰金之梦触发3不同元素')
|
||||
elif suit[0][0] == '深林的记忆':
|
||||
extra_a['减抗'] += 0.3
|
||||
extra_e['减抗'] += 0.3
|
||||
extra_q['减抗'] += 0.3
|
||||
info.damage_describe.append('草套减抗')
|
||||
return info, extra_q, extra_e, extra_a
|
||||
|
||||
|
||||
@ -561,7 +612,9 @@ def get_damage_multipiler(info: Character) -> Optional[Dict[str, any]]:
|
||||
'B:c4-攻击力': (info.prop.base_attack * 0.25, '四命触发'),
|
||||
'AZ-e雷:重击': (float(az[0].replace('%', '')) / 100.0, float(az[1].replace('%', '')) / 100.0),
|
||||
'E-e雷:战技斩击': float(skill_data['星斗归位']['数值']['斩击伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'Q-e雷:大招尾刀': float(skill_data['天街巡游']['数值']['最后一击伤害'][level_q].replace('%', '')) / 100.0
|
||||
'E-e雷-j超激化:战技斩击超激化': float(skill_data['星斗归位']['数值']['斩击伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'Q-e雷:大招尾刀': float(skill_data['天街巡游']['数值']['最后一击伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e雷-j超激化:大招尾刀超激化': float(skill_data['天街巡游']['数值']['最后一击伤害'][level_q].replace('%', '')) / 100.0
|
||||
}
|
||||
if info.name == '可莉':
|
||||
return {
|
||||
@ -580,7 +633,9 @@ def get_damage_multipiler(info: Character) -> Optional[Dict[str, any]]:
|
||||
'B:c6-减防-E': (0.6,),
|
||||
'AZ-e雷:重击': float(skill_data['普通攻击·狐灵食罪式']['数值']['重击伤害'][level_a].replace('%', '')) / 100.0,
|
||||
'E-e雷:杀生樱满阶': float(skill_data['野干役咒·杀生樱']['数值'][e][level_e].replace('%', '')) / 100.0,
|
||||
'E-e雷-j超激化:杀生樱满阶超激化': float(skill_data['野干役咒·杀生樱']['数值'][e][level_e].replace('%', '')) / 100.0,
|
||||
'Q-e雷:天狐霆雷': float(skill_data['大密法·天狐显真']['数值']['天狐霆雷伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e雷-j超激化:天狐霆雷超激化': float(skill_data['大密法·天狐显真']['数值']['天狐霆雷伤害'][level_q].replace('%', '')) / 100.0,
|
||||
}
|
||||
if info.name == '阿贝多':
|
||||
return {
|
||||
@ -668,8 +723,10 @@ def get_damage_multipiler(info: Character) -> Optional[Dict[str, any]]:
|
||||
'Q-e岩:大招每段': float(skill_data['天权崩玉']['数值']['每颗宝石伤害'][level_q].replace('%', '').replace('每个', '')) / 100.0,
|
||||
}
|
||||
if info.name == '菲谢尔':
|
||||
dm = {'A:普攻第一段': float(skill_data['普通攻击·罪灭之矢']['数值']['一段伤害'][level_a].replace('%', '')) / 100.0}
|
||||
dm['E-e雷:奥兹攻击'] = float(skill_data['夜巡影翼']['数值']['奥兹攻击伤害'][level_e].replace('%', '')) / 100.0
|
||||
dm = {'A:普攻第一段': float(skill_data['普通攻击·罪灭之矢']['数值']['一段伤害'][level_a].replace('%', '')) / 100.0,
|
||||
'E-e雷:奥兹攻击': float(skill_data['夜巡影翼']['数值']['奥兹攻击伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'E-e雷-j超激化:奥兹攻击超激化': float(skill_data['夜巡影翼']['数值']['奥兹攻击伤害'][level_e].replace('%', '')) / 100.0,
|
||||
}
|
||||
if len(info.constellation) >= 6:
|
||||
dm['E-e雷:奥兹协同攻击'] = 0.3
|
||||
return dm
|
||||
@ -678,6 +735,8 @@ def get_damage_multipiler(info: Character) -> Optional[Dict[str, any]]:
|
||||
'B:c6-减抗-*': (0.15, '六命减抗'),
|
||||
'E-e雷:完美弹反': float(skill_data['捉浪']['数值']['基础伤害'][level_e].replace('%', '')) / 100.0 + 2 * float(
|
||||
skill_data['捉浪']['数值']['每层伤害提升'][level_e].replace('%', '')) / 100.0,
|
||||
'E-e雷-j超激化:完美弹反超激化': float(skill_data['捉浪']['数值']['基础伤害'][level_e].replace('%', '')) / 100.0 + 2 * float(
|
||||
skill_data['捉浪']['数值']['每层伤害提升'][level_e].replace('%', '')) / 100.0,
|
||||
'Q-e雷:斫雷每段': float(skill_data['斫雷']['数值']['闪电伤害'][level_q].replace('%', '')) / 100.0
|
||||
}
|
||||
if info.name == '诺艾尔':
|
||||
@ -854,6 +913,50 @@ def get_damage_multipiler(info: Character) -> Optional[Dict[str, any]]:
|
||||
1 + info.prop.healing_bonus)),
|
||||
'Q-e冰:大招伤害': float(skill_data['仙法·救苦度厄']['数值']['技能伤害'][level_q].replace('%', '')) / 100.0,
|
||||
}
|
||||
if info.name == '提纳里':
|
||||
info.prop.elemental_mastery += 50 if info.level >= 50 else 0
|
||||
info.prop.elemental_mastery += 120 if len(info.constellation) >= 4 else 0
|
||||
return {
|
||||
'B:c1-暴击率-AZ': (0.15,),
|
||||
'B:c2-增伤-*': (0.2, '二命增伤'),
|
||||
'B:c4-增伤-*': (0, '四命精通'),
|
||||
'B:l70-增伤-AZ': (min(info.prop.elemental_mastery, 1000) * 0.0006, ),
|
||||
'B:l70-增伤-Q': (min(info.prop.elemental_mastery, 1000) * 0.0006,),
|
||||
'AZ-e草:重击花筥箭': float(skill_data['普通攻击·藏蕴破障']['数值']['花筥箭伤害'][level_a].replace('%', '')) / 100.0,
|
||||
'AZ-e草-j蔓激化:重击花筥箭蔓激化': float(skill_data['普通攻击·藏蕴破障']['数值']['花筥箭伤害'][level_a].replace('%', '')) / 100.0,
|
||||
'AZ-e草-n4:重击藏蕴花矢': float(skill_data['普通攻击·藏蕴破障']['数值']['藏蕴花矢伤害'][level_a].replace('%', '')) / 100.0,
|
||||
'Q-e草:缠藤箭': float(skill_data['造生缠藤箭']['数值']['缠藤箭伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e草-j蔓激化:缠藤箭蔓激化': float(skill_data['造生缠藤箭']['数值']['缠藤箭伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e草:次级缠藤箭-n6': float(skill_data['造生缠藤箭']['数值']['次级缠藤箭伤害'][level_q].replace('%', '')) / 100.0,
|
||||
}
|
||||
if info.name == '柯莱':
|
||||
info.prop.elemental_mastery += 60 if len(info.constellation) >= 4 else 0
|
||||
return {
|
||||
'E-e草:飞叶轮': float(skill_data['拂花偈叶']['数值']['技能伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'E-e草-j蔓激化:飞叶轮蔓激化': float(skill_data['拂花偈叶']['数值']['技能伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'Q-e草:大招爆发伤害': float(skill_data['猫猫秘宝']['数值']['爆发伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e草-j蔓激化:大招爆发蔓激化': float(skill_data['猫猫秘宝']['数值']['爆发伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e草:大招持续伤害': float(skill_data['猫猫秘宝']['数值']['跃动伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e草-j蔓激化:大招持续蔓激化': float(skill_data['猫猫秘宝']['数值']['跃动伤害'][level_q].replace('%', '')) / 100.0
|
||||
}
|
||||
if info.name == '多莉':
|
||||
h = skill_data['卡萨扎莱宫的无微不至']['数值']['持续治疗量'][level_q].split('生命值上限+')
|
||||
return {
|
||||
'E-e雷:断除烦恼炮': float(skill_data['镇灵之灯·烦恼解决炮']['数值']['断除烦恼炮伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'T:大招持续治疗量': int(float(h[0].replace('%', '')) / 100.0 * info.prop.health + float(h[1]) * (1 + info.prop.healing_bonus)),
|
||||
}
|
||||
if info.name == '九条裟罗':
|
||||
atk = float(skill_data['鸦羽天狗霆雷召咒']['数值']['攻击力加成比例'][level_e].replace('%', '')) / 100.0 * info.prop.base_attack
|
||||
return {
|
||||
'T:乌羽攻击加成': int(atk),
|
||||
'B:l0-攻击力-*': (atk, ),
|
||||
'B:c6-暴击伤害-*': (0.6, ),
|
||||
'E-e雷:元素战技': float(skill_data['鸦羽天狗霆雷召咒']['数值']['天狗咒雷•伏伤害'][level_e].replace('%', '')) / 100.0,
|
||||
'Q-e雷:大招首段': float(skill_data['煌煌千道镇式']['数值']['天狗咒雷•金刚坏伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e雷-j超激化:大招首段超激化': float(skill_data['煌煌千道镇式']['数值']['天狗咒雷•金刚坏伤害'][level_q].replace('%', '')) / 100.0,
|
||||
'Q-e雷:大招雷砾': float(skill_data['煌煌千道镇式']['数值']['天狗咒雷•雷砾伤害'][level_q].replace('%', '')) / 100.0,
|
||||
}
|
||||
|
||||
|
||||
|
||||
async def draw_dmg_pic(dmg: Dict[str, Union[tuple, list]]) -> PMImage:
|
||||
|
Loading…
x
Reference in New Issue
Block a user