Show required mods in new gam wizard

This commit is contained in:
Khopa 2020-07-19 17:11:05 +02:00
parent 7d0413f41d
commit 4f451fab2f
2 changed files with 65 additions and 24 deletions

View File

@ -74,8 +74,6 @@ France_2005_Modded = {
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator" "ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
], "requirements": { ], "requirements": {
"frenchpack V3.5": "https://forums.eagle.ru/showthread.php?t=279974", "frenchpack V3.5": "https://forums.eagle.ru/showthread.php?t=279974",
"DCS MOD RAFALES 2.5.5 BETA (Cuesta brothers)": "https://www.digitalcombatsimulator.com/fr/files/3307478/", "RAFALE 2.5.5": "https://www.digitalcombatsimulator.com/fr/files/3307478/",
"MIRAGE F1 and F1CT for 2.5.5 by Eric and Patrick": "https://www.digitalcombatsimulator.com/fr/files/3305837/",
"MOD EUROCOPTER EC665 TIGER by the Cuesta Brothers": "https://www.digitalcombatsimulator.com/en/files/3310596/"
} }
} }

View File

@ -147,32 +147,53 @@ class FactionSelection(QtWidgets.QWizardPage):
blues = [c for c in db.FACTIONS if db.FACTIONS[c]["side"] == "blue"] blues = [c for c in db.FACTIONS if db.FACTIONS[c]["side"] == "blue"]
reds = [c for c in db.FACTIONS if db.FACTIONS[c]["side"] == "red"] reds = [c for c in db.FACTIONS if db.FACTIONS[c]["side"] == "red"]
# Create form
blueFaction = QtWidgets.QLabel("Blue Faction :") # Factions selection
self.factionsGroup = QtWidgets.QGroupBox("Factions")
self.factionsGroupLayout = QtWidgets.QGridLayout()
blueFaction = QtWidgets.QLabel("<b>Blue Faction :</b>")
self.blueFactionSelect = QtWidgets.QComboBox() self.blueFactionSelect = QtWidgets.QComboBox()
for f in blues: for f in blues:
self.blueFactionSelect.addItem(f) self.blueFactionSelect.addItem(f)
blueFaction.setBuddy(self.blueFactionSelect) blueFaction.setBuddy(self.blueFactionSelect)
redFaction = QtWidgets.QLabel("Red Faction :") redFaction = QtWidgets.QLabel("<b>Red Faction :</b>")
self.redFactionSelect = QtWidgets.QComboBox() self.redFactionSelect = QtWidgets.QComboBox()
for r in reds: for r in reds:
self.redFactionSelect.addItem(r) self.redFactionSelect.addItem(r)
redFaction.setBuddy(self.redFactionSelect) redFaction.setBuddy(self.redFactionSelect)
self.blueSideRecap = QtWidgets.QLabel("")
self.blueSideRecap.setFont(CONST.FONT_PRIMARY_I)
self.blueSideRecap.setWordWrap(True)
self.blueGroup = QtWidgets.QGroupBox("Redfor")
self.redSideRecap = QtWidgets.QLabel("")
self.redSideRecap.setFont(CONST.FONT_PRIMARY_I)
self.redSideRecap.setWordWrap(True)
self.factionsGroupLayout.addWidget(blueFaction, 0, 0)
self.factionsGroupLayout.addWidget(self.blueFactionSelect, 0, 1)
self.factionsGroupLayout.addWidget(self.blueSideRecap, 1, 0, 1, 2)
self.factionsGroupLayout.addWidget(redFaction, 2, 0)
self.factionsGroupLayout.addWidget(self.redFactionSelect, 2, 1)
self.factionsGroupLayout.addWidget(self.redSideRecap, 3, 0, 1, 2)
self.factionsGroup.setLayout(self.factionsGroupLayout)
# Create required mod layout
self.requiredModsGroup = QtWidgets.QGroupBox("Required Mods")
self.requiredModsGroupLayout = QtWidgets.QHBoxLayout()
self.requiredMods = QtWidgets.QLabel("<ul><li>None</li></ul>")
self.requiredModsGroupLayout.addWidget(self.requiredMods)
self.requiredModsGroup.setLayout(self.requiredModsGroupLayout)
# Player faction selection
sideGroup = QtWidgets.QGroupBox("Player Side") sideGroup = QtWidgets.QGroupBox("Player Side")
blueforRadioButton = QtWidgets.QRadioButton("BLUEFOR") blueforRadioButton = QtWidgets.QRadioButton("BLUEFOR")
redforRadioButton = QtWidgets.QRadioButton("REDFOR") redforRadioButton = QtWidgets.QRadioButton("REDFOR")
blueforRadioButton.setChecked(True) blueforRadioButton.setChecked(True)
# Unit Preview
self.blueSideRecap = QtWidgets.QLabel("")
self.blueSideRecap.setFont(CONST.FONT_PRIMARY_I)
self.blueSideRecap.setWordWrap(True)
self.redSideRecap = QtWidgets.QLabel("")
self.redSideRecap.setFont(CONST.FONT_PRIMARY_I)
self.redSideRecap.setWordWrap(True)
# Link form fields # Link form fields
self.registerField('blueFaction', self.blueFactionSelect) self.registerField('blueFaction', self.blueFactionSelect)
self.registerField('redFaction', self.redFactionSelect) self.registerField('redFaction', self.redFactionSelect)
@ -185,14 +206,10 @@ class FactionSelection(QtWidgets.QWizardPage):
sideGroupLayout.addWidget(redforRadioButton) sideGroupLayout.addWidget(redforRadioButton)
sideGroup.setLayout(sideGroupLayout) sideGroup.setLayout(sideGroupLayout)
layout = QtWidgets.QGridLayout() layout = QtWidgets.QVBoxLayout()
layout.addWidget(blueFaction, 0, 0) layout.addWidget(self.factionsGroup)
layout.addWidget(self.blueFactionSelect, 0, 1) layout.addWidget(self.requiredModsGroup)
layout.addWidget(self.blueSideRecap, 1, 0, 1, 2) layout.addWidget(sideGroup)
layout.addWidget(redFaction, 2, 0)
layout.addWidget(self.redFactionSelect, 2, 1)
layout.addWidget(self.redSideRecap, 3, 0, 1, 2)
layout.addWidget(sideGroup, 4, 0, 1, 2)
self.setLayout(layout) self.setLayout(layout)
self.updateUnitRecap() self.updateUnitRecap()
@ -200,8 +217,14 @@ class FactionSelection(QtWidgets.QWizardPage):
self.redFactionSelect.activated.connect(self.updateUnitRecap) self.redFactionSelect.activated.connect(self.updateUnitRecap)
def updateUnitRecap(self): def updateUnitRecap(self):
red_units = db.FACTIONS[self.redFactionSelect.currentText()]["units"]
blue_units = db.FACTIONS[self.blueFactionSelect.currentText()]["units"] self.requiredMods.setText("<ul>")
red_faction = db.FACTIONS[self.redFactionSelect.currentText()]
blue_faction = db.FACTIONS[self.blueFactionSelect.currentText()]
red_units = red_faction["units"]
blue_units = blue_faction["units"]
blue_txt = "" blue_txt = ""
for u in blue_units: for u in blue_units:
@ -217,6 +240,26 @@ class FactionSelection(QtWidgets.QWizardPage):
red_txt = red_txt + "\n" red_txt = red_txt + "\n"
self.redSideRecap.setText(red_txt) self.redSideRecap.setText(red_txt)
has_mod = False
if "requirements" in red_faction.keys():
has_mod = True
for mod in red_faction["requirements"].keys():
self.requiredMods.setText(self.requiredMods.text() + "\n<li>" + mod + ": <a href=\""+red_faction["requirements"][mod]+"\">" + red_faction["requirements"][mod] + "</a></li>")
if "requirements" in blue_faction.keys():
has_mod = True
for mod in blue_faction["requirements"].keys():
if not "requirements" in red_faction.keys() or mod not in red_faction["requirements"].keys():
self.requiredMods.setText(self.requiredMods.text() + "\n<li>" + mod + ": <a href=\""+blue_faction["requirements"][mod]+"\">" + blue_faction["requirements"][mod] + "</a></li>")
if has_mod:
self.requiredMods.setText(self.requiredMods.text() + "</ul>\n\n")
else:
self.requiredMods.setText(self.requiredMods.text() + "<li>None</li></ul>\n")
class TheaterConfiguration(QtWidgets.QWizardPage): class TheaterConfiguration(QtWidgets.QWizardPage):
def __init__(self, parent=None): def __init__(self, parent=None):