Spaces:
Runtime error
Runtime error
File size: 3,993 Bytes
5825182 f0b1638 88de31c 2452398 f0b1638 2452398 f0b1638 5825182 f0b1638 2452398 88de31c f0b1638 2452398 f0b1638 2f63a42 2452398 88de31c 3ed500d 88de31c f0b1638 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
from PySide6.QtWidgets import QFileDialog, QWidget
from general.consumables import FOODS, POTIONS, WEAPON_ENCHANTS, SNACKS, WINES, SPREADS
from qt.components.consumables import ConsumablesWidget
from qt.components.dashboard import DashboardWidget
from qt.components.equipments import EquipmentsWidget
from qt.components.recipes import RecipesWidget
from qt.components.talents import TalentsWidget
from qt.components.top import TopWidget
# from general.consumables import FOODS, POTIONS, WEAPON_ENCHANTS, SPREADS, SNACKS, WINES
# from general.gains.formation import FORMATIONS
from qt.constant import MAX_RECIPES, MAX_STONE_LEVEL
from utils.parser import Parser
def top_script(top_widget: TopWidget, config_widget: QWidget, dashboard_widget: DashboardWidget,
talents_widget: TalentsWidget, recipes_widget: RecipesWidget,
equipments_widget: EquipmentsWidget, consumables_widget: ConsumablesWidget
):
parser = Parser()
def upload_logs():
file_name = QFileDialog(top_widget, "Choose File").getOpenFileName()
parser(file_name[0])
school = parser.school
""" Update dashboard """
record_index = list(parser.record_index)
dashboard_widget.fight_select.set_items(record_index)
dashboard_widget.duration.set_value(parser.duration(parser.record_index[record_index[0]]))
""" Update talent options """
for i, talent_widget in enumerate(talents_widget.values()):
talents = school.talents[i]
default_index = talents.index(parser.select_talents[i]) + 1
talent_widget.set_items([""] + [school.talent_decoder[talent] for talent in talents],
default_index=default_index)
""" Update recipe options """
for recipe_widget in recipes_widget.values():
recipe_widget.list.clear()
recipe_widget.hide()
for i, (skill, recipes) in enumerate(school.recipes.items()):
recipes_widget[i].set_label(skill)
recipes_widget[i].set_items(recipes)
for n in range(MAX_RECIPES):
recipes_widget[i].list.item(n).setSelected(True)
recipes_widget[i].show()
""" Update equipment options """
for equipment_widget in equipments_widget.values():
choices = [""]
for name, detail in equipment_widget.equipment_json.items():
if detail['kind'] not in (school.kind, school.major):
continue
if detail['school'] not in ("精简", "通用", school.school):
continue
choices.append(name)
current_equipment = equipment_widget.equipment.combo_box.currentText()
if current_equipment in choices:
default_index = choices.index(current_equipment)
else:
default_index = -1
equipment_widget.equipment.set_items(choices, default_index=default_index)
if equipment_widget.stones_json:
equipment_widget.stone_level.combo_box.setCurrentIndex(MAX_STONE_LEVEL)
""" Update consumable options """
consumables_widget.major_food.set_items([""] + FOODS[school.major])
consumables_widget.minor_food.set_items([""] + FOODS[school.kind] + FOODS[""])
consumables_widget.major_potion.set_items([""] + POTIONS[school.major])
consumables_widget.minor_potion.set_items([""] + POTIONS[school.kind] + POTIONS[""])
consumables_widget.weapon_enchant.set_items([""] + WEAPON_ENCHANTS[school.kind])
consumables_widget.home_snack.set_items([""] + SNACKS[school.kind] + SNACKS[""])
consumables_widget.home_wine.set_items([""] + WINES[school.major] + WINES[""])
consumables_widget.spread.set_items([""] + SPREADS[school.major] + SPREADS[school.kind])
config_widget.show()
top_widget.upload_button.clicked.connect(upload_logs)
return parser
|