File size: 2,974 Bytes
2452398
 
36e359a
2452398
 
 
2f63a42
 
 
 
 
3393f9d
2f63a42
3393f9d
2f63a42
 
 
 
 
 
 
 
 
 
 
 
2452398
 
 
2f63a42
2452398
88de31c
 
2452398
 
 
 
 
36e359a
2452398
 
 
 
 
88de31c
 
2452398
 
 
88de31c
 
2452398
 
 
 
 
 
 
 
 
 
2f63a42
 
2452398
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QTabWidget

from qt.components import ComboWithLabel, DoubleSpinWithLabel, LabelWithLabel, TableWithLabel
from base.constant import SHIELD_BASE_MAP


class DetailWidget(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout(self)
        self.details = {}
        self.skill_combo = ComboWithLabel("选择技能", info="技能名字#技能ID-技能等级-技能层数")
        layout.addWidget(self.skill_combo)
        self.status_combo = ComboWithLabel("选择增益", info="增益名字#增益ID-增益等级-增益层数")
        layout.addWidget(self.status_combo)
        detail_table = QWidget()
        detail_table_layout = QHBoxLayout(detail_table)
        self.damage_detail = TableWithLabel("伤害细节", column_count=2)
        detail_table_layout.addWidget(self.damage_detail)
        self.gradient_detail = TableWithLabel("属性收益", column_count=2)
        detail_table_layout.addWidget(self.gradient_detail)
        layout.addWidget(detail_table)

        layout.addStretch()


class DashboardWidget(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout(self)

        top_layout = QHBoxLayout()
        layout.addLayout(top_layout)

        self.fight_select = ComboWithLabel("选择战斗")
        top_layout.addWidget(self.fight_select)
        self.target_level = ComboWithLabel("目标等级", items=[str(level) for level in SHIELD_BASE_MAP])
        top_layout.addWidget(self.target_level)
        self.duration = DoubleSpinWithLabel("战斗时长", maximum=3600, value=180)
        top_layout.addWidget(self.duration)

        self.button = QPushButton(text="开始模拟!")
        layout.addWidget(self.button)

        bottom_layout = QHBoxLayout()
        layout.addLayout(bottom_layout)

        tab = QTabWidget()
        bottom_layout.addWidget(tab, 2)
        result_layout = QVBoxLayout()
        bottom_layout.addLayout(result_layout, 1)

        attribute = QWidget()
        attribute_layout = QHBoxLayout(attribute)
        tab.addTab(attribute, "属性")

        self.init_attribute = TableWithLabel("增益前属性", column_count=2)
        attribute_layout.addWidget(self.init_attribute)
        self.final_attribute = TableWithLabel("增益后属性", column_count=2)
        attribute_layout.addWidget(self.final_attribute)

        self.detail_widget = DetailWidget()
        tab.addTab(self.detail_widget, "伤害总结")

        self.summary = TableWithLabel("伤害统计", headers=["技能/次数", "命中/%", "会心/%", "伤害/%"])

        tab.addTab(self.summary, "战斗总结")

        self.dps = LabelWithLabel("每秒伤害")
        result_layout.addWidget(self.dps)

        self.gradients = TableWithLabel("属性收益", column_count=2)

        result_layout.addWidget(self.gradients)

        result_layout.addStretch()

        layout.addStretch()