[Aportes indexados] Calculadora de vida

BuFoN

Newbie Lvl 1
Hola gente, libero esto.. me cansé de intentar hacer un ejecutable que tenga únicamente las dependencias.

Consta de un hardcodeo importante ya que incluye 3 argentums populares.


hpc.png


calculadora.py

Código:
import sys
from PyQt6.QtGui import QDoubleValidator
from constantes import tds_const, aof_const, fs_const
from PyQt6.QtWidgets import QApplication, QMainWindow
from GUI import Ui_MainWindow


class calculadoraVida(QMainWindow):

    def __init__(self):
        super().__init__()
        self.promcls = 0
        self.modraza = 0
        self.vida_inicial = 0

        self.inicializar_ui()

    def inicializar_ui(self):

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.hp_input_tds.setText("")
        self.ui.level_input_tds.setText("")
        self.ui.hp_input_tds.setMaxLength(3)
        self.ui.level_input_tds.setMaxLength(2)
        self.ui.level_input_tds.setValidator(QDoubleValidator())
        self.ui.hp_input_tds.setValidator(QDoubleValidator())

        self.ui.hp_input_aof.setText("")
        self.ui.level_input_aof.setText("")
        self.ui.hp_input_aof.setMaxLength(3)
        self.ui.level_input_aof.setMaxLength(2)
        self.ui.level_input_aof.setValidator(QDoubleValidator())
        self.ui.hp_input_aof.setValidator(QDoubleValidator())

        self.ui.hp_input_fs.setText("")
        self.ui.level_input_fs.setText("")
        self.ui.hp_input_fs.setMaxLength(3)
        self.ui.level_input_fs.setMaxLength(2)
        self.ui.level_input_fs.setValidator(QDoubleValidator())
        self.ui.hp_input_fs.setValidator(QDoubleValidator())

        self.ui.calculate_btn_tds.clicked.connect(self.calcular_tds)
        self.ui.calculate_btn_aof.clicked.connect(self.calcular_aof)
        self.ui.calculate_btn_fs.clicked.connect(self.calcular_fs)

    def calcular_tds(self):

        promcls = None
        modraza = None
        vida_inicial = None

        tds_prom = tds_const()

        if self.ui.asesino_btn_tds.isChecked():
            promcls = tds_prom.asesino
            vida_inicial = tds_prom.vasesino
        elif self.ui.bardo_btn_tds.isChecked():
            promcls = tds_prom.bardo
            vida_inicial = tds_prom.vbardo
        elif self.ui.clerigo_btn_tds.isChecked():
            promcls = tds_prom.clerigo
            vida_inicial = tds_prom.vclerigo
        elif self.ui.paladin_btn_tds.isChecked():
            promcls = tds_prom.paladin
            vida_inicial = tds_prom.vpaladin
        elif self.ui.carpintero_btn_tds.isChecked():
            promcls = tds_prom.carpintero
            vida_inicial = tds_prom.vcarpintero
        elif self.ui.lenador_btn_tds.isChecked():
            promcls = tds_prom.talador
            vida_inicial = tds_prom.vtalador
        elif self.ui.minero_btn_tds.isChecked():
            promcls = tds_prom.minero
            vida_inicial = tds_prom.vminero
        elif self.ui.guerrero_btn_tds.isChecked():
            promcls = tds_prom.guerrero
            vida_inicial = tds_prom.vguerrero
        elif self.ui.mago_btn_tds.isChecked():
            promcls = tds_prom.mago
            vida_inicial = tds_prom.vmago
        elif self.ui.druida_btn_tds.isChecked():
            promcls = tds_prom.druida
            vida_inicial = tds_prom.vdruida
        elif self.ui.cazador_btn_tds.isChecked():
            promcls = tds_prom.cazador
            vida_inicial = tds_prom.vcazador
        elif self.ui.pescador_btn_tds.isChecked():
            promcls = tds_prom.pescador
            vida_inicial = tds_prom.vpescador
        elif self.ui.pirata_btn_tds.isChecked():
            promcls = tds_prom.pirata
            vida_inicial = tds_prom.vpirata
        elif self.ui.herrero_btn_tds.isChecked():
            promcls = tds_prom.herrero
            vida_inicial = tds_prom.vherrero

        if self.ui.humano_btn_tds.isChecked():
            modraza = tds_prom.humano
        elif self.ui.elfo_btn_tds.isChecked():
            modraza = tds_prom.elfo
        elif self.ui.eo_btn_tds.isChecked():
            modraza = tds_prom.eo
        elif self.ui.enano_btn_tds.isChecked():
            modraza = tds_prom.enano
        elif self.ui.gnomo_btn_tds.isChecked():
            modraza = tds_prom.gnomo

        if self.ui.enano_btn_tds.isChecked():
            vida_inicial = vida_inicial + 1

        try:
            self.calcular(promcls, modraza, vida_inicial, self.ui.level_input_tds.text(), self.ui.hp_input_tds.text(),
                          self.ui.tds_results_lbl)
        except:
            self.ui.tds_results_lbl.setText('REVISA QUE NO HAYAN DATOS VACIOS!')

    def calcular_aof(self):

        promcls = None
        modraza = None
        vida_inicial = 21

        aof_prom = aof_const()

        if self.ui.asesino_btn_aof.isChecked():
            promcls = aof_prom.asesino
        elif self.ui.bardo_btn_aof.isChecked():
            promcls = aof_prom.bardo
        elif self.ui.clerigo_btn_aof.isChecked():
            promcls = aof_prom.clerigo
        elif self.ui.paladin_btn_aof.isChecked():
            promcls = aof_prom.paladin
        elif self.ui.trabajador_btn_aof.isChecked():
            promcls = aof_prom.trabajador
        elif self.ui.ingeniero_btn_aof.isChecked():
            promcls = aof_prom.ingeniero
        elif self.ui.monje_btn_aof.isChecked():
            promcls = aof_prom.monje
        elif self.ui.guerrero_btn_aof.isChecked():
            promcls = aof_prom.guerrero
        elif self.ui.mago_btn_aof.isChecked():
            promcls = aof_prom.mago
        elif self.ui.druida_btn_aof.isChecked():
            promcls = aof_prom.druida
        elif self.ui.cazador_btn_aof.isChecked():
            promcls = aof_prom.cazador
        elif self.ui.shaman_btn_aof.isChecked():
            promcls = aof_prom.shaman
        elif self.ui.pirata_btn_aof.isChecked():
            promcls = aof_prom.pirata
        elif self.ui.bandido_btn_aof.isChecked():
            promcls = aof_prom.bandido
        elif self.ui.nigromante_btn_aof.isChecked():
            promcls = aof_prom.nigromante

        if self.ui.humano_btn_aof.isChecked():
            modraza = aof_prom.humano
        elif self.ui.elfo_btn_aof.isChecked():
            modraza = aof_prom.elfo
        elif self.ui.eo_btn_aof.isChecked():
            modraza = aof_prom.eo
        elif self.ui.enano_btn_aof.isChecked():
            modraza = aof_prom.enano
        elif self.ui.gnomo_btn_aof.isChecked():
            modraza = aof_prom.gnomo

        if self.ui.enano_btn_aof.isChecked():
            vida_inicial = vida_inicial + 1

        try:
            self.calcular(promcls, modraza, vida_inicial, self.ui.level_input_aof.text(), self.ui.hp_input_aof.text(), self.ui.aof_results_lbl)
        except:
            self.ui.aof_results_lbl.setText('REVISA QUE NO HAYAN DATOS VACIOS!')

    def calcular_fs(self):

        promcls = None
        modraza = None
        vida_inicial = 18

        fs_prom = fs_const()

        if self.ui.asesino_btn_fs.isChecked():
            promcls = fs_prom.asesino
        elif self.ui.bardo_btn_fs.isChecked():
            promcls = fs_prom.bardo
        elif self.ui.clerigo_btn_fs.isChecked():
            promcls = fs_prom.clerigo
        elif self.ui.paladin_btn_fs.isChecked():
            promcls = fs_prom.paladin
        elif self.ui.herrero_btn_fs.isChecked():
            promcls = fs_prom.herrero
        elif self.ui.arquero_btn_fs.isChecked():
            promcls = fs_prom.arquero
        elif self.ui.ladron_btn_fs.isChecked():
            promcls = fs_prom.ladron
        elif self.ui.guerrero_btn_fs.isChecked():
            promcls = fs_prom.guerrero
        elif self.ui.mago_btn_fs.isChecked():
            promcls = fs_prom.mago
        elif self.ui.druida_btn_fs.isChecked():
            promcls = fs_prom.druida
        elif self.ui.cazador_btn_fs.isChecked():
            promcls = fs_prom.cazador
        elif self.ui.minero_btn_fs.isChecked():
            promcls = fs_prom.minero
        elif self.ui.pirata_btn_fs.isChecked():
            promcls = fs_prom.pirata
        elif self.ui.pescador_btn_fs.isChecked():
            promcls = fs_prom.pescador
        elif self.ui.nigromante_btn_fs.isChecked():
            promcls = fs_prom.nigromante
        elif self.ui.sastre_btn_fs.isChecked():
            promcls = fs_prom.sastre
        elif self.ui.carpintero_btn_fs.isChecked():
            promcls = fs_prom.carpintero
        elif self.ui.lenador_btn_fs.isChecked():
            promcls = fs_prom.talador

        if self.ui.humano_btn_fs.isChecked():
            modraza = fs_prom.humano
        elif self.ui.elfo_btn_fs.isChecked():
            modraza = fs_prom.elfo
        elif self.ui.eo_btn_fs.isChecked():
            modraza = fs_prom.eo
        elif self.ui.enano_btn_fs.isChecked():
            modraza = fs_prom.enano
        elif self.ui.gnomo_btn_fs.isChecked():
            modraza = fs_prom.gnomo

        if self.ui.enano_btn_fs.isChecked():
            vida_inicial = vida_inicial + 1

        try:
            self.calcular(promcls, modraza, vida_inicial, self.ui.level_input_fs.text(), self.ui.hp_input_fs.text(),
                          self.ui.fs_results_lbl)
        except:
            self.ui.fs_results_lbl.setText('REVISA QUE NO HAYAN DATOS VACIOS!')

    def calcular(self, promcls, modraza, vida_inicial, lvl_input, hp_input, label):
        self.vida_promedio = ((promcls + modraza) * (int(lvl_input) - 1)) + vida_inicial
        self.diferencia = int(hp_input) - self.vida_promedio

        if self.diferencia > 0:
            label.setText("\nFelicidades...\n"
                          "\nTu personaje está +" + str(self.diferencia) + " puntos de vida\n"
                                                                        "por encima del promedio \n"
                          )
        elif self.diferencia < 0:
            label.setText("\nMal ahí\n"
                          "\nTu personaje está " + str(self.diferencia) + " puntos de vida\n"
                                                                        "por debajo del promedio \n"
                          )
        else:
            label.setText("\nZafaste perro\n"
                          "\nTu personaje está en promedio. \n +" + str(self.diferencia) + " puntos de vida\n")



