Improved the faction selection screen in the new game wizard.

This commit is contained in:
Khopa 2020-11-08 21:57:26 +01:00
parent 690f3d0f13
commit 2c0ca5803f
62 changed files with 152 additions and 98 deletions

View File

@ -5,10 +5,9 @@ from typing import List, Optional
from PySide2 import QtGui, QtWidgets
from PySide2.QtCore import QItemSelectionModel, QPoint, Qt
from PySide2.QtWidgets import QVBoxLayout
from dcs.task import CAP, CAS
from PySide2.QtWidgets import QVBoxLayout, QTextEdit
from jinja2 import Environment, FileSystemLoader, select_autoescape
import qt_ui.uiconstants as CONST
from game import db
from game.settings import Settings
from qt_ui.windows.newgame.QCampaignList import (
@ -39,7 +38,6 @@ class NewGameWizard(QtWidgets.QWizard):
self.generatedGame = None
def accept(self):
logging.info("New Game Wizard accept")
logging.info("======================")
@ -112,7 +110,9 @@ class FactionSelection(QtWidgets.QWizardPage):
# Factions selection
self.factionsGroup = QtWidgets.QGroupBox("Factions")
self.factionsGroupLayout = QtWidgets.QGridLayout()
self.factionsGroupLayout = QtWidgets.QHBoxLayout()
self.blueGroupLayout = QtWidgets.QGridLayout()
self.redGroupLayout = QtWidgets.QGridLayout()
blueFaction = QtWidgets.QLabel("<b>Player Faction :</b>")
self.blueFactionSelect = QtWidgets.QComboBox()
@ -124,6 +124,13 @@ class FactionSelection(QtWidgets.QWizardPage):
self.redFactionSelect = QtWidgets.QComboBox()
redFaction.setBuddy(self.redFactionSelect)
# Faction description
self.blueFactionDescription = QTextEdit("")
self.blueFactionDescription.setReadOnly(True)
self.redFactionDescription = QTextEdit("")
self.redFactionDescription.setReadOnly(True)
# Setup default selected factions
for i, r in enumerate(db.FACTIONS):
self.redFactionSelect.addItem(r)
@ -132,20 +139,16 @@ class FactionSelection(QtWidgets.QWizardPage):
if r == "USA 2005":
self.blueFactionSelect.setCurrentIndex(i)
self.blueSideRecap = QtWidgets.QLabel("")
self.blueSideRecap.setFont(CONST.FONT_PRIMARY_I)
self.blueSideRecap.setWordWrap(True)
self.blueGroupLayout.addWidget(blueFaction, 0, 0)
self.blueGroupLayout.addWidget(self.blueFactionSelect, 0, 1)
self.blueGroupLayout.addWidget(self.blueFactionDescription, 1, 0, 1, 2)
self.redSideRecap = QtWidgets.QLabel("")
self.redSideRecap.setFont(CONST.FONT_PRIMARY_I)
self.redSideRecap.setWordWrap(True)
self.redGroupLayout.addWidget(redFaction, 0, 0)
self.redGroupLayout.addWidget(self.redFactionSelect, 0, 1)
self.redGroupLayout.addWidget(self.redFactionDescription, 1, 0, 1, 2)
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.factionsGroupLayout.addLayout(self.blueGroupLayout)
self.factionsGroupLayout.addLayout(self.redGroupLayout)
self.factionsGroup.setLayout(self.factionsGroupLayout)
# Create required mod layout
@ -171,39 +174,44 @@ class FactionSelection(QtWidgets.QWizardPage):
def updateUnitRecap(self):
self.requiredMods.setText("<ul>")
red_faction = db.FACTIONS[self.redFactionSelect.currentText()]
blue_faction = db.FACTIONS[self.blueFactionSelect.currentText()]
red_units = red_faction.aircrafts
blue_units = blue_faction.aircrafts
env = Environment(
loader=FileSystemLoader("resources/ui/templates"),
autoescape=select_autoescape(
disabled_extensions=("",),
default_for_string=True,
default=True,
),
trim_blocks=True,
lstrip_blocks=True,
)
template = env.get_template("factiontemplate_EN.j2")
blue_txt = ""
for u in blue_units:
if u in db.UNIT_BY_TASK[CAP] or u in db.UNIT_BY_TASK[CAS]:
blue_txt = blue_txt + u.id + ", "
blue_txt = blue_txt + "\n"
self.blueSideRecap.setText(blue_txt)
blue_faction_txt = template.render({"faction": blue_faction})
red_faction_txt = template.render({"faction": red_faction})
red_txt = ""
for u in red_units:
if u in db.UNIT_BY_TASK[CAP] or u in db.UNIT_BY_TASK[CAS]:
red_txt = red_txt + u.id + ", "
red_txt = red_txt + "\n"
self.redSideRecap.setText(red_txt)
self.blueFactionDescription.setText(blue_faction_txt)
self.redFactionDescription.setText(red_faction_txt)
# Compute mod requirements txt
self.requiredMods.setText("<ul>")
has_mod = False
if len(red_faction.requirements.keys()) > 0:
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>")
self.requiredMods.setText(
self.requiredMods.text() + "\n<li>" + mod + ": <a href=\"" + red_faction.requirements[mod] + "\">" +
red_faction.requirements[mod] + "</a></li>")
if len(blue_faction.requirements.keys()) > 0:
has_mod = True
for mod in blue_faction.requirements.keys():
if 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>")
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")
@ -336,7 +344,7 @@ class MiscOptions(QtWidgets.QWizardPage):
self.registerField('no_lha', no_lha)
supercarrier = QtWidgets.QCheckBox()
self.registerField('supercarrier', supercarrier)
no_player_navy= QtWidgets.QCheckBox()
no_player_navy = QtWidgets.QCheckBox()
self.registerField('no_player_navy', no_player_navy)
no_enemy_navy = QtWidgets.QCheckBox()
self.registerField('no_enemy_navy', no_enemy_navy)

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "Allies 1944",
"authors": "Khopa",
"description": "",
"description": "<p>A generic WW2 ally factions, with all their WW2 units.</p>",
"aircrafts": [
"P_51D",
"P_51D_30_NA",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "Allies 1944 (Free)",
"authors": "Khopa",
"description": "A WW2 ally faction that does not requires the paid WW2 asset pack.",
"description": "<p>A generic WW2 ally faction that does not requires the paid WW2 asset pack.</p>",
"aircrafts": [
"P_51D",
"P_51D_30_NA",

View File

@ -2,7 +2,7 @@
"country": "Australia",
"name": "Australia 2005",
"authors": "Khopa",
"description": "",
"description": "<p>The Australian army in 2005.</p><p>Some units might not be accurate, but were picked to represent at best this army.</p>",
"aircrafts": [
"FA_18C_hornet",
"UH_1H",

View File

@ -2,7 +2,7 @@
"country": "Combined Joint Task Forces Blue",
"name": "Bluefor Coldwar",
"authors": "Khopa",
"description": "",
"description": "<p>A generic bluefor coldwar faction.</p>",
"aircrafts": [
"F_14B",
"F_4E",

View File

@ -2,7 +2,7 @@
"country": "Combined Joint Task Forces Blue",
"name": "Bluefor Coldwar (With A4)",
"authors": "Khopa",
"description": "",
"description": "<p>A generic bluefor coldwar faction. (With the A-4E-C mod)</p>",
"aircrafts": [
"F_14B",
"F_4E",

View File

@ -2,7 +2,7 @@
"country": "Combined Joint Task Forces Blue",
"name": "Bluefor Coldwar (With A4 & MB339)",
"authors": "Khopa",
"description": "",
"description": "<p>A generic bluefor coldwar faction. (With the A-4E-C and the MB-339 mods)</p>",
"aircrafts": [
"F_14B",
"F_4E",

View File

@ -2,7 +2,7 @@
"country": "Combined Joint Task Forces Blue",
"name": "Bluefor Modern",
"authors": "Khopa",
"description": "",
"description": "<p>A generic bluefor modern faction. This also includes many redfor units and is meant to be a faction that has access to most modern flyable modules.</p>",
"aircrafts": [
"F_14B",
"F_15C",

View File

@ -2,7 +2,7 @@
"country": "Canada",
"name": "Canada 2005",
"authors": "Khopa",
"description": "",
"description": "<p>Canada in the 2000s, an F/A-18C Hornet focused faction.</p>",
"aircrafts": [
"FA_18C_hornet",
"UH_1H",

View File

@ -2,7 +2,7 @@
"country": "China",
"name": "China 2010",
"authors": "Khopa",
"description": "",
"description": "<p>China in the late 2000s, early 2010s.</p>",
"aircrafts": [
"MiG_21Bis",
"Su_30",

View File

@ -2,7 +2,7 @@
"country": "France",
"name": "France 1995",
"authors": "Khopa",
"description": "",
"description": "<p>France in the late 90s before Rafale introduction. A Mirage-2000 centric faction choice.</p>",
"aircrafts": [
"M_2000C",
"Mirage_2000_5",

View File

@ -2,7 +2,7 @@
"country": "France",
"name": "France 2005 (Modded)",
"authors": "Khopa",
"description": "",
"description": "<p>France in the mid, late 2000s, using the Rafale mod, and Frenchpack's units.</p>",
"aircrafts": [
"M_2000C",
"Mirage_2000_5",

View File

@ -2,7 +2,7 @@
"country": "Third Reich",
"name": "Germany 1942",
"authors": "Khopa",
"description": "",
"description": "<p>Germany 1942, is a faction that does not use the late war german units such as the Tiger tank, so it's a bit easier to perform CAS against them.</p>",
"aircrafts": [
"FW_190A8",
"FW_190D9",

View File

@ -2,7 +2,7 @@
"country": "Third Reich",
"name": "Germany 1944",
"authors": "Khopa",
"description": "",
"description": "<p>Late war Germany with access to all the late-war ground units such as the Tiger and Tiger II tanks.</p>",
"aircrafts": [
"FW_190A8",
"FW_190D9",

View File

@ -2,7 +2,7 @@
"country": "Third Reich",
"name": "Germany 1944 (Free)",
"authors": "Khopa",
"description": "",
"description": "<p>WW2 germany faction that does not require the WW2 asset pack.</p>",
"aircrafts": [
"FW_190A8",
"FW_190D9",

View File

@ -2,7 +2,7 @@
"country": "Germany",
"name": "Germany 1990",
"authors": "Khopa",
"description": "",
"description": "<p>1990s reunited Germany.</p>",
"aircrafts": [
"MiG_29G",
"Tornado_IDS",

View File

@ -2,7 +2,7 @@
"country": "India",
"name": "India 2010",
"authors": "Khopa",
"description": "",
"description": "<p>Indian faction in the late 2000s.</p>",
"aircrafts": [
"Mirage_2000_5",
"M_2000C",

View File

@ -2,7 +2,7 @@
"country": "Insurgents",
"name": "Insurgents",
"authors": "Khopa",
"description": "",
"description": "<p>Insurgents faction.</p>",
"aircrafts": [
],
"frontline_units": [
@ -12,7 +12,7 @@
"AAA_ZU_23_Insurgent_on_Ural_375"
],
"artillery_units": [
"MLRS_9K57_Uragan_BM_27",
"MLRS_BM_21_Grad",
"SPH_2S19_Msta"
],
"logistics_units": [

View File

@ -2,7 +2,7 @@
"country": "Insurgents",
"name": "Insurgents (Modded)",
"authors": "Khopa",
"description": "",
"description": "<p>Insurgents faction using the modded insurgents units from the frenchpack mods.</p>",
"aircrafts": [
],
"frontline_units": [
@ -13,7 +13,7 @@
"AAA_ZU_23_Insurgent_on_Ural_375"
],
"artillery_units": [
"MLRS_9K57_Uragan_BM_27",
"MLRS_BM_21_Grad",
"SPH_2S19_Msta"
],
"logistics_units": [

View File

@ -2,7 +2,7 @@
"country": "Iran",
"name": "Iran 2015",
"authors": "Khopa",
"description": "",
"description": "<p>Iranian 2010s faction</p>",
"aircrafts": [
"MiG_21Bis",
"MiG_29A",

View File

@ -2,7 +2,7 @@
"country": "Israel",
"name": "Israel 1948",
"authors": "Khopa",
"description": "",
"description": "<p>Israel during the 1948 Arab-Israeli war.</p>",
"aircrafts": [
"SpitfireLFMkIXCW",
"SpitfireLFMkIX",

View File

@ -2,7 +2,7 @@
"country": "Israel",
"name": "Israel 1973",
"authors": "Khopa",
"description": "",
"description": "<p>Israel during the 1973 Yom Kippur War.</p>",
"aircrafts": [
"F_4E",
"A_4E_C",

View File

@ -2,7 +2,7 @@
"country": "Israel",
"name": "Israel 1982",
"authors": "Khopa",
"description": "",
"description": "<p>Israel during the 1982 war with Lebanon.</p>",
"aircrafts": [
"F_4E",
"A_4E_C",

View File

@ -2,7 +2,7 @@
"country": "Israel",
"name": "Israel 2000",
"authors": "Khopa",
"description": "",
"description": "<p>Modern Israeli faction.</p>",
"aircrafts": [
"F_4E",
"F_15C",

View File

@ -2,7 +2,7 @@
"country": "Italy",
"name": "Italy 1990",
"authors": "Khopa",
"description": "",
"description": "<p>Italy in the 90s.</p>",
"aircrafts": [
"Tornado_IDS",
"AV8BNA",

View File

@ -2,7 +2,7 @@
"country": "Italy",
"name": "Italy 1990 (With MB339)",
"authors": "Khopa",
"description": "",
"description": "<p>Italy in the 90s, with the MB339 mod.</p>",
"aircrafts": [
"Tornado_IDS",
"AV8BNA",

View File

@ -2,7 +2,7 @@
"country": "Japan",
"name": "Japan 2005",
"authors": "Khopa",
"description": "",
"description": "<p>Japanese self defense force, F-15C standing as F-15J, and F-16 as Mitsubishi F-2.</p><p>Ground units were also chosen to fit the existing vehicles of the japanese forces</p>",
"aircrafts": [
"F_15C",
"F_16C_50",

View File

@ -2,7 +2,7 @@
"country": "Libya",
"name": "Libya 2011",
"authors": "Khopa",
"description": "",
"description": "<p>Gaddafi's Lybian forces during the 2011 international intervention</p>",
"aircrafts": [
"MiG_21Bis",
"MiG_23MLD",

View File

@ -2,7 +2,7 @@
"country": "The Netherlands",
"name": "Netherlands 1990",
"authors": "Khopa",
"description": "",
"description": "<p>Netherlands forces in the 90s.</p>",
"aircrafts": [
"F_16C_50",
"F_5E_3",

View File

@ -2,7 +2,7 @@
"country": "North Korea",
"name": "North Korea 2000",
"authors": "Khopa",
"description": "",
"description": "<p>North Korean army in the 2000s.</p>",
"aircrafts": [
"MiG_15bis",
"MiG_19P",

View File

@ -2,7 +2,7 @@
"country": "Pakistan",
"name": "Pakistan 2015",
"authors": "Khopa",
"description": "",
"description": "<p>Pakistan circa 2015 for JF-17 and F-16 enthusiasts.</p>",
"aircrafts": [
"JF_17",
"F_16C_50",

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Private Military Company - Russian",
"authors": "Khopa",
"description": "A private military company using Russian units.",
"description": "<p>A private military company using Russian units.</p>",
"aircrafts": [
"L_39C",
"L_39ZA",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "Private Military Company - USA",
"authors": "Khopa",
"description": "A private military company using western units.",
"description": "<p>A private military company using western units.</p>",
"aircrafts": [
"C_101CC",
"UH_1H",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "Private Military Company - USA (MB339)",
"authors": "Khopa",
"description": "A private military company using western units (And using the MB339 mod).",
"description": "<p>A private military company using western units (And using the MB339 mod).</p>",
"aircrafts": [
"MB_339PAN",
"C_101CC",

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Russia 1955",
"authors": "Khopa",
"description": "",
"description": "<p>Soviet army around 1955, during the Korean War</p>",
"aircrafts": [
"MiG_15bis"
],

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Russia 1965",
"authors": "Khopa",
"description": "",
"description": "<p>Soviet army in the 60s, ideal to fly the Mig-19 or the Mig-21.</p>",
"aircrafts": [
"MiG_15bis",
"MiG_19P",

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Russia 1975",
"authors": "Khopa",
"description": "",
"description": "<p>Soviet army in the late 70s, using their prototype Mig-29A.</p>",
"aircrafts": [
"MiG_21Bis",
"MiG_23MLD",

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Russia 1990",
"authors": "Khopa",
"description": "",
"description": "<p>Soviet/Russian army in the 90s.</p>",
"aircrafts": [
"MiG_25PD",
"MiG_29S",

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Russia 2010",
"authors": "Khopa",
"description": "",
"description": "<p>Russian army in the early 2010s.</p>",
"aircrafts": [
"MiG_29S",
"MiG_31",

View File

@ -2,7 +2,7 @@
"country": "Russia",
"name": "Russia 2020 (Modded)",
"authors": "Khopa",
"description": "",
"description": "<p>Russia in 2020, using the Su-57 mod by Cubanace.</p>",
"aircrafts": [
"MiG_29S",
"MiG_31",

View File

@ -2,7 +2,7 @@
"country": "Spain",
"name": "Spain 1990",
"authors": "Khopa",
"description": "",
"description": "<p>Spain in the 90s</p>",
"aircrafts": [
"FA_18C_hornet",
"AV8BNA",

View File

@ -2,7 +2,7 @@
"country": "Sweden",
"name": "Sweden 1990",
"authors": "Khopa",
"description": "",
"description": "<p>Sweden in the 90s.</p><p>Note : Since we're missing the Draken and the Air-to-Air variant of the Viggen, this faction will struggle in air-to-air scenarios.</p>",
"aircrafts": [
"AJS37",
"UH_1H"

View File

@ -2,7 +2,7 @@
"country": "Syria",
"name": "Syria 1948",
"authors": "Khopa",
"description": "",
"description": "<p>Syria and Arab armies in the 1948 war against Israel.</p>",
"aircrafts": [
"SpitfireLFMkIX",
"SpitfireLFMkIXCW"

View File

@ -2,7 +2,7 @@
"country": "Syria",
"name": "Syria 1967",
"authors": "Khopa",
"description": "",
"description": "<p>Syria and Arab armies in the 1967 6 days war against Israel.</p>",
"aircrafts": [
"MiG_15bis",
"MiG_19P",

View File

@ -2,7 +2,7 @@
"country": "Syria",
"name": "Syria 1967 (With WW2 Weapons)",
"authors": "Khopa",
"description": "(Yes Syria was still using a few Panzer IV and Stug in Yom Kippur War)",
"description": "<p>Syria and Arab armies in the 1967 6 days war against Israel. Using WW2 units to be more accurate (Yes, Syria used Panzer IV, Stug III and Jagdpanzer IV during this war)</p>",
"aircrafts": [
"MiG_15bis",
"MiG_19P",

View File

@ -2,7 +2,7 @@
"country": "Syria",
"name": "Syria 1973",
"authors": "Khopa",
"description": "",
"description": "<p>Syria and Arab armies during the Yom Kippur War</p>" ,
"aircrafts": [
"MiG_21Bis",
"MiG_19P",

View File

@ -2,7 +2,7 @@
"country": "Syria",
"name": "Syria 1982",
"authors": "Khopa",
"description": "",
"description": "<p>Syria and Arab armies in the 1982 invasion of Lebanon</p>",
"aircrafts": [
"MiG_19P",
"MiG_21Bis",

View File

@ -2,7 +2,7 @@
"country": "Syria",
"name": "Syria 2011",
"authors": "Khopa",
"description": "",
"description": "<p>Syrian Arab Army at the start of the Syrian Civil War.</p>",
"aircrafts": [
"MiG_21Bis",
"MiG_23MLD",

View File

@ -2,7 +2,7 @@
"country": "Turkey",
"name": "Turkey 2005",
"authors": "Khopa",
"description": "",
"description": "<p>Turkish army in the mid/late 2000s.</p>",
"aircrafts": [
"F_16C_50",
"F_4E",

View File

@ -2,7 +2,7 @@
"country": "United Arab Emirates",
"name": "United Arab Emirates 2005",
"authors": "Khopa",
"description": "",
"description": "<p>UAR army in the 2000s.</p>",
"aircrafts": [
"M_2000C",
"Mirage_2000_5",

View File

@ -2,7 +2,7 @@
"country": "UK",
"name": "United Kingdom 1944",
"authors": "Khopa",
"description": "",
"description": "<p>United Kingdom army in 1944.</p>",
"aircrafts": [
"P_51D",
"P_51D_30_NA",

View File

@ -2,7 +2,7 @@
"country": "UK",
"name": "United Kingdom 1990",
"authors": "Khopa",
"description": "",
"description": "<p>United Kingdom Army in the 1990s.</p>",
"aircrafts": [
"Tornado_GR4",
"AV8BNA",

View File

@ -2,7 +2,7 @@
"country": "Ukraine",
"name": "Ukraine 2010",
"authors": "Khopa",
"description": "",
"description": "<p>Ukrainian army in the 2010s.</p>",
"aircrafts": [
"Su_25",
"Su_25T",

View File

@ -2,7 +2,7 @@
"country": "USAF Aggressors",
"name": "USAF Aggressors",
"authors": "Khopa",
"description": "",
"description": "<p>USAF aggresors.</p>",
"aircrafts": [
"F_15C",
"F_15E",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 1944",
"authors": "Khopa",
"description": "",
"description": "<p>US army in 1944, western front.</p>",
"aircrafts": [
"P_51D",
"P_51D_30_NA",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 1955",
"authors": "Khopa",
"description": "",
"description": "<p>US army in the 50s, circa Korean War.</p>",
"aircrafts": [
"F_86F_Sabre",
"P_51D",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 1960",
"authors": "Khopa",
"description": "",
"description": "<p>US army in the 60s, pre-Vietnam war.</p>",
"aircrafts": [
"F_86F_Sabre",
"P_51D",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 1965",
"authors": "Khopa",
"description": "",
"description": "<p>US army in the late 60s, during Vietnam war.</p>",
"aircrafts": [
"F_5E_3",
"F_4E",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 1975",
"authors": "Khopa",
"description": "",
"description": "<p>US army in the 70s at the end of the war in Vietnam.</p>",
"aircrafts": [
"F_5E_3",
"F_4E",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 1990",
"authors": "Khopa",
"description": "",
"description": "<p>US army in the 90s, Gulf War/Desert Storm.</p>",
"aircrafts": [
"F_15C",
"F_15E",

View File

@ -2,7 +2,7 @@
"country": "USA",
"name": "USA 2005",
"authors": "Khopa",
"description": "",
"description": "<p>USA in the 2000s.</p>",
"aircrafts": [
"F_15C",
"F_15E",

View File

@ -0,0 +1,46 @@
{{ faction.description|safe }}
<br/>
<strong>Author(s):</strong> {{ faction.authors }}
<br/><br/>
<strong>Available airplanes:</strong>
<ul>
{% for aircraft in faction.aircrafts %}
<li>{{aircraft.id}}</li>
{% endfor %}
</ul>
<br/>
<strong>Frontlines vehicles:</strong>
<ul>
{% for vehicle in faction.frontline_units %}
<li>{{vehicle.id}}</li>
{% endfor %}
</ul>
<br/>
<strong>Artillery units:</strong>
<ul>
{% for arty in faction.artillery_units %}
<li>{{arty.id}}</li>
{% endfor %}
</ul>
<br/>
<strong>Air defenses :</strong>
<ul>
{% for sam in faction.sams %}
<li>{{sam}}</li>
{% endfor %}
</ul>
<br/>
<strong>Short range air defenses :</strong>
<ul>
{% for shorad in faction.shorads %}
<li>{{shorad}}</li>
{% endfor %}
</ul>
<br/>