diff --git a/Generator/Forces/red/RED Default Armor.miz b/Generator/Forces/red/RED Default Armor.miz
new file mode 100644
index 0000000..17e12e3
Binary files /dev/null and b/Generator/Forces/red/RED Default Armor.miz differ
diff --git a/Generator/MissionGenerator.py b/Generator/MissionGenerator.py
index 15883be..242cde4 100644
--- a/Generator/MissionGenerator.py
+++ b/Generator/MissionGenerator.py
@@ -150,10 +150,8 @@ class Window(QMainWindow, Ui_MainWindow):
"blue_quantity": self.blueqty_spinBox.value(),
"inf_spawn_qty": self.inf_spawn_spinBox.value(),
"apc_spawns_inf": self.apcs_spawn_checkBox.isChecked(),
- "e_transport": self.enemy_transport_checkBox.isChecked(),
- "e_attack_helos": self.enemy_attack_helos_checkBox.isChecked(),
- "e_fighters": self.enemy_fighters_checkBox.isChecked(),
- "e_attack_planes": self.enemy_attack_planes_checkBox.isChecked(),
+ "e_attack_helos": self.e_attack_helos_spinBox.value(),
+ "e_attack_planes": self.e_attack_planes_spinBox.value(),
"crates": self.logistics_crates_checkBox.isChecked(),
"f_awacs": self.awacs_checkBox.isChecked(),
"f_tankers": self.tankers_checkBox.isChecked(),
@@ -163,6 +161,8 @@ class Window(QMainWindow, Ui_MainWindow):
"game_display": self.game_status_checkBox.isChecked(),
"defending": self.defense_checkBox.isChecked(),
"slots": self.slot_template_comboBox.currentText(),
+ "smoke_zone": self.smoke_checkBox.isChecked(),
+ "zone_protect_sams": self.zone_sams_checkBox.isChecked(),
}
os.chdir(self.m.home_dir + '/Generator')
n = ROps.RotorOpsMission()
@@ -177,22 +177,28 @@ class Window(QMainWindow, Ui_MainWindow):
if result["success"]:
print(result["filename"] + "' successfully generated in " + result["directory"])
self.statusbar.showMessage(result["filename"] + "' successfully generated in " + result["directory"], 10000)
- msg = QMessageBox()
- msg.setWindowTitle("Mission Generated")
- msg.setText("Awesome, your mission is ready! It's located in this directory: \n" +
- self.m.output_dir + "\n" +
- "\n" +
- "Next, you should use the DCS Mission Editor to fine tune unit placements. Don't be afraid to edit the missions that this generator produces. \n" +
- "\n" +
- "There are no hidden script changes, everything is visible in the ME. Triggers have been created to help you to add your own actions based on active zone and game status. \n" +
- "\n" +
- "Units can be changed or moved without issue. Player slots can be changed or moved without issue. \n" +
- "\n" +
- "Don't forget, you can also create your own templates that can include any mission options, objects, or even scripts. \n" +
- "\n" +
- "Have fun! \n"
- )
- x = msg.exec_()
+ msg = QMessageBox()
+ msg.setWindowTitle("Mission Generated")
+ msg.setText("Awesome, your mission is ready! It's located in this directory: \n" +
+ self.m.output_dir + "\n" +
+ "\n" +
+ "Next, you should use the DCS Mission Editor to fine tune unit placements. Don't be afraid to edit the missions that this generator produces. \n" +
+ "\n" +
+ "There are no hidden script changes, everything is visible in the ME. Triggers have been created to help you to add your own actions based on active zone and game status. \n" +
+ "\n" +
+ "Units can be changed or moved without issue. Player slots can be changed or moved without issue. \n" +
+ "\n" +
+ "Don't forget, you can also create your own templates that can include any mission options, objects, or even scripts. \n" +
+ "\n" +
+ "Have fun! \n"
+ )
+ x = msg.exec_()
+ elif not result["success"]:
+ print(result["failure_msg"])
+ msg = QMessageBox()
+ msg.setWindowTitle("Error")
+ msg.setText(result["failure_msg"])
+ x = msg.exec_()
diff --git a/Generator/MissionGeneratorUI.py b/Generator/MissionGeneratorUI.py
index c24a113..d1f8dda 100644
--- a/Generator/MissionGeneratorUI.py
+++ b/Generator/MissionGeneratorUI.py
@@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(1140, 826)
+ MainWindow.resize(1209, 900)
font = QtGui.QFont()
font.setPointSize(10)
MainWindow.setFont(font)
@@ -39,7 +39,7 @@ class Ui_MainWindow(object):
self.scenario_label.setFont(font)
self.scenario_label.setObjectName("scenario_label")
self.generateButton = QtWidgets.QPushButton(self.centralwidget)
- self.generateButton.setGeometry(QtCore.QRect(940, 720, 141, 41))
+ self.generateButton.setGeometry(QtCore.QRect(1020, 790, 141, 41))
self.generateButton.setStyleSheet("background-color: white;\n"
"border-style: outset;\n"
"border-width: 2px;\n"
@@ -73,7 +73,7 @@ class Ui_MainWindow(object):
self.redforces_comboBox.setGeometry(QtCore.QRect(170, 230, 291, 31))
self.redforces_comboBox.setObjectName("redforces_comboBox")
self.background_label = QtWidgets.QLabel(self.centralwidget)
- self.background_label.setGeometry(QtCore.QRect(10, 430, 801, 371))
+ self.background_label.setGeometry(QtCore.QRect(-30, 490, 801, 371))
self.background_label.setAutoFillBackground(False)
self.background_label.setStyleSheet("")
self.background_label.setText("")
@@ -113,7 +113,7 @@ class Ui_MainWindow(object):
self.scenario_label_4.setAlignment(QtCore.Qt.AlignCenter)
self.scenario_label_4.setObjectName("scenario_label_4")
self.game_status_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.game_status_checkBox.setGeometry(QtCore.QRect(910, 510, 191, 16))
+ self.game_status_checkBox.setGeometry(QtCore.QRect(1000, 590, 191, 16))
font = QtGui.QFont()
font.setPointSize(9)
self.game_status_checkBox.setFont(font)
@@ -121,67 +121,41 @@ class Ui_MainWindow(object):
self.game_status_checkBox.setTristate(False)
self.game_status_checkBox.setObjectName("game_status_checkBox")
self.voiceovers_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.voiceovers_checkBox.setGeometry(QtCore.QRect(910, 570, 191, 16))
+ self.voiceovers_checkBox.setGeometry(QtCore.QRect(1000, 650, 191, 16))
font = QtGui.QFont()
font.setPointSize(9)
self.voiceovers_checkBox.setFont(font)
self.voiceovers_checkBox.setChecked(True)
self.voiceovers_checkBox.setObjectName("voiceovers_checkBox")
self.logistics_crates_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.logistics_crates_checkBox.setGeometry(QtCore.QRect(910, 320, 251, 31))
+ self.logistics_crates_checkBox.setGeometry(QtCore.QRect(970, 390, 251, 31))
font = QtGui.QFont()
font.setPointSize(11)
self.logistics_crates_checkBox.setFont(font)
self.logistics_crates_checkBox.setObjectName("logistics_crates_checkBox")
self.awacs_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.awacs_checkBox.setGeometry(QtCore.QRect(910, 350, 251, 31))
+ self.awacs_checkBox.setGeometry(QtCore.QRect(970, 420, 251, 31))
font = QtGui.QFont()
font.setPointSize(11)
self.awacs_checkBox.setFont(font)
self.awacs_checkBox.setStatusTip("")
+ self.awacs_checkBox.setChecked(True)
self.awacs_checkBox.setObjectName("awacs_checkBox")
self.tankers_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.tankers_checkBox.setGeometry(QtCore.QRect(910, 380, 251, 31))
+ self.tankers_checkBox.setGeometry(QtCore.QRect(970, 450, 251, 31))
font = QtGui.QFont()
font.setPointSize(11)
self.tankers_checkBox.setFont(font)
+ self.tankers_checkBox.setChecked(True)
self.tankers_checkBox.setObjectName("tankers_checkBox")
self.apcs_spawn_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.apcs_spawn_checkBox.setGeometry(QtCore.QRect(470, 400, 251, 31))
+ self.apcs_spawn_checkBox.setGeometry(QtCore.QRect(500, 400, 251, 31))
font = QtGui.QFont()
font.setPointSize(10)
self.apcs_spawn_checkBox.setFont(font)
self.apcs_spawn_checkBox.setObjectName("apcs_spawn_checkBox")
- self.enemy_transport_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.enemy_transport_checkBox.setEnabled(False)
- self.enemy_transport_checkBox.setGeometry(QtCore.QRect(70, 320, 251, 31))
- font = QtGui.QFont()
- font.setPointSize(11)
- self.enemy_transport_checkBox.setFont(font)
- self.enemy_transport_checkBox.setObjectName("enemy_transport_checkBox")
- self.enemy_attack_helos_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.enemy_attack_helos_checkBox.setEnabled(True)
- self.enemy_attack_helos_checkBox.setGeometry(QtCore.QRect(70, 350, 251, 31))
- font = QtGui.QFont()
- font.setPointSize(11)
- self.enemy_attack_helos_checkBox.setFont(font)
- self.enemy_attack_helos_checkBox.setObjectName("enemy_attack_helos_checkBox")
- self.enemy_fighters_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.enemy_fighters_checkBox.setEnabled(False)
- self.enemy_fighters_checkBox.setGeometry(QtCore.QRect(70, 380, 251, 31))
- font = QtGui.QFont()
- font.setPointSize(11)
- self.enemy_fighters_checkBox.setFont(font)
- self.enemy_fighters_checkBox.setObjectName("enemy_fighters_checkBox")
- self.enemy_attack_planes_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.enemy_attack_planes_checkBox.setEnabled(True)
- self.enemy_attack_planes_checkBox.setGeometry(QtCore.QRect(70, 410, 251, 31))
- font = QtGui.QFont()
- font.setPointSize(11)
- self.enemy_attack_planes_checkBox.setFont(font)
- self.enemy_attack_planes_checkBox.setObjectName("enemy_attack_planes_checkBox")
self.inf_spawn_spinBox = QtWidgets.QSpinBox(self.centralwidget)
- self.inf_spawn_spinBox.setGeometry(QtCore.QRect(680, 360, 71, 31))
+ self.inf_spawn_spinBox.setGeometry(QtCore.QRect(710, 360, 71, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.inf_spawn_spinBox.setFont(font)
@@ -190,7 +164,7 @@ class Ui_MainWindow(object):
self.inf_spawn_spinBox.setProperty("value", 2)
self.inf_spawn_spinBox.setObjectName("inf_spawn_spinBox")
self.smoke_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.smoke_checkBox.setGeometry(QtCore.QRect(910, 540, 191, 16))
+ self.smoke_checkBox.setGeometry(QtCore.QRect(1000, 620, 191, 16))
font = QtGui.QFont()
font.setPointSize(9)
self.smoke_checkBox.setFont(font)
@@ -208,28 +182,28 @@ class Ui_MainWindow(object):
self.forces_hint_label_2.setAlignment(QtCore.Qt.AlignCenter)
self.forces_hint_label_2.setObjectName("forces_hint_label_2")
self.label = QtWidgets.QLabel(self.centralwidget)
- self.label.setGeometry(QtCore.QRect(470, 360, 191, 31))
+ self.label.setGeometry(QtCore.QRect(500, 360, 191, 31))
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.slot_template_comboBox = QtWidgets.QComboBox(self.centralwidget)
- self.slot_template_comboBox.setGeometry(QtCore.QRect(790, 630, 291, 31))
+ self.slot_template_comboBox.setGeometry(QtCore.QRect(870, 700, 291, 31))
self.slot_template_comboBox.setObjectName("slot_template_comboBox")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
- self.label_2.setGeometry(QtCore.QRect(650, 630, 111, 31))
+ self.label_2.setGeometry(QtCore.QRect(750, 700, 111, 31))
font = QtGui.QFont()
font.setPointSize(11)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.scenario_label_6 = QtWidgets.QLabel(self.centralwidget)
- self.scenario_label_6.setGeometry(QtCore.QRect(470, 320, 141, 31))
+ self.scenario_label_6.setGeometry(QtCore.QRect(500, 320, 141, 31))
font = QtGui.QFont()
font.setPointSize(11)
self.scenario_label_6.setFont(font)
self.scenario_label_6.setObjectName("scenario_label_6")
self.force_offroad_checkBox = QtWidgets.QCheckBox(self.centralwidget)
- self.force_offroad_checkBox.setGeometry(QtCore.QRect(910, 480, 191, 16))
+ self.force_offroad_checkBox.setGeometry(QtCore.QRect(1000, 560, 191, 16))
font = QtGui.QFont()
font.setPointSize(9)
self.force_offroad_checkBox.setFont(font)
@@ -242,6 +216,42 @@ class Ui_MainWindow(object):
font.setPointSize(11)
self.defense_checkBox.setFont(font)
self.defense_checkBox.setObjectName("defense_checkBox")
+ self.e_attack_helos_spinBox = QtWidgets.QSpinBox(self.centralwidget)
+ self.e_attack_helos_spinBox.setGeometry(QtCore.QRect(70, 330, 51, 31))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.e_attack_helos_spinBox.setFont(font)
+ self.e_attack_helos_spinBox.setMinimum(0)
+ self.e_attack_helos_spinBox.setMaximum(50)
+ self.e_attack_helos_spinBox.setProperty("value", 2)
+ self.e_attack_helos_spinBox.setObjectName("e_attack_helos_spinBox")
+ self.scenario_label_7 = QtWidgets.QLabel(self.centralwidget)
+ self.scenario_label_7.setGeometry(QtCore.QRect(140, 330, 231, 31))
+ font = QtGui.QFont()
+ font.setPointSize(11)
+ self.scenario_label_7.setFont(font)
+ self.scenario_label_7.setObjectName("scenario_label_7")
+ self.scenario_label_8 = QtWidgets.QLabel(self.centralwidget)
+ self.scenario_label_8.setGeometry(QtCore.QRect(140, 370, 231, 31))
+ font = QtGui.QFont()
+ font.setPointSize(11)
+ self.scenario_label_8.setFont(font)
+ self.scenario_label_8.setObjectName("scenario_label_8")
+ self.e_attack_planes_spinBox = QtWidgets.QSpinBox(self.centralwidget)
+ self.e_attack_planes_spinBox.setGeometry(QtCore.QRect(70, 370, 51, 31))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.e_attack_planes_spinBox.setFont(font)
+ self.e_attack_planes_spinBox.setMinimum(0)
+ self.e_attack_planes_spinBox.setMaximum(50)
+ self.e_attack_planes_spinBox.setProperty("value", 1)
+ self.e_attack_planes_spinBox.setObjectName("e_attack_planes_spinBox")
+ self.zone_sams_checkBox = QtWidgets.QCheckBox(self.centralwidget)
+ self.zone_sams_checkBox.setGeometry(QtCore.QRect(970, 480, 201, 31))
+ font = QtGui.QFont()
+ font.setPointSize(11)
+ self.zone_sams_checkBox.setFont(font)
+ self.zone_sams_checkBox.setObjectName("zone_sams_checkBox")
self.background_label.raise_()
self.scenario_comboBox.raise_()
self.scenario_label.raise_()
@@ -262,10 +272,6 @@ class Ui_MainWindow(object):
self.awacs_checkBox.raise_()
self.tankers_checkBox.raise_()
self.apcs_spawn_checkBox.raise_()
- self.enemy_transport_checkBox.raise_()
- self.enemy_attack_helos_checkBox.raise_()
- self.enemy_fighters_checkBox.raise_()
- self.enemy_attack_planes_checkBox.raise_()
self.inf_spawn_spinBox.raise_()
self.smoke_checkBox.raise_()
self.scenario_label_5.raise_()
@@ -276,9 +282,14 @@ class Ui_MainWindow(object):
self.scenario_label_6.raise_()
self.force_offroad_checkBox.raise_()
self.defense_checkBox.raise_()
+ self.e_attack_helos_spinBox.raise_()
+ self.scenario_label_7.raise_()
+ self.scenario_label_8.raise_()
+ self.e_attack_planes_spinBox.raise_()
+ self.zone_sams_checkBox.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 1140, 26))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 1209, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
@@ -329,14 +340,6 @@ class Ui_MainWindow(object):
self.tankers_checkBox.setText(_translate("MainWindow", "Friendly Tankers"))
self.apcs_spawn_checkBox.setStatusTip(_translate("MainWindow", "Friendly/enemy APCs will drop infantry when reaching a new conflict zone."))
self.apcs_spawn_checkBox.setText(_translate("MainWindow", "APCs Spawn Infantry"))
- self.enemy_transport_checkBox.setStatusTip(_translate("MainWindow", "Not yet implemented."))
- self.enemy_transport_checkBox.setText(_translate("MainWindow", "Enemy Transport Helicopters"))
- self.enemy_attack_helos_checkBox.setStatusTip(_translate("MainWindow", "Not yet implemented."))
- self.enemy_attack_helos_checkBox.setText(_translate("MainWindow", "Enemy Attack Helicopters"))
- self.enemy_fighters_checkBox.setStatusTip(_translate("MainWindow", "Not yet implemented."))
- self.enemy_fighters_checkBox.setText(_translate("MainWindow", "Enemy Fighter Planes"))
- self.enemy_attack_planes_checkBox.setStatusTip(_translate("MainWindow", "Not yet implemented."))
- self.enemy_attack_planes_checkBox.setText(_translate("MainWindow", "Enemy Ground Attack Planes"))
self.inf_spawn_spinBox.setStatusTip(_translate("MainWindow", "This value is multiplied by the number of spawn zones in the mission template."))
self.smoke_checkBox.setStatusTip(_translate("MainWindow", "Not yet implemented."))
self.smoke_checkBox.setText(_translate("MainWindow", "Smoke Active Zone"))
@@ -349,6 +352,12 @@ class Ui_MainWindow(object):
self.force_offroad_checkBox.setStatusTip(_translate("MainWindow", "May help prevent long travel times or pathfinding issues. Tip: You can change this dynamically from mission triggers."))
self.force_offroad_checkBox.setText(_translate("MainWindow", "Force Offroad"))
self.defense_checkBox.setText(_translate("MainWindow", "Defensive Mode"))
+ self.e_attack_helos_spinBox.setStatusTip(_translate("MainWindow", "Approximate number of enemy attack helicopter group spawns."))
+ self.scenario_label_7.setText(_translate("MainWindow", "Enemy Attack Helicopters"))
+ self.scenario_label_8.setText(_translate("MainWindow", "Enemy Attack Planes"))
+ self.e_attack_planes_spinBox.setStatusTip(_translate("MainWindow", "Approximate number of enemy attack plane group spawns."))
+ self.zone_sams_checkBox.setStatusTip(_translate("MainWindow", "Inactive conflict zones will be protected by SAMs. When a zone is cleared, SAMs at next active zone will be destroyed."))
+ self.zone_sams_checkBox.setText(_translate("MainWindow", "Inactive Zone SAMs"))
self.action_generateMission.setText(_translate("MainWindow", "_generateMission"))
self.action_scenarioSelected.setText(_translate("MainWindow", "_scenarioSelected"))
self.action_blueforcesSelected.setText(_translate("MainWindow", "_blueforcesSelected"))
diff --git a/Generator/MissionGeneratorUI.ui b/Generator/MissionGeneratorUI.ui
index be27f4a..3c32722 100644
--- a/Generator/MissionGeneratorUI.ui
+++ b/Generator/MissionGeneratorUI.ui
@@ -6,8 +6,8 @@
0
0
- 1140
- 826
+ 1209
+ 900
@@ -75,8 +75,8 @@
- 940
- 720
+ 1020
+ 790
141
41
@@ -183,8 +183,8 @@ p, li { white-space: pre-wrap; }
- 10
- 430
+ -30
+ 490
801
371
@@ -312,8 +312,8 @@ p, li { white-space: pre-wrap; }
- 910
- 510
+ 1000
+ 590
191
16
@@ -339,8 +339,8 @@ p, li { white-space: pre-wrap; }
- 910
- 570
+ 1000
+ 650
191
16
@@ -363,8 +363,8 @@ p, li { white-space: pre-wrap; }
- 910
- 320
+ 970
+ 390
251
31
@@ -384,8 +384,8 @@ p, li { white-space: pre-wrap; }
- 910
- 350
+ 970
+ 420
251
31
@@ -401,12 +401,15 @@ p, li { white-space: pre-wrap; }
Friendly AWACS
+
+ true
+
- 910
- 380
+ 970
+ 450
251
31
@@ -419,11 +422,14 @@ p, li { white-space: pre-wrap; }
Friendly Tankers
+
+ true
+
- 470
+ 500
400
251
31
@@ -441,106 +447,10 @@ p, li { white-space: pre-wrap; }
APCs Spawn Infantry
-
-
- false
-
-
-
- 70
- 320
- 251
- 31
-
-
-
-
- 11
-
-
-
- Not yet implemented.
-
-
- Enemy Transport Helicopters
-
-
-
-
- true
-
-
-
- 70
- 350
- 251
- 31
-
-
-
-
- 11
-
-
-
- Not yet implemented.
-
-
- Enemy Attack Helicopters
-
-
-
-
- false
-
-
-
- 70
- 380
- 251
- 31
-
-
-
-
- 11
-
-
-
- Not yet implemented.
-
-
- Enemy Fighter Planes
-
-
-
-
- true
-
-
-
- 70
- 410
- 251
- 31
-
-
-
-
- 11
-
-
-
- Not yet implemented.
-
-
- Enemy Ground Attack Planes
-
-
- 680
+ 710
360
71
31
@@ -567,8 +477,8 @@ p, li { white-space: pre-wrap; }
- 910
- 540
+ 1000
+ 620
191
16
@@ -628,7 +538,7 @@ p, li { white-space: pre-wrap; }
- 470
+ 500
360
191
31
@@ -646,8 +556,8 @@ p, li { white-space: pre-wrap; }
- 790
- 630
+ 870
+ 700
291
31
@@ -659,8 +569,8 @@ p, li { white-space: pre-wrap; }
- 650
- 630
+ 750
+ 700
111
31
@@ -677,7 +587,7 @@ p, li { white-space: pre-wrap; }
- 470
+ 500
320
141
31
@@ -695,8 +605,8 @@ p, li { white-space: pre-wrap; }
- 910
- 480
+ 1000
+ 560
191
16
@@ -737,6 +647,117 @@ p, li { white-space: pre-wrap; }
Defensive Mode
+
+
+
+ 70
+ 330
+ 51
+ 31
+
+
+
+
+ 12
+
+
+
+ Approximate number of enemy attack helicopter group spawns.
+
+
+ 0
+
+
+ 50
+
+
+ 2
+
+
+
+
+
+ 140
+ 330
+ 231
+ 31
+
+
+
+
+ 11
+
+
+
+ Enemy Attack Helicopters
+
+
+
+
+
+ 140
+ 370
+ 231
+ 31
+
+
+
+
+ 11
+
+
+
+ Enemy Attack Planes
+
+
+
+
+
+ 70
+ 370
+ 51
+ 31
+
+
+
+
+ 12
+
+
+
+ Approximate number of enemy attack plane group spawns.
+
+
+ 0
+
+
+ 50
+
+
+ 1
+
+
+
+
+
+ 970
+ 480
+ 201
+ 31
+
+
+
+
+ 11
+
+
+
+ Inactive conflict zones will be protected by SAMs. When a zone is cleared, SAMs at next active zone will be destroyed.
+
+
+ Inactive Zone SAMs
+
+
background_label
scenario_comboBox
scenario_label
@@ -757,10 +778,6 @@ p, li { white-space: pre-wrap; }
awacs_checkBox
tankers_checkBox
apcs_spawn_checkBox
- enemy_transport_checkBox
- enemy_attack_helos_checkBox
- enemy_fighters_checkBox
- enemy_attack_planes_checkBox
inf_spawn_spinBox
smoke_checkBox
scenario_label_5
@@ -771,13 +788,18 @@ p, li { white-space: pre-wrap; }
scenario_label_6
force_offroad_checkBox
defense_checkBox
+ e_attack_helos_spinBox
+ scenario_label_7
+ scenario_label_8
+ e_attack_planes_spinBox
+ zone_sams_checkBox