def main():
    app = QApplication(sys.argv)
    window = calculadoraVida()
    window.show()
    sys.exit(app.exec())


if __name__ == "__main__":
    main()

GUI.py

Código:
# Created by: PyQt6 UI code generator 6.1.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowIcon(QtGui.QIcon('images\derpimg.png'))
        MainWindow.setEnabled(True)
        MainWindow.resize(905, 572)
        MainWindow.setMaximumSize(QtCore.QSize(905, 572))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setEnabled(True)
        self.centralwidget.setMinimumSize(QtCore.QSize(905, 572))
        self.centralwidget.setMaximumSize(QtCore.QSize(905, 603))
        self.centralwidget.setStyleSheet("*{\n"
"    background: rgba(37, 38, 39, 170)\n"
"}\n"
"\n"
"QLabel{\n"
"background-color: rgba(27, 28, 29, 170);\n"
"color:gray;\n"
"}\n"
"\n"
"QCheckBox{color:gray;}\n"
"\n"
"QRadioButton\n"
"{\n"
"    background-color: rgba(187, 10, 33, 120);\n"
"    border-style: outset;\n"
"    border-radius: 10px;\n"
"    font-family: \"Lucida Console\", \"Courier New\", monospace;\n"
"    padding-left:15px;\n"
"    font-weight: bold;\n"
"}\n"
"\n"
"QRadioButton::Indicator{\n"
"\n"
"    width: 0px;\n"
"    height: 0px;\n"
"\n"
"}\n"
"\n"
"QRadioButton::Icon{\n"
"\n"
"    width: 0px;\n"
"    height: 0px;\n"
"\n"
"}\n"
"\n"
"QRadioButton::checked \n"
"{\n"
"    background-color: rgba(187, 10, 33, 255);\n"
"    border-style: outset;\n"
"    font-family: \"Lucida Console\", \"Courier New\", monospace;\n"
"    padding-left: 25px;\n"
"    font-weight: bold;\n"
"}\n"
"\n"
"QPushButton {\n"
"    background-color: rgba(27, 28, 29, 170);\n"
"    border-style: outset;\n"
"    border-width: 1px;\n"
"    border-color: black;\n"
"    border-radius: 10px;\n"
"    font-family: \"Lucida Console\", \"Courier New\", monospace;\n"
"    font-weight: bold;\n"
"    color:gray;\n"
"}\n"
"\n"
"QLineEdit {\n"
"    background-color: rgba(27, 28, 29, 170);\n"
"    border-style: outset;\n"
"    border-width: 2px;\n"
"    border-color: black;\n"
"    border-radius: 10px;\n"
"    color:gray;\n"
"}\n"
"\n"
"QGroupBox{\n"
"border:0px;\n"
"}\n"
"\n"
"QGroupBox::title {\n"
"    subcontrol-origin: margin;\n"
"    subcontrol-position: top center; /* position at the top center */\n"
"    padding: 0 3px;\n"
"    color:white;\n"
"}\n"
"\n"
"\n"
"QTabWidget::pane { /* The tab widget frame */\n"
"    border-top: 2px solid #C2C7CB;\n"
"}\n"
"\n"
"QTabWidget::tab-bar {\n"
"    left: 5px; /* move to the right by 5px */\n"
"}\n"
"\n"
"/* Style the tab using the tab sub-control. Note that\n"
"    it reads QTabBar _not_ QTabWidget */\n"
"QTabBar::tab {\n"
"    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n"
"                                stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,\n"
"                                stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);\n"
"    border: 2px solid #C4C4C3;\n"
"    border-bottom-color: #C2C7CB; /* same as the pane color */\n"
"    border-top-left-radius: 4px;\n"
"    border-top-right-radius: 4px;\n"
"    min-width: 8ex;\n"
"    padding: 2px;\n"
"}\n"
"\n"
"QTabBar::tab:selected, QTabBar::tab:hover {\n"
"    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n"
"                                stop: 0 #fafafa, stop: 0.4 #f4f4f4,\n"
"                                stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);\n"
"}\n"
"\n"
"QTabBar::tab:selected {\n"
"    border-color: #9B9B9B;\n"
"    border-bottom-color: #C2C7CB; /* same as pane color */\n"
"}\n"
"\n"
"QTabBar::tab:!selected {\n"
"    margin-top: 2px; /* make non-selected tabs look smaller */\n"
"}\n"
"\n"
"/* make use of negative margins for overlapping tabs */\n"
"QTabBar::tab:selected {\n"
"    /* expand/overlap to the left and right by 4px */\n"
"    margin-left: -4px;\n"
"    margin-right: -4px;\n"
"}\n"
"\n"
"QTabBar::tab:first:selected {\n"
"    margin-left: 0; /* the first selected tab has nothing to overlap with on the left */\n"
"}\n"
"\n"
"QTabBar::tab:last:selected {\n"
"    margin-right: 0; /* the last selected tab has nothing to overlap with on the right */\n"
"}\n"
"\n"
"QTabBar::tab:only-one {\n"
"    margin: 0; /* if there is only one tab, we don\'t want overlapping margins */\n"
"}")
        self.centralwidget.setObjectName("centralwidget")
        self.tabs = QtWidgets.QTabWidget(self.centralwidget)
        self.tabs.setGeometry(QtCore.QRect(0, 0, 901, 641))
        self.tabs.setAutoFillBackground(False)
        self.tabs.setStyleSheet("")
        self.tabs.setObjectName("tabs")
        self.tab = QtWidgets.QWidget()
        self.tab.setStyleSheet("")
        self.tab.setObjectName("tab")
        self.horizontalLayoutWidget = QtWidgets.QWidget(self.tab)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 0, 851, 541))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setContentsMargins(-1, 10, -1, 30)
        self.verticalLayout.setSpacing(10)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_3 = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.label_3.setMaximumSize(QtCore.QSize(231, 80))
        font = QtGui.QFont()
        font.setFamily("Script MT Bold")
        font.setPointSize(26)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.verticalLayout.addWidget(self.label_3)
        self.label = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.label.setMinimumSize(QtCore.QSize(0, 20))
        self.label.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.level_input_tds = QtWidgets.QLineEdit(self.horizontalLayoutWidget)
        self.level_input_tds.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.level_input_tds.setFont(font)
        self.level_input_tds.setInputMask("")
        self.level_input_tds.setObjectName("level_input_tds")
        self.verticalLayout.addWidget(self.level_input_tds)
        self.logo = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.logo.setEnabled(True)
        self.logo.setMinimumSize(QtCore.QSize(0, 20))
        self.logo.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.logo.setFont(font)
        self.logo.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.logo.setObjectName("logo")
        self.verticalLayout.addWidget(self.logo)
        self.hp_input_tds = QtWidgets.QLineEdit(self.horizontalLayoutWidget)
        self.hp_input_tds.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.hp_input_tds.setFont(font)
        self.hp_input_tds.setStyleSheet("background-color: rgba(40, 28, 29, 170);")
        self.hp_input_tds.setObjectName("hp_input_tds")
        self.verticalLayout.addWidget(self.hp_input_tds)
        self.tds_results_lbl = QtWidgets.QLabel(self.horizontalLayoutWidget)
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.tds_results_lbl.setFont(font)
        self.tds_results_lbl.setText("")
        self.tds_results_lbl.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignTop)
        self.tds_results_lbl.setObjectName("tds_results_lbl")
        self.verticalLayout.addWidget(self.tds_results_lbl)
        self.horizontalLayout.addLayout(self.verticalLayout)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.class_gbx = QtWidgets.QGroupBox(self.horizontalLayoutWidget)
        self.class_gbx.setMinimumSize(QtCore.QSize(400, 400))
        self.class_gbx.setFlat(False)
        self.class_gbx.setObjectName("class_gbx")
        self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.class_gbx)
        self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(10, 20, 381, 371))
        self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setSpacing(7)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout()
        self.verticalLayout_5.setContentsMargins(10, -1, 50, -1)
        self.verticalLayout_5.setSpacing(13)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.asesino_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.asesino_btn_tds.setEnabled(True)
        self.asesino_btn_tds.setMinimumSize(QtCore.QSize(20, 30))
        self.asesino_btn_tds.setMaximumSize(QtCore.QSize(200, 16777215))
        self.asesino_btn_tds.setObjectName("asesino_btn_tds")
        self.verticalLayout_5.addWidget(self.asesino_btn_tds)
        self.bardo_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.bardo_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.bardo_btn_tds.setObjectName("bardo_btn_tds")
        self.verticalLayout_5.addWidget(self.bardo_btn_tds)
        self.clerigo_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.clerigo_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.clerigo_btn_tds.setObjectName("clerigo_btn_tds")
        self.verticalLayout_5.addWidget(self.clerigo_btn_tds)
        self.paladin_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.paladin_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.paladin_btn_tds.setObjectName("paladin_btn_tds")
        self.verticalLayout_5.addWidget(self.paladin_btn_tds)
        self.carpintero_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.carpintero_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.carpintero_btn_tds.setObjectName("carpintero_btn_tds")
        self.verticalLayout_5.addWidget(self.carpintero_btn_tds)
        self.lenador_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.lenador_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.lenador_btn_tds.setObjectName("lenador_btn_tds")
        self.verticalLayout_5.addWidget(self.lenador_btn_tds)
        self.minero_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.minero_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.minero_btn_tds.setObjectName("minero_btn_tds")
        self.verticalLayout_5.addWidget(self.minero_btn_tds)
        self.horizontalLayout_2.addLayout(self.verticalLayout_5)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setContentsMargins(20, -1, 55, -1)
        self.verticalLayout_3.setSpacing(13)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.guerrero_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.guerrero_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.guerrero_btn_tds.setObjectName("guerrero_btn_tds")
        self.verticalLayout_3.addWidget(self.guerrero_btn_tds)
        self.mago_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.mago_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.mago_btn_tds.setObjectName("mago_btn_tds")
        self.verticalLayout_3.addWidget(self.mago_btn_tds)
        self.druida_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.druida_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.druida_btn_tds.setObjectName("druida_btn_tds")
        self.verticalLayout_3.addWidget(self.druida_btn_tds)
        self.cazador_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.cazador_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.cazador_btn_tds.setObjectName("cazador_btn_tds")
        self.verticalLayout_3.addWidget(self.cazador_btn_tds)
        self.pescador_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.pescador_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.pescador_btn_tds.setObjectName("pescador_btn_tds")
        self.verticalLayout_3.addWidget(self.pescador_btn_tds)
        self.pirata_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.pirata_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.pirata_btn_tds.setObjectName("pirata_btn_tds")
        self.verticalLayout_3.addWidget(self.pirata_btn_tds)
        self.herrero_btn_tds = QtWidgets.QRadioButton(self.horizontalLayoutWidget_2)
        self.herrero_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        self.herrero_btn_tds.setObjectName("herrero_btn_tds")
        self.verticalLayout_3.addWidget(self.herrero_btn_tds)
        self.horizontalLayout_2.addLayout(self.verticalLayout_3)
        self.horizontalLayout_6.addWidget(self.class_gbx)
        self.races_btn = QtWidgets.QGroupBox(self.horizontalLayoutWidget)
        self.races_btn.setMinimumSize(QtCore.QSize(200, 400))
        self.races_btn.setObjectName("races_btn")
        self.layoutWidget = QtWidgets.QWidget(self.races_btn)
        self.layoutWidget.setGeometry(QtCore.QRect(0, 20, 221, 371))
        self.layoutWidget.setObjectName("layoutWidget")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.layoutWidget)
        self.verticalLayout_6.setContentsMargins(10, 0, 55, 0)
        self.verticalLayout_6.setSpacing(13)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.humano_btn_tds = QtWidgets.QRadioButton(self.layoutWidget)
        self.humano_btn_tds.setEnabled(True)
        self.humano_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("images/h.gif"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
        self.humano_btn_tds.setIcon(icon)
        self.humano_btn_tds.setIconSize(QtCore.QSize(15, 30))
        self.humano_btn_tds.setObjectName("humano_btn_tds")
        self.verticalLayout_6.addWidget(self.humano_btn_tds)
        self.elfo_btn_tds = QtWidgets.QRadioButton(self.layoutWidget)
        self.elfo_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("images/e.gif"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
        self.elfo_btn_tds.setIcon(icon1)
        self.elfo_btn_tds.setIconSize(QtCore.QSize(16, 25))
        self.elfo_btn_tds.setObjectName("elfo_btn_tds")
        self.verticalLayout_6.addWidget(self.elfo_btn_tds)
        self.eo_btn_tds = QtWidgets.QRadioButton(self.layoutWidget)
        self.eo_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("images/eo.gif"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
        self.eo_btn_tds.setIcon(icon2)
        self.eo_btn_tds.setIconSize(QtCore.QSize(16, 25))
        self.eo_btn_tds.setObjectName("eo_btn_tds")
        self.verticalLayout_6.addWidget(self.eo_btn_tds)
        self.enano_btn_tds = QtWidgets.QRadioButton(self.layoutWidget)
        self.enano_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap("images/en.gif"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
        self.enano_btn_tds.setIcon(icon3)
        self.enano_btn_tds.setIconSize(QtCore.QSize(16, 25))
        self.enano_btn_tds.setObjectName("enano_btn_tds")
        self.verticalLayout_6.addWidget(self.enano_btn_tds)
        self.gnomo_btn_tds = QtWidgets.QRadioButton(self.layoutWidget)
        self.gnomo_btn_tds.setMinimumSize(QtCore.QSize(0, 30))
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap("images/g.gif"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
        self.gnomo_btn_tds.setIcon(icon4)
        self.gnomo_btn_tds.setIconSize(QtCore.QSize(16, 25))
        self.gnomo_btn_tds.setObjectName("gnomo_btn_tds")
        self.verticalLayout_6.addWidget(self.gnomo_btn_tds)
        self.horizontalLayout_6.addWidget(self.races_btn)
        self.verticalLayout_2.addLayout(self.horizontalLayout_6)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setContentsMargins(-1, -1, -1, 30)
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.calculate_btn_tds = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        self.calculate_btn_tds.setMinimumSize(QtCore.QSize(0, 70))
        font = QtGui.QFont()
        font.setFamily("Lucida Console")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.calculate_btn_tds.setFont(font)
        self.calculate_btn_tds.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.PointingHandCursor))
        self.calculate_btn_tds.setStyleSheet("")
        self.calculate_btn_tds.setObjectName("calculate_btn_tds")
        self.horizontalLayout_7.addWidget(self.calculate_btn_tds)
        self.verticalLayout_2.addLayout(self.horizontalLayout_7)
        self.horizontalLayout.addLayout(self.verticalLayout_2)
        self.tabs.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.horizontalLayoutWidget_3 = QtWidgets.QWidget(self.tab_2)
        self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(20, 0, 851, 541))
        self.horizontalLayoutWidget_3.setObjectName("horizontalLayoutWidget_3")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_3)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
        self.verticalLayout_4.setContentsMargins(-1, 10, -1, 30)
        self.verticalLayout_4.setSpacing(10)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label_4 = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        self.label_4.setMaximumSize(QtCore.QSize(231, 80))
        font = QtGui.QFont()
        font.setFamily("Modern No. 20")
        font.setPointSize(26)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(50)
        self.label_4.setFont(font)
        self.label_4.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label_4.setObjectName("label_4")
        self.verticalLayout_4.addWidget(self.label_4)
        self.label_2 = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        self.label_2.setMinimumSize(QtCore.QSize(0, 0))
        self.label_2.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.verticalLayout_4.addWidget(self.label_2)
        self.level_input_aof = QtWidgets.QLineEdit(self.horizontalLayoutWidget_3)
        self.level_input_aof.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.level_input_aof.setFont(font)
        self.level_input_aof.setInputMask("")
        self.level_input_aof.setObjectName("level_input_aof")
        self.verticalLayout_4.addWidget(self.level_input_aof)
        self.logo_4 = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        self.logo_4.setEnabled(True)
        self.logo_4.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.logo_4.setFont(font)
        self.logo_4.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.logo_4.setObjectName("logo_4")
        self.verticalLayout_4.addWidget(self.logo_4)
        self.hp_input_aof = QtWidgets.QLineEdit(self.horizontalLayoutWidget_3)
        self.hp_input_aof.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.hp_input_aof.setFont(font)
        self.hp_input_aof.setStyleSheet("background-color: rgba(40, 28, 29, 170);")
        self.hp_input_aof.setObjectName("hp_input_aof")
        self.verticalLayout_4.addWidget(self.hp_input_aof)
        self.aof_results_lbl = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.aof_results_lbl.setFont(font)
        self.aof_results_lbl.setText("")
        self.aof_results_lbl.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignTop)
        self.aof_results_lbl.setObjectName("aof_results_lbl")
        self.verticalLayout_4.addWidget(self.aof_results_lbl)
        self.horizontalLayout_3.addLayout(self.verticalLayout_4)
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.class_gbx_2 = QtWidgets.QGroupBox(self.horizontalLayoutWidget_3)
        self.class_gbx_2.setMinimumSize(QtCore.QSize(400, 400))
        self.class_gbx_2.setFlat(False)
        self.class_gbx_2.setObjectName("class_gbx_2")
        self.horizontalLayoutWidget_4 = QtWidgets.QWidget(self.class_gbx_2)
        self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 381, 371))
        self.horizontalLayoutWidget_4.setObjectName("horizontalLayoutWidget_4")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_4)
        self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_4.setSpacing(7)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout()
        self.verticalLayout_8.setContentsMargins(10, -1, 50, -1)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.asesino_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.asesino_btn_aof.setEnabled(True)
        self.asesino_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.asesino_btn_aof.setObjectName("asesino_btn_aof")
        self.verticalLayout_8.addWidget(self.asesino_btn_aof)
        self.bardo_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.bardo_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.bardo_btn_aof.setObjectName("bardo_btn_aof")
        self.verticalLayout_8.addWidget(self.bardo_btn_aof)
        self.bandido_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.bandido_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.bandido_btn_aof.setObjectName("bandido_btn_aof")
        self.verticalLayout_8.addWidget(self.bandido_btn_aof)
        self.cazador_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.cazador_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.cazador_btn_aof.setObjectName("cazador_btn_aof")
        self.verticalLayout_8.addWidget(self.cazador_btn_aof)
        self.clerigo_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.clerigo_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.clerigo_btn_aof.setObjectName("clerigo_btn_aof")
        self.verticalLayout_8.addWidget(self.clerigo_btn_aof)
        self.druida_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.druida_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.druida_btn_aof.setObjectName("druida_btn_aof")
        self.verticalLayout_8.addWidget(self.druida_btn_aof)
        self.guerrero_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.guerrero_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.guerrero_btn_aof.setObjectName("guerrero_btn_aof")
        self.verticalLayout_8.addWidget(self.guerrero_btn_aof)
        self.horizontalLayout_4.addLayout(self.verticalLayout_8)
        self.verticalLayout_9 = QtWidgets.QVBoxLayout()
        self.verticalLayout_9.setContentsMargins(20, -1, 55, -1)
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.ingeniero_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.ingeniero_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.ingeniero_btn_aof.setObjectName("ingeniero_btn_aof")
        self.verticalLayout_9.addWidget(self.ingeniero_btn_aof)
        self.mago_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.mago_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.mago_btn_aof.setObjectName("mago_btn_aof")
        self.verticalLayout_9.addWidget(self.mago_btn_aof)
        self.monje_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.monje_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.monje_btn_aof.setObjectName("monje_btn_aof")
        self.verticalLayout_9.addWidget(self.monje_btn_aof)
        self.nigromante_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.nigromante_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.nigromante_btn_aof.setObjectName("nigromante_btn_aof")
        self.verticalLayout_9.addWidget(self.nigromante_btn_aof)
        self.paladin_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.paladin_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.paladin_btn_aof.setObjectName("paladin_btn_aof")
        self.verticalLayout_9.addWidget(self.paladin_btn_aof)
        self.pirata_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.pirata_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.pirata_btn_aof.setObjectName("pirata_btn_aof")
        self.verticalLayout_9.addWidget(self.pirata_btn_aof)
        self.shaman_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.shaman_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.shaman_btn_aof.setObjectName("shaman_btn_aof")
        self.verticalLayout_9.addWidget(self.shaman_btn_aof)
        self.trabajador_btn_aof = QtWidgets.QRadioButton(self.horizontalLayoutWidget_4)
        self.trabajador_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.trabajador_btn_aof.setObjectName("trabajador_btn_aof")
        self.verticalLayout_9.addWidget(self.trabajador_btn_aof)
        self.horizontalLayout_4.addLayout(self.verticalLayout_9)
        self.horizontalLayout_8.addWidget(self.class_gbx_2)
        self.races_btn_2 = QtWidgets.QGroupBox(self.horizontalLayoutWidget_3)
        self.races_btn_2.setMinimumSize(QtCore.QSize(200, 400))
        self.races_btn_2.setObjectName("races_btn_2")
        self.layoutWidget_2 = QtWidgets.QWidget(self.races_btn_2)
        self.layoutWidget_2.setGeometry(QtCore.QRect(0, 20, 221, 371))
        self.layoutWidget_2.setObjectName("layoutWidget_2")
        self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.layoutWidget_2)
        self.verticalLayout_10.setContentsMargins(10, 0, 55, 0)
        self.verticalLayout_10.setSpacing(13)
        self.verticalLayout_10.setObjectName("verticalLayout_10")
        self.humano_btn_aof = QtWidgets.QRadioButton(self.layoutWidget_2)
        self.humano_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.humano_btn_aof.setIcon(icon)
        self.humano_btn_aof.setIconSize(QtCore.QSize(16, 25))
        self.humano_btn_aof.setObjectName("humano_btn_aof")
        self.verticalLayout_10.addWidget(self.humano_btn_aof)
        self.elfo_btn_aof = QtWidgets.QRadioButton(self.layoutWidget_2)
        self.elfo_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.elfo_btn_aof.setIcon(icon1)
        self.elfo_btn_aof.setIconSize(QtCore.QSize(16, 25))
        self.elfo_btn_aof.setObjectName("elfo_btn_aof")
        self.verticalLayout_10.addWidget(self.elfo_btn_aof)
        self.eo_btn_aof = QtWidgets.QRadioButton(self.layoutWidget_2)
        self.eo_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.eo_btn_aof.setIcon(icon2)
        self.eo_btn_aof.setIconSize(QtCore.QSize(16, 25))
        self.eo_btn_aof.setObjectName("eo_btn_aof")
        self.verticalLayout_10.addWidget(self.eo_btn_aof)
        self.enano_btn_aof = QtWidgets.QRadioButton(self.layoutWidget_2)
        self.enano_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.enano_btn_aof.setIcon(icon3)
        self.enano_btn_aof.setIconSize(QtCore.QSize(16, 25))
        self.enano_btn_aof.setObjectName("enano_btn_aof")
        self.verticalLayout_10.addWidget(self.enano_btn_aof)
        self.gnomo_btn_aof = QtWidgets.QRadioButton(self.layoutWidget_2)
        self.gnomo_btn_aof.setMinimumSize(QtCore.QSize(0, 30))
        self.gnomo_btn_aof.setIcon(icon4)
        self.gnomo_btn_aof.setIconSize(QtCore.QSize(16, 25))
        self.gnomo_btn_aof.setObjectName("gnomo_btn_aof")
        self.verticalLayout_10.addWidget(self.gnomo_btn_aof)
        self.horizontalLayout_8.addWidget(self.races_btn_2)
        self.verticalLayout_7.addLayout(self.horizontalLayout_8)
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_9.setContentsMargins(-1, -1, -1, 30)
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.calculate_btn_aof = QtWidgets.QPushButton(self.horizontalLayoutWidget_3)
        self.calculate_btn_aof.setMinimumSize(QtCore.QSize(0, 70))
        font = QtGui.QFont()
        font.setFamily("Lucida Console")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.calculate_btn_aof.setFont(font)
        self.calculate_btn_aof.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.PointingHandCursor))
        self.calculate_btn_aof.setObjectName("calculate_btn_aof")
        self.horizontalLayout_9.addWidget(self.calculate_btn_aof)
        self.verticalLayout_7.addLayout(self.horizontalLayout_9)
        self.horizontalLayout_3.addLayout(self.verticalLayout_7)
        self.tabs.addTab(self.tab_2, "")
        self.tab_3 = QtWidgets.QWidget()
        self.tab_3.setObjectName("tab_3")
        self.horizontalLayoutWidget_5 = QtWidgets.QWidget(self.tab_3)
        self.horizontalLayoutWidget_5.setGeometry(QtCore.QRect(20, 0, 851, 544))
        self.horizontalLayoutWidget_5.setObjectName("horizontalLayoutWidget_5")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_5)
        self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.verticalLayout_11 = QtWidgets.QVBoxLayout()
        self.verticalLayout_11.setContentsMargins(-1, 10, -1, 30)
        self.verticalLayout_11.setSpacing(10)
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.label_6 = QtWidgets.QLabel(self.horizontalLayoutWidget_5)
        self.label_6.setMaximumSize(QtCore.QSize(231, 80))
        font = QtGui.QFont()
        font.setFamily("Impact")
        font.setPointSize(28)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(50)
        self.label_6.setFont(font)
        self.label_6.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label_6.setObjectName("label_6")
        self.verticalLayout_11.addWidget(self.label_6)
        self.label_5 = QtWidgets.QLabel(self.horizontalLayoutWidget_5)
        self.label_5.setMinimumSize(QtCore.QSize(0, 0))
        self.label_5.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_5.setFont(font)
        self.label_5.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label_5.setObjectName("label_5")
        self.verticalLayout_11.addWidget(self.label_5)
        self.level_input_fs = QtWidgets.QLineEdit(self.horizontalLayoutWidget_5)
        self.level_input_fs.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.level_input_fs.setFont(font)
        self.level_input_fs.setInputMask("")
        self.level_input_fs.setObjectName("level_input_fs")
        self.verticalLayout_11.addWidget(self.level_input_fs)
        self.logo_5 = QtWidgets.QLabel(self.horizontalLayoutWidget_5)
        self.logo_5.setEnabled(True)
        self.logo_5.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.logo_5.setFont(font)
        self.logo_5.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.logo_5.setObjectName("logo_5")
        self.verticalLayout_11.addWidget(self.logo_5)
        self.hp_input_fs = QtWidgets.QLineEdit(self.horizontalLayoutWidget_5)
        self.hp_input_fs.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.hp_input_fs.setFont(font)
        self.hp_input_fs.setStyleSheet("background-color: rgba(40, 28, 29, 170);")
        self.hp_input_fs.setObjectName("hp_input_fs")
        self.verticalLayout_11.addWidget(self.hp_input_fs)
        self.fs_results_lbl = QtWidgets.QLabel(self.horizontalLayoutWidget_5)
        self.fs_results_lbl.setEnabled(True)
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.fs_results_lbl.setFont(font)
        self.fs_results_lbl.setText("")
        self.fs_results_lbl.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignTop)
        self.fs_results_lbl.setObjectName("fs_results_lbl")
        self.verticalLayout_11.addWidget(self.fs_results_lbl)
        self.horizontalLayout_5.addLayout(self.verticalLayout_11)
        self.verticalLayout_12 = QtWidgets.QVBoxLayout()
        self.verticalLayout_12.setObjectName("verticalLayout_12")
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
        self.class_gbx_3 = QtWidgets.QGroupBox(self.horizontalLayoutWidget_5)
        self.class_gbx_3.setMinimumSize(QtCore.QSize(400, 400))
        self.class_gbx_3.setFlat(False)
        self.class_gbx_3.setObjectName("class_gbx_3")
        self.horizontalLayoutWidget_6 = QtWidgets.QWidget(self.class_gbx_3)
        self.horizontalLayoutWidget_6.setGeometry(QtCore.QRect(10, 20, 391, 389))
        self.horizontalLayoutWidget_6.setObjectName("horizontalLayoutWidget_6")
        self.horizontalLayout_11 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_6)
        self.horizontalLayout_11.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_11.setSpacing(7)
        self.horizontalLayout_11.setObjectName("horizontalLayout_11")
        self.verticalLayout_13 = QtWidgets.QVBoxLayout()
        self.verticalLayout_13.setContentsMargins(10, -1, 30, -1)
        self.verticalLayout_13.setSpacing(13)
        self.verticalLayout_13.setObjectName("verticalLayout_13")
        self.asesino_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.asesino_btn_fs.setEnabled(True)
        self.asesino_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.asesino_btn_fs.setObjectName("asesino_btn_fs")
        self.verticalLayout_13.addWidget(self.asesino_btn_fs)
        self.arquero_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.arquero_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.arquero_btn_fs.setObjectName("arquero_btn_fs")
        self.verticalLayout_13.addWidget(self.arquero_btn_fs)
        self.bardo_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.bardo_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.bardo_btn_fs.setObjectName("bardo_btn_fs")
        self.verticalLayout_13.addWidget(self.bardo_btn_fs)
        self.clerigo_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.clerigo_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.clerigo_btn_fs.setObjectName("clerigo_btn_fs")
        self.verticalLayout_13.addWidget(self.clerigo_btn_fs)
        self.paladin_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.paladin_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.paladin_btn_fs.setObjectName("paladin_btn_fs")
        self.verticalLayout_13.addWidget(self.paladin_btn_fs)
        self.ladron_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.ladron_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.ladron_btn_fs.setObjectName("ladron_btn_fs")
        self.verticalLayout_13.addWidget(self.ladron_btn_fs)
        self.carpintero_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.carpintero_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.carpintero_btn_fs.setObjectName("carpintero_btn_fs")
        self.verticalLayout_13.addWidget(self.carpintero_btn_fs)
        self.lenador_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.lenador_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.lenador_btn_fs.setObjectName("lenador_btn_fs")
        self.verticalLayout_13.addWidget(self.lenador_btn_fs)
        self.minero_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.minero_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.minero_btn_fs.setObjectName("minero_btn_fs")
        self.verticalLayout_13.addWidget(self.minero_btn_fs)
        self.horizontalLayout_11.addLayout(self.verticalLayout_13)
        self.verticalLayout_14 = QtWidgets.QVBoxLayout()
        self.verticalLayout_14.setContentsMargins(20, -1, 30, -1)
        self.verticalLayout_14.setSpacing(13)
        self.verticalLayout_14.setObjectName("verticalLayout_14")
        self.guerrero_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.guerrero_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.guerrero_btn_fs.setObjectName("guerrero_btn_fs")
        self.verticalLayout_14.addWidget(self.guerrero_btn_fs)
        self.mago_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.mago_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.mago_btn_fs.setObjectName("mago_btn_fs")
        self.verticalLayout_14.addWidget(self.mago_btn_fs)
        self.nigromante_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.nigromante_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.nigromante_btn_fs.setObjectName("nigromante_btn_fs")
        self.verticalLayout_14.addWidget(self.nigromante_btn_fs)
        self.druida_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.druida_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.druida_btn_fs.setObjectName("druida_btn_fs")
        self.verticalLayout_14.addWidget(self.druida_btn_fs)
        self.cazador_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.cazador_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.cazador_btn_fs.setObjectName("cazador_btn_fs")
        self.verticalLayout_14.addWidget(self.cazador_btn_fs)
        self.pirata_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.pirata_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.pirata_btn_fs.setObjectName("pirata_btn_fs")
        self.verticalLayout_14.addWidget(self.pirata_btn_fs)
        self.pescador_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.pescador_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.pescador_btn_fs.setObjectName("pescador_btn_fs")
        self.verticalLayout_14.addWidget(self.pescador_btn_fs)
        self.sastre_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.sastre_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.sastre_btn_fs.setObjectName("sastre_btn_fs")
        self.verticalLayout_14.addWidget(self.sastre_btn_fs)
        self.herrero_btn_fs = QtWidgets.QRadioButton(self.horizontalLayoutWidget_6)
        self.herrero_btn_fs.setMinimumSize(QtCore.QSize(0, 25))
        self.herrero_btn_fs.setObjectName("herrero_btn_fs")
        self.verticalLayout_14.addWidget(self.herrero_btn_fs)
        self.horizontalLayout_11.addLayout(self.verticalLayout_14)
        self.horizontalLayout_10.addWidget(self.class_gbx_3)
        self.races_btn_3 = QtWidgets.QGroupBox(self.horizontalLayoutWidget_5)
        self.races_btn_3.setMinimumSize(QtCore.QSize(200, 400))
        self.races_btn_3.setObjectName("races_btn_3")
        self.layoutWidget_3 = QtWidgets.QWidget(self.races_btn_3)
        self.layoutWidget_3.setGeometry(QtCore.QRect(0, 20, 201, 371))
        self.layoutWidget_3.setObjectName("layoutWidget_3")
        self.verticalLayout_15 = QtWidgets.QVBoxLayout(self.layoutWidget_3)
        self.verticalLayout_15.setContentsMargins(10, 0, 35, 0)
        self.verticalLayout_15.setSpacing(13)
        self.verticalLayout_15.setObjectName("verticalLayout_15")
        self.humano_btn_fs = QtWidgets.QRadioButton(self.layoutWidget_3)
        self.humano_btn_fs.setMinimumSize(QtCore.QSize(0, 30))
        self.humano_btn_fs.setIcon(icon)
        self.humano_btn_fs.setIconSize(QtCore.QSize(16, 25))
        self.humano_btn_fs.setObjectName("humano_btn_fs")
        self.verticalLayout_15.addWidget(self.humano_btn_fs)
        self.elfo_btn_fs = QtWidgets.QRadioButton(self.layoutWidget_3)
        self.elfo_btn_fs.setMinimumSize(QtCore.QSize(0, 30))
        self.elfo_btn_fs.setIcon(icon1)
        self.elfo_btn_fs.setIconSize(QtCore.QSize(16, 25))
        self.elfo_btn_fs.setObjectName("elfo_btn_fs")
        self.verticalLayout_15.addWidget(self.elfo_btn_fs)
        self.eo_btn_fs = QtWidgets.QRadioButton(self.layoutWidget_3)
        self.eo_btn_fs.setMinimumSize(QtCore.QSize(0, 30))
        self.eo_btn_fs.setIcon(icon2)
        self.eo_btn_fs.setIconSize(QtCore.QSize(16, 25))
        self.eo_btn_fs.setObjectName("eo_btn_fs")
        self.verticalLayout_15.addWidget(self.eo_btn_fs)
        self.enano_btn_fs = QtWidgets.QRadioButton(self.layoutWidget_3)
        self.enano_btn_fs.setMinimumSize(QtCore.QSize(0, 30))
        self.enano_btn_fs.setIcon(icon3)
        self.enano_btn_fs.setIconSize(QtCore.QSize(16, 25))
        self.enano_btn_fs.setObjectName("enano_btn_fs")
        self.verticalLayout_15.addWidget(self.enano_btn_fs)
        self.gnomo_btn_fs = QtWidgets.QRadioButton(self.layoutWidget_3)
        self.gnomo_btn_fs.setMinimumSize(QtCore.QSize(0, 30))
        self.gnomo_btn_fs.setIcon(icon4)
        self.gnomo_btn_fs.setIconSize(QtCore.QSize(16, 25))
        self.gnomo_btn_fs.setObjectName("gnomo_btn_fs")
        self.verticalLayout_15.addWidget(self.gnomo_btn_fs)
        self.horizontalLayout_10.addWidget(self.races_btn_3)
        self.verticalLayout_12.addLayout(self.horizontalLayout_10)
        self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_12.setContentsMargins(-1, -1, -1, 30)
        self.horizontalLayout_12.setObjectName("horizontalLayout_12")
        self.calculate_btn_fs = QtWidgets.QPushButton(self.horizontalLayoutWidget_5)
        self.calculate_btn_fs.setMinimumSize(QtCore.QSize(0, 70))
        font = QtGui.QFont()
        font.setFamily("Lucida Console")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.calculate_btn_fs.setFont(font)
        self.calculate_btn_fs.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.PointingHandCursor))
        self.calculate_btn_fs.setObjectName("calculate_btn_fs")
        self.horizontalLayout_12.addWidget(self.calculate_btn_fs)
        self.verticalLayout_12.addLayout(self.horizontalLayout_12)
        self.horizontalLayout_5.addLayout(self.verticalLayout_12)
        self.tabs.addTab(self.tab_3, "")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        self.tabs.setCurrentIndex(2)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Multi-Calculadora de vida by FedeS"))
        self.label_3.setText(_translate("MainWindow", "Tierras del Sur"))
        self.label.setText(_translate("MainWindow", "NIVEL"))
        self.level_input_tds.setText(_translate("MainWindow", "0"))
        self.logo.setText(_translate("MainWindow", "VIDA"))
        self.hp_input_tds.setText(_translate("MainWindow", "0"))
        self.class_gbx.setTitle(_translate("MainWindow", "Clases"))
        self.asesino_btn_tds.setText(_translate("MainWindow", "Asesino"))
        self.bardo_btn_tds.setText(_translate("MainWindow", "Bardo"))
        self.clerigo_btn_tds.setText(_translate("MainWindow", "Clérigo"))
        self.paladin_btn_tds.setText(_translate("MainWindow", "Paladín"))
        self.carpintero_btn_tds.setText(_translate("MainWindow", "Carpintero"))
        self.lenador_btn_tds.setText(_translate("MainWindow", "Leñador"))
        self.minero_btn_tds.setText(_translate("MainWindow", "Minero"))
        self.guerrero_btn_tds.setText(_translate("MainWindow", "Guerrero"))
        self.mago_btn_tds.setText(_translate("MainWindow", "Mago"))
        self.druida_btn_tds.setText(_translate("MainWindow", "Druida"))
        self.cazador_btn_tds.setText(_translate("MainWindow", "Cazador"))
        self.pescador_btn_tds.setText(_translate("MainWindow", "Pescador"))
        self.pirata_btn_tds.setText(_translate("MainWindow", "Pirata"))
        self.herrero_btn_tds.setText(_translate("MainWindow", "Herrero"))
        self.races_btn.setTitle(_translate("MainWindow", "Razas"))
        self.humano_btn_tds.setText(_translate("MainWindow", "Humano"))
        self.elfo_btn_tds.setText(_translate("MainWindow", "Elfo"))
        self.eo_btn_tds.setText(_translate("MainWindow", "Elfo Oscuro"))
        self.enano_btn_tds.setText(_translate("MainWindow", "Enano"))
        self.gnomo_btn_tds.setText(_translate("MainWindow", "Gnomo"))
        self.calculate_btn_tds.setText(_translate("MainWindow", "CALCULAR"))
        self.tabs.setTabText(self.tabs.indexOf(self.tab), _translate("MainWindow", "Tierras del sur AO"))
        self.label_4.setText(_translate("MainWindow", "AOFROST"))
        self.label_2.setText(_translate("MainWindow", "NIVEL"))
        self.level_input_aof.setText(_translate("MainWindow", "0"))
        self.logo_4.setText(_translate("MainWindow", "VIDA"))
        self.hp_input_aof.setText(_translate("MainWindow", "0"))
        self.class_gbx_2.setTitle(_translate("MainWindow", "Clases"))
        self.asesino_btn_aof.setText(_translate("MainWindow", "Asesino"))
        self.bardo_btn_aof.setText(_translate("MainWindow", "Bardo"))
        self.bandido_btn_aof.setText(_translate("MainWindow", "Bandido"))
        self.cazador_btn_aof.setText(_translate("MainWindow", "Cazador"))
        self.clerigo_btn_aof.setText(_translate("MainWindow", "Clérigo"))
        self.druida_btn_aof.setText(_translate("MainWindow", "Druida"))
        self.guerrero_btn_aof.setText(_translate("MainWindow", "Guerrero"))
        self.ingeniero_btn_aof.setText(_translate("MainWindow", "Ingeniero"))
        self.mago_btn_aof.setText(_translate("MainWindow", "Mago"))
        self.monje_btn_aof.setText(_translate("MainWindow", "Monje"))
        self.nigromante_btn_aof.setText(_translate("MainWindow", "Nigromante"))
        self.paladin_btn_aof.setText(_translate("MainWindow", "Paladín"))
        self.pirata_btn_aof.setText(_translate("MainWindow", "Pirata"))
        self.shaman_btn_aof.setText(_translate("MainWindow", "Shamán"))
        self.trabajador_btn_aof.setText(_translate("MainWindow", "Trabajador"))
        self.races_btn_2.setTitle(_translate("MainWindow", "Razas"))
        self.humano_btn_aof.setText(_translate("MainWindow", "Humano"))
        self.elfo_btn_aof.setText(_translate("MainWindow", "Elfo"))
        self.eo_btn_aof.setText(_translate("MainWindow", "Elfo Oscuro"))
        self.enano_btn_aof.setText(_translate("MainWindow", "Enano"))
        self.gnomo_btn_aof.setText(_translate("MainWindow", "Gnomo"))
        self.calculate_btn_aof.setText(_translate("MainWindow", "CALCULAR"))
        self.tabs.setTabText(self.tabs.indexOf(self.tab_2), _translate("MainWindow", "AOFrost"))
        self.label_6.setText(_translate("MainWindow", "FURIUSAO"))
        self.label_5.setText(_translate("MainWindow", "NIVEL"))
        self.level_input_fs.setText(_translate("MainWindow", "0"))
        self.logo_5.setText(_translate("MainWindow", "VIDA"))
        self.hp_input_fs.setText(_translate("MainWindow", "0"))
        self.class_gbx_3.setTitle(_translate("MainWindow", "Clases"))
        self.asesino_btn_fs.setText(_translate("MainWindow", "Asesino"))
        self.arquero_btn_fs.setText(_translate("MainWindow", "Arquero"))
        self.bardo_btn_fs.setText(_translate("MainWindow", "Bardo"))
        self.clerigo_btn_fs.setText(_translate("MainWindow", "Clérigo"))
        self.paladin_btn_fs.setText(_translate("MainWindow", "Paladín"))
        self.ladron_btn_fs.setText(_translate("MainWindow", "Ladrón"))
        self.carpintero_btn_fs.setText(_translate("MainWindow", "Carpintero"))
        self.lenador_btn_fs.setText(_translate("MainWindow", "Leñador"))
        self.minero_btn_fs.setText(_translate("MainWindow", "Minero"))
        self.guerrero_btn_fs.setText(_translate("MainWindow", "Guerrero"))
        self.mago_btn_fs.setText(_translate("MainWindow", "Mago"))
        self.nigromante_btn_fs.setText(_translate("MainWindow", "Nigromante"))
        self.druida_btn_fs.setText(_translate("MainWindow", "Druida"))
        self.cazador_btn_fs.setText(_translate("MainWindow", "Cazador"))
        self.pirata_btn_fs.setText(_translate("MainWindow", "Pirata"))
        self.pescador_btn_fs.setText(_translate("MainWindow", "Pescador"))
        self.sastre_btn_fs.setText(_translate("MainWindow", "Sastre"))
        self.herrero_btn_fs.setText(_translate("MainWindow", "Herrero"))
        self.races_btn_3.setTitle(_translate("MainWindow", "Razas"))
        self.humano_btn_fs.setText(_translate("MainWindow", "Humano"))
        self.elfo_btn_fs.setText(_translate("MainWindow", "Elfo"))
        self.eo_btn_fs.setText(_translate("MainWindow", "Elfo Oscuro"))
        self.enano_btn_fs.setText(_translate("MainWindow", "Enano"))
        self.gnomo_btn_fs.setText(_translate("MainWindow", "Gnomo"))
        self.calculate_btn_fs.setText(_translate("MainWindow", "CALCULAR"))
        self.tabs.setTabText(self.tabs.indexOf(self.tab_3), _translate("MainWindow", "FuriusAO"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec())

constantes.py

Código:
#MODULO DE CONSTANTES

class tds_const(object):
    def __init__(self):
    # PROMEDIO DE CLASES BASE TDS
        self.asesino=7.75
        self.bardo= 7.75
        self.druida = 7.75
        self.clerigo = 7.75
        self.mago = 6.25
        self.paladin = 9.25
        self.cazador = 8.75
        self.guerrero = 9.75
        self.pirata = 9.75
        self.minero = 9.75
        self.talador = 9.75
        self.pescador = 9.75
        self.recolector = 9.75
        self.carpintero = 7.25
        self.herrero = 7.25
        self.sastre = 7.25
    #MODIFICADOR SEGUN RAZA
        self.humano=0.25
        self.elfo= -0.25
        self.eo = -0.25
        self.enano = 0.75
        self.gnomo = -0.75
    #VIDA INICIAL
        self.vasesino = 30
        self.vbardo = 23
        self.vdruida = 23
        self.vclerigo = 23
        self.vmago = 21
        self.vpaladin = 24
        self.vcazador = 8.75
        self.vguerrero = 9.75
        self.vpirata = 9.75
        self.vminero = 9.75
        self.vtalador = 9.75
        self.vpescador = 9.75
        self.vrecolector = 9.75
        self.vcarpintero = 7.25
        self.vherrero = 7.25
        self.vsastre = 7.25


#PROMEDIO DE CLASES BASE AOF
class aof_const(object):
    def __init__(self):
        self.asesino=7.75
        self.bardo= 7.75
        self.druida = 7.75
        self.clerigo = 7.75
        self.mago = 6.75
        self.paladin = 8.75
        self.cazador = 9.25
        self.guerrero = 10.25
        self.pirata = 8.75
        self.nigromante = 7.25
        self.trabajador = 9.25
        self.monje = 8.25
        self.shaman = 8.75
        self.bandido = 8.75
        self.ingeniero = 9.25

        # MODIFICADOR SEGUN RAZA
        self.humano = 0.25
        self.elfo = -0.25
        self.eo = -0.75
        self.enano = 0.75
        self.gnomo = -0.75

class fs_const(object):
    def __init__(self):
    # PROMEDIO DE CLASES BASE FS
        self.asesino=8.25
        self.arquero= 9.75
        self.bardo= 8.25
        self.druida = 6.75
        self.clerigo = 8.25
        self.mago = 6.75
        self.paladin = 9.75
        self.cazador = 9.25
        self.guerrero = 9.75
        self.pirata = 9.75
        self.ladron = 9.75
        self.minero = 9.75
        self.talador = 9.75
        self.pescador = 9.75
        self.nigromante = 6.75
        self.carpintero = 7.25
        self.herrero = 7.25
        self.sastre = 7.25
    #MODIFICADOR SEGUN RAZA
        self.humano=0.25
        self.elfo= -0.25
        self.eo = -0.75
        self.enano = 0.75
        self.gnomo = -0.75
 
Última edición:

Bramhh

Fundador Evolutionao
Miembro del equipo
Moderador de AO
Viste cuando estás aburrido y magicamente se te agranda el pene? bueno, buen aporte.
 

BuFoN

Newbie Lvl 1
Me encantaría, pero la verdad es que no sé hacerlo
De hecho este es el primer programa que hago y que tengo contacto con un lenguaje de programación.
En un futuro próximo quizás aprenda todo lo que tenga que ver con desarrollo web

un saludo
 

Bramhh

Fundador Evolutionao
Miembro del equipo
Moderador de AO
Me encantaría, pero la verdad es que no sé hacerlo
De hecho este es el primer programa que hago y que tengo contacto con un lenguaje de programación.
En un futuro próximo quizás aprenda todo lo que tenga que ver con desarrollo web

un saludo
Ta pa hacerlo en javascript con html y css, necesitas una mano? te paso la sintaxis básica y lo armas al toque, me arme un desarrollador de balance de npcs online, q utiliza lo q necesitas para hacerlo, es solo chusmear cmo lo arme y lo sacas al toque xq hice re poquito código, ta re optimizado
 

BuFoN

Newbie Lvl 1
Ta pa hacerlo en javascript con html y css, necesitas una mano? te paso la sintaxis básica y lo armas al toque, me arme un desarrollador de balance de npcs online, q utiliza lo q necesitas para hacerlo, es solo chusmear cmo lo arme y lo sacas al toque xq hice re poquito código, ta re optimizado
Ahora estoy un poquito apretado con mis estudios, seguro con un poco de tiempo voy a poder hacer algo.
Voy a aprender algun framework de frontend y algo de web scraping para las calculadoras web de los otros servidores para evitar tener que actualizar los datos de balance.
 
Arriba