Spaces:
Runtime error
Runtime error
from typing import Tuple, List, Dict | |
def agility(value): | |
return {"agility_base": value} | |
def strength(value): | |
return {"strength_base": value} | |
def spirit(value): | |
return {"spirit_base": value} | |
def spunk(value): | |
return {"spunk_base": value} | |
def physical_attack_power(value): | |
return {"physical_attack_power_base": value} | |
def magical_attack_power(value): | |
return {"magical_attack_power_base": value} | |
def surplus(value): | |
return {"surplus_base": value} | |
def strain(value): | |
return {"strain_base": value} | |
def haste(value): | |
return {"haste_base": value} | |
def overcome(value): | |
return {"physical_overcome_base": value, "magical_overcome_base": value} | |
def critical_strike(value): | |
return {"all_critical_strike_base": value} | |
def physical_spread(values): | |
return {"physical_attack_power_base": values[0], | |
"all_critical_strike_base": values[1], | |
"surplus_base": values[1]} | |
def magical_spread(values): | |
return {"magical_attack_power_base": values[0], | |
"all_critical_strike_base": values[1], | |
"surplus_base": values[1]} | |
def guild_spread(value): | |
return {"surplus_base": value, "strain_base": value} | |
def boiled_fish(value): | |
return {"surplus_base": value, "strain_base": value} | |
class CONSUMABLES_NUMBER: | |
major_food_max: int = 382 | |
major_food_min: int = 191 | |
physical_food_max: int = 768 | |
physical_food_min: int = 384 | |
magical_food_max: int = 917 | |
magical_food_min: int = 458 | |
minor_food_max: int = 1705 | |
minor_food_min: int = 853 | |
major_potion_max: int = 492 | |
major_potion_min: int = 246 | |
physical_potion_max: int = 988 | |
physical_potion_min: int = 494 | |
magical_potion_max: int = 1179 | |
magical_potion_min: int = 589 | |
minor_potion_max: int = 2192 | |
minor_potion_min: int = 1096 | |
physical_enchant_max: int = 658 | |
physical_enchant_min: int = 439 | |
magical_enchant_max: int = 786 | |
magical_enchant_min: int = 524 | |
minor_snack_max: int = 1934 | |
minor_snack_min: int = 1074 | |
physical_snack_max: int = 866 | |
physical_snack_min: int = 480 | |
magical_snack_max: int = 1038 | |
magical_snack_min: int = 576 | |
major_wine: int = 256 | |
haste_wine: int = 1144 | |
guild_spread: int = 258 | |
guild_food: int = 517 | |
major_spread: int = 437 | |
physical_spread: Tuple[int, int] = (439, 975) | |
magical_spread: Tuple[int, int] = (524, 975) | |
boiled_fish_max: int = 400 | |
boiled_fish_min: int = 100 | |
FUNCTION_MAP = { | |
"身法": agility, | |
"力道": strength, | |
"根骨": spirit, | |
"元气": spunk, | |
"外攻": physical_attack_power, | |
"内攻": magical_attack_power, | |
"破招": surplus, | |
"无双": strain, | |
"加速": haste, | |
"破防": overcome, | |
"会心": critical_strike, | |
("外攻", "会心/破招"): physical_spread, | |
("内攻", "会心/破招"): magical_spread, | |
"破招/无双": boiled_fish | |
} | |
NAME_MAP = { | |
"身法": "身法", | |
"力道": "力道", | |
"根骨": "根骨", | |
"元气": "元气", | |
"外攻": "外功", | |
"内攻": "内功", | |
"破招": "", | |
"无双": "", | |
"加速": "", | |
"破防": "", | |
"会心": "", | |
("外攻", "会心/破招"): "外功", | |
("内攻", "会心/破招"): "内功", | |
"破招/无双": "" | |
} | |
FOODS: Dict[str, dict | list] = { | |
"身法": { | |
CONSUMABLES_NUMBER.major_food_max: "杂锦鱼球粥", | |
CONSUMABLES_NUMBER.major_food_min: "杂碎汤" | |
}, | |
"力道": { | |
CONSUMABLES_NUMBER.major_food_max: "三鲜粥", | |
CONSUMABLES_NUMBER.major_food_min: "三鲜汤" | |
}, | |
"根骨": { | |
CONSUMABLES_NUMBER.major_food_max: "咸骨粥", | |
CONSUMABLES_NUMBER.major_food_min: "老火骨汤" | |
}, | |
"元气": { | |
CONSUMABLES_NUMBER.major_food_max: "鱼片砂锅粥", | |
CONSUMABLES_NUMBER.major_food_min: "鱼头豆腐汤" | |
}, | |
"外攻": { | |
CONSUMABLES_NUMBER.physical_food_max: "太后饼", | |
CONSUMABLES_NUMBER.physical_food_min: "煎饼果子" | |
}, | |
"内攻": { | |
CONSUMABLES_NUMBER.magical_food_max: "灌汤包", | |
CONSUMABLES_NUMBER.magical_food_min: "鲜肉包子" | |
}, | |
"破招": { | |
CONSUMABLES_NUMBER.minor_food_max: "白肉血肠", | |
CONSUMABLES_NUMBER.minor_food_min: "毛血旺" | |
}, | |
"加速": { | |
CONSUMABLES_NUMBER.minor_food_max: "红烧扣肉", | |
CONSUMABLES_NUMBER.minor_food_min: "栗子烧肉" | |
}, | |
"破防": { | |
CONSUMABLES_NUMBER.minor_food_max: "红烧排骨", | |
CONSUMABLES_NUMBER.minor_food_min: "水煮肉片" | |
}, | |
"会心": { | |
CONSUMABLES_NUMBER.minor_food_max: "酸菜鱼", | |
CONSUMABLES_NUMBER.minor_food_min: "鱼香肉丝" | |
} | |
} | |
POTIONS: Dict[str, dict | list] = { | |
"身法": { | |
CONSUMABLES_NUMBER.major_potion_max: "上品轻身丹", | |
CONSUMABLES_NUMBER.major_potion_min: "中品轻身丹" | |
}, | |
"力道": { | |
CONSUMABLES_NUMBER.major_potion_max: "上品大力丸", | |
CONSUMABLES_NUMBER.major_potion_min: "中品大力丸" | |
}, | |
"根骨": { | |
CONSUMABLES_NUMBER.major_potion_max: "上品静心丸", | |
CONSUMABLES_NUMBER.major_potion_min: "中品静心丸" | |
}, | |
"元气": { | |
CONSUMABLES_NUMBER.major_potion_max: "上品聚魂丹", | |
CONSUMABLES_NUMBER.major_potion_min: "中品聚魂丹" | |
}, | |
"外攻": { | |
CONSUMABLES_NUMBER.physical_potion_max: "上品亢龙散", | |
CONSUMABLES_NUMBER.physical_potion_min: "中品亢龙散" | |
}, | |
"内攻": { | |
CONSUMABLES_NUMBER.magical_potion_max: "上品展凤散", | |
CONSUMABLES_NUMBER.magical_potion_min: "中品展凤散" | |
}, | |
"破招": { | |
CONSUMABLES_NUMBER.minor_potion_max: "上品凝神散", | |
CONSUMABLES_NUMBER.minor_potion_min: "中品凝神散" | |
}, | |
"加速": { | |
CONSUMABLES_NUMBER.minor_potion_max: "上品活气散", | |
CONSUMABLES_NUMBER.minor_potion_min: "中品活气散" | |
}, | |
"破防": { | |
CONSUMABLES_NUMBER.minor_potion_max: "上品破秽散", | |
CONSUMABLES_NUMBER.minor_potion_min: "中品破秽散" | |
}, | |
"会心": { | |
CONSUMABLES_NUMBER.minor_potion_max: "上品玉璃散", | |
CONSUMABLES_NUMBER.minor_potion_min: "中品玉璃散" | |
} | |
} | |
WEAPON_ENCHANTS: Dict[str, dict | list] = { | |
"外攻": { | |
CONSUMABLES_NUMBER.physical_enchant_max: "瀑沙熔锭", | |
CONSUMABLES_NUMBER.physical_enchant_min: "瀑沙磨石" | |
}, | |
"内攻": { | |
CONSUMABLES_NUMBER.magical_enchant_max: "坠宵熔锭", | |
CONSUMABLES_NUMBER.magical_enchant_min: "坠宵磨石" | |
} | |
} | |
SNACKS: Dict[str, dict | list] = { | |
"外攻": { | |
CONSUMABLES_NUMBER.physical_snack_max: "创意料理", | |
CONSUMABLES_NUMBER.physical_snack_min: "葫芦叫花鸡" | |
}, | |
"内攻": { | |
CONSUMABLES_NUMBER.magical_snack_max: "创意料理", | |
CONSUMABLES_NUMBER.magical_snack_min: "小炒青菜" | |
}, | |
"无双": { | |
CONSUMABLES_NUMBER.minor_snack_max: "创意料理", | |
CONSUMABLES_NUMBER.minor_snack_min: "炖豆腐" | |
}, | |
"破招": {CONSUMABLES_NUMBER.minor_snack_min: "煎豆腐"}, | |
"破防": { | |
CONSUMABLES_NUMBER.minor_snack_max: "创意料理", | |
CONSUMABLES_NUMBER.minor_snack_min: "炸鱼干" | |
}, | |
"会心": { | |
CONSUMABLES_NUMBER.minor_snack_max: "创意料理", | |
CONSUMABLES_NUMBER.minor_snack_min: "清蒸鲈鱼" | |
} | |
} | |
WINES: Dict[str, dict | list] = { | |
"身法": {CONSUMABLES_NUMBER.major_wine: "关外白酒·旬又三"}, | |
"力道": {CONSUMABLES_NUMBER.major_wine: "汾酒·旬又三"}, | |
"根骨": {CONSUMABLES_NUMBER.major_wine: "高粱酒·旬又三"}, | |
"元气": {CONSUMABLES_NUMBER.major_wine: "状元红·旬又三"}, | |
"加速": {CONSUMABLES_NUMBER.haste_wine: "女儿红·旬又三"} | |
} | |
SPREADS: Dict[str, dict | list] = { | |
"身法": {CONSUMABLES_NUMBER.major_spread: "水晶芙蓉宴"}, | |
"力道": {CONSUMABLES_NUMBER.major_spread: "水晶芙蓉宴"}, | |
"根骨": {CONSUMABLES_NUMBER.major_spread: "水晶芙蓉宴"}, | |
"元气": {CONSUMABLES_NUMBER.major_spread: "水晶芙蓉宴"}, | |
("外攻", "会心/破招"): {CONSUMABLES_NUMBER.physical_spread: "玉笛谁家听落梅"}, | |
("内攻", "会心/破招"): {CONSUMABLES_NUMBER.magical_spread: "二十四桥明月夜"}, | |
} | |
GUILD_FOOD = f"{CONSUMABLES_NUMBER.guild_food}无双" | |
GUILD_SPREAD = f"{CONSUMABLES_NUMBER.guild_spread}破招/无双" | |
BOILED_FISH: Dict[str, dict | list] = { | |
"破招/无双": { | |
CONSUMABLES_NUMBER.boiled_fish_max: "百炼水煮鱼", | |
CONSUMABLES_NUMBER.boiled_fish_min: "炼狱水煮鱼" | |
} | |
} | |
CONSUMABLES = {} | |
for consumables in [FOODS, POTIONS, WEAPON_ENCHANTS, SNACKS, WINES, SPREADS, BOILED_FISH]: | |
for attr, params in consumables.copy().items(): | |
consumables.pop(attr) | |
if NAME_MAP[attr] not in consumables: | |
consumables[NAME_MAP[attr]] = [] | |
for param, name in params.items(): | |
if isinstance(attr, tuple) and isinstance(param, tuple): | |
name = f"{name}({''.join(f'{p}{a}' for p, a in zip(param, attr))})" | |
else: | |
name = f"{name}({param}{attr})" | |
consumables[NAME_MAP[attr]].append(name) | |
CONSUMABLES[name] = FUNCTION_MAP[attr](param) | |
CONSUMABLES["guild_food"] = strain(CONSUMABLES_NUMBER.guild_food) | |
CONSUMABLES["guild_spread"] = guild_spread(CONSUMABLES_NUMBER.guild_spread) | |