File size: 915 Bytes
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
from qt.components.talents import TalentsWidget

from qt.constant import MAX_TALENTS


class Talents:
    def __init__(self):
        self.talents = ["" for _ in range(MAX_TALENTS)]

    def __getitem__(self, item):
        return self.talents[item]

    def __setitem__(self, key, value):
        self.talents[key] = value

    @property
    def gains(self):
        return [talent for talent in self.talents if talent]


def talents_script(talents_widget: TalentsWidget):
    talents = Talents()

    def talent_update(i):
        widget = talents_widget[i]

        def inner(index):
            if talent := widget.combo_box.currentText():
                talents[i] = talent
            else:
                talents[i] = ""

        return inner

    for n, talent_widget in enumerate(talents_widget.values()):
        talent_widget.combo_box.currentIndexChanged.connect(talent_update(n))

    return talents