mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Added more Syria campaigns
This commit is contained in:
parent
8f7a8edde4
commit
6ea694bc7e
20
changelog.md
20
changelog.md
@ -2,20 +2,24 @@
|
||||
|
||||
## Features/Improvements :
|
||||
|
||||
* **[Campaign Generator]** Added Syria map support [TODO]
|
||||
* **[Campaign Generator]** Added 4 campaigns for the Syria map [TODO]
|
||||
* **[Campaign Generator]** Added 2 smaller scale campaign for Persian Gulf map
|
||||
* **[Campaign Generator]** Added Syria map
|
||||
* **[Campaign Generator]** Added 5 campaigns for the Syria map
|
||||
* **[Campaign Generator]** Added 2 small scale campaign for Persian Gulf map
|
||||
* **[Units/Factions]** Added factions for Syria map : Syria 2011, Arab Armies 1982, 1973, 1968, 1948, Israel 1982, 1973, 1948
|
||||
* **[Base Menu]** Budget is visible in recruitment menu. (Thanks to Github contributor root0fall)
|
||||
* **[Misc]** Added error message in mission when state file can not be written.
|
||||
* **[Units/Factions]** China, Pakistan, UAE will now use the new WingLoong drone instead of MQ-9 reaper
|
||||
* **[Misc]** Added error message in mission when the state file can not be written
|
||||
* **[Units/Factions]** China, Pakistan, UAE will now use the new WingLoong drone as JTAC instead of the MQ-9 Reaper
|
||||
* **[Units/Factions]** Minor changes to Syria 2011 and Turkey 2005 factions
|
||||
|
||||
## Fixed issues :
|
||||
|
||||
* **[Mission Generator]** Caucasus terrain improvement on exclusions zone (added forests between Vaziani and Beslan to exlusion zones)
|
||||
* **[Mission Generator]** The first unit of every base defenses group could not be controlled by Combined Arms.
|
||||
* **[Mission Generator]** Fixed list of flights not refreshing when changing the mission departure (T+).
|
||||
* **[Mission Generator]** Caucasus terrain improvement on exclusions zone (added forests between Vaziani and Beslan to exclusion zones)
|
||||
* **[Mission Generator]** The first unit of every base defenses group could not be controlled with Combined Arms.
|
||||
* **[Mission Generator]** Reduced generated helicopter altitude for CAS missions
|
||||
* **[Mission Generator]** F-16C default CAS payload was asymmetric, fixed.
|
||||
* **[Mission Generator]** AH-1W couldn't be bought, and added default payloads.
|
||||
* **[UI/UX]** Fixed Mi-28N missing thumbnail
|
||||
* **[UI/UX]** Fixed list of flights not refreshing when changing the mission departure (T+).
|
||||
|
||||
# 2.0.11
|
||||
|
||||
|
||||
@ -472,7 +472,8 @@ UNIT_BY_TASK = {
|
||||
Rafale_A_S,
|
||||
WingLoong_I,
|
||||
MQ_9_Reaper,
|
||||
RQ_1A_Predator
|
||||
RQ_1A_Predator,
|
||||
AH_1W
|
||||
],
|
||||
Transport: [
|
||||
IL_76MD,
|
||||
@ -789,8 +790,8 @@ FACTIONS = {
|
||||
|
||||
"Arab Armies 1982": Syria_1982,
|
||||
"Arab Armies 1973": Syria_1973,
|
||||
"Arab Armies 1967 (WW2 Pack)": Syria_1967,
|
||||
"Arab Armies 1967": Syria_1967_WW2_Weapons,
|
||||
"Arab Armies 1967 (WW2 Pack)": Syria_1967_WW2_Weapons,
|
||||
"Arab Armies 1967": Syria_1967,
|
||||
"Arab League 1948": Arab_Armies_1948,
|
||||
|
||||
"China 2010": China_2010,
|
||||
@ -957,6 +958,7 @@ PLANE_PAYLOAD_OVERRIDES = {
|
||||
MQ_9_Reaper: COMMON_OVERRIDE,
|
||||
RQ_1A_Predator: COMMON_OVERRIDE,
|
||||
WingLoong_I: COMMON_OVERRIDE,
|
||||
AH_1W: COMMON_OVERRIDE,
|
||||
|
||||
AH_64D:{
|
||||
CAS: "AGM-114K*16"
|
||||
@ -1066,6 +1068,7 @@ LHA_CAPABLE = [
|
||||
SA342Mistral
|
||||
]
|
||||
|
||||
|
||||
"""
|
||||
---------- END OF CONFIGURATION SECTION
|
||||
"""
|
||||
|
||||
@ -12,11 +12,13 @@ Insurgent = {
|
||||
AirDefence.AAA_ZU_23_Insurgent_on_Ural_375,
|
||||
|
||||
Armor.APC_Cobra,
|
||||
Armor.APC_MTLB,
|
||||
Armor.ARV_BRDM_2,
|
||||
|
||||
Unarmed.Transport_Ural_375,
|
||||
Unarmed.Transport_UAZ_469,
|
||||
Infantry.Soldier_AK,
|
||||
Infantry.Infantry_Soldier_Insurgents,
|
||||
Infantry.Soldier_RPG,
|
||||
|
||||
Bulk_cargo_ship_Yakushev,
|
||||
Dry_cargo_ship_Ivanov,
|
||||
|
||||
@ -9,6 +9,7 @@ Syria_2011 = {
|
||||
|
||||
MiG_29S,
|
||||
MiG_25PD,
|
||||
L_39ZA,
|
||||
Su_24M,
|
||||
Su_17M4,
|
||||
Mi_24V,
|
||||
|
||||
@ -16,7 +16,6 @@ Turkey_2005 = {
|
||||
E_3A,
|
||||
|
||||
UH_1H,
|
||||
OH_58D,
|
||||
AH_1W,
|
||||
|
||||
Armor.MBT_Leopard_2,
|
||||
|
||||
@ -71,7 +71,7 @@ COLORS: Dict[str, QColor] = {
|
||||
|
||||
}
|
||||
|
||||
CP_SIZE = 24
|
||||
CP_SIZE = 12
|
||||
|
||||
AIRCRAFT_ICONS: Dict[str, QPixmap] = {}
|
||||
VEHICLES_ICONS: Dict[str, QPixmap] = {}
|
||||
|
||||
@ -19,10 +19,10 @@ CAMPAIGNS = [
|
||||
("Persian Gulf - Full Map", persiangulf.PersianGulfTheater, "Terrain_Persian_Gulf"),
|
||||
|
||||
("Syria - Golan heights battle", syria.GolanHeights, "Terrain_Syria"),
|
||||
("Syria - Invasion from Turkey", persiangulf.PersianGulfTheater, "Terrain_Syria"),
|
||||
("Syria - Syrian Civil War", persiangulf.PersianGulfTheater, "Terrain_Syria"),
|
||||
("Syria - War on Insurgents", persiangulf.PersianGulfTheater, "Terrain_Syria"),
|
||||
("Syria - Full Map", persiangulf.PersianGulfTheater, "Terrain_Syria"),
|
||||
("Syria - Invasion from Turkey", syria.TurkishInvasion, "Terrain_Syria"),
|
||||
("Syria - Syrian Civil War", syria.SyrianCivilWar, "Terrain_Syria"),
|
||||
("Syria - Inherent Resolve", syria.InherentResolve, "Terrain_Syria"),
|
||||
("Syria - Full Map", syria.SyriaFullMap, "Terrain_Syria"),
|
||||
|
||||
("Normandy - Normandy", normandy.NormandyTheater, "Terrain_Normandy"),
|
||||
("Normandy - Normandy Small", normandy.NormandySmall, "Terrain_Normandy"),
|
||||
|
||||
171
theater/syria.py
171
theater/syria.py
@ -1,10 +1,10 @@
|
||||
from dcs.terrain import normandy, syria
|
||||
from dcs.terrain import syria
|
||||
|
||||
from .conflicttheater import *
|
||||
from .landmap import *
|
||||
|
||||
|
||||
class GolanHeights(ConflictTheater):
|
||||
class SyriaTheater(ConflictTheater):
|
||||
terrain = dcs.terrain.Syria()
|
||||
overview_image = "syria.gif"
|
||||
reference_points = {(syria.Eyn_Shemer.position.x, syria.Eyn_Shemer.position.y): (1300, 1380),
|
||||
@ -17,6 +17,12 @@ class GolanHeights(ConflictTheater):
|
||||
"night": (0, 5),
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
super(SyriaTheater, self).__init__()
|
||||
|
||||
|
||||
class GolanHeights(SyriaTheater):
|
||||
|
||||
def __init__(self):
|
||||
super(GolanHeights, self).__init__()
|
||||
|
||||
@ -52,3 +58,164 @@ class GolanHeights(ConflictTheater):
|
||||
self.aldumayr.captured_invert = True
|
||||
self.carrier.captured_invert = True
|
||||
self.lha.captured_invert = True
|
||||
|
||||
|
||||
class TurkishInvasion(SyriaTheater):
|
||||
|
||||
def __init__(self):
|
||||
super(TurkishInvasion, self).__init__()
|
||||
|
||||
self.hatay = ControlPoint.from_airport(syria.Hatay, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.incirlik = ControlPoint.from_airport(syria.Incirlik, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.minakh = ControlPoint.from_airport(syria.Minakh, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.aleppo = ControlPoint.from_airport(syria.Aleppo, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
self.kuweires = ControlPoint.from_airport(syria.Kuweires, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.jirah = ControlPoint.from_airport(syria.Jirah, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.tabqa = ControlPoint.from_airport(syria.Tabqa, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
|
||||
self.carrier = ControlPoint.carrier("Carrier", Point(133000, -54000), 1001)
|
||||
self.lha = ControlPoint.lha("LHA", Point(155000, -19000), 1002)
|
||||
|
||||
self.add_controlpoint(self.incirlik, connected_to=[])
|
||||
self.add_controlpoint(self.hatay, connected_to=[self.minakh])
|
||||
self.add_controlpoint(self.minakh, connected_to=[self.aleppo, self.hatay])
|
||||
self.add_controlpoint(self.aleppo, connected_to=[self.kuweires, self.minakh])
|
||||
self.add_controlpoint(self.kuweires, connected_to=[self.jirah, self.aleppo])
|
||||
self.add_controlpoint(self.jirah, connected_to=[self.tabqa, self.kuweires])
|
||||
self.add_controlpoint(self.tabqa, connected_to=[self.jirah])
|
||||
|
||||
self.add_controlpoint(self.carrier)
|
||||
self.add_controlpoint(self.lha)
|
||||
|
||||
self.incirlik.captured = True
|
||||
self.hatay.captured = True
|
||||
self.carrier.captured = True
|
||||
self.lha.captured = True
|
||||
|
||||
self.tabqa.captured_invert = True
|
||||
|
||||
|
||||
class SyrianCivilWar(SyriaTheater):
|
||||
|
||||
def __init__(self):
|
||||
super(SyrianCivilWar, self).__init__()
|
||||
|
||||
self.basselAlAssad = ControlPoint.from_airport(syria.Bassel_Al_Assad, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.marjruhayyil = ControlPoint.from_airport(syria.Marj_Ruhayyil, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.aldumayr = ControlPoint.from_airport(syria.Al_Dumayr, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
self.hama = ControlPoint.from_airport(syria.Hama, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.alqusair= ControlPoint.from_airport(syria.Al_Qusayr, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.aleppo = ControlPoint.from_airport(syria.Aleppo, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
|
||||
self.palmyra = ControlPoint.from_airport(syria.Palmyra, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
|
||||
self.carrier = ControlPoint.carrier("Carrier", Point(18537, -52000), 1001)
|
||||
self.lha = ControlPoint.lha("LHA", Point(116000, 30000), 1002)
|
||||
|
||||
self.add_controlpoint(self.basselAlAssad, connected_to=[self.hama])
|
||||
self.add_controlpoint(self.marjruhayyil, connected_to=[self.aldumayr])
|
||||
|
||||
self.add_controlpoint(self.hama, connected_to=[self.basselAlAssad, self.aleppo, self.alqusair])
|
||||
self.add_controlpoint(self.aleppo, connected_to=[self.hama])
|
||||
self.add_controlpoint(self.alqusair, connected_to=[self.hama, self.aldumayr, self.palmyra])
|
||||
self.add_controlpoint(self.palmyra, connected_to=[self.alqusair])
|
||||
self.add_controlpoint(self.aldumayr, connected_to=[self.alqusair, self.marjruhayyil])
|
||||
|
||||
self.add_controlpoint(self.carrier)
|
||||
self.add_controlpoint(self.lha)
|
||||
|
||||
self.basselAlAssad.captured = True
|
||||
self.marjruhayyil.captured = True
|
||||
self.carrier.captured = True
|
||||
self.lha.captured = True
|
||||
|
||||
self.aleppo.captured_invert = True
|
||||
self.carrier.captured_invert = True
|
||||
self.lha.captured_invert = True
|
||||
|
||||
|
||||
class InherentResolve(SyriaTheater):
|
||||
|
||||
def __init__(self):
|
||||
super(InherentResolve, self).__init__()
|
||||
|
||||
self.kinghussein = ControlPoint.from_airport(syria.King_Hussein_Air_College, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.khalkhala = ControlPoint.from_airport(syria.Khalkhalah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
self.palmyra = ControlPoint.from_airport(syria.Palmyra, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.jirah = ControlPoint.from_airport(syria.Jirah, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.tabqa = ControlPoint.from_airport(syria.Tabqa, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
|
||||
self.carrier = ControlPoint.carrier("Carrier", Point(-210000, -200000), 1001)
|
||||
self.lha = ControlPoint.lha("LHA", Point(-131000, -161000), 1002)
|
||||
|
||||
self.add_controlpoint(self.kinghussein, connected_to=[self.khalkhala])
|
||||
self.add_controlpoint(self.khalkhala, connected_to=[self.kinghussein, self.palmyra])
|
||||
self.add_controlpoint(self.palmyra, connected_to=[self.khalkhala, self.tabqa])
|
||||
self.add_controlpoint(self.tabqa, connected_to=[self.palmyra, self.jirah])
|
||||
self.add_controlpoint(self.jirah, connected_to=[self.tabqa])
|
||||
|
||||
self.add_controlpoint(self.carrier)
|
||||
self.add_controlpoint(self.lha)
|
||||
|
||||
self.kinghussein.captured = True
|
||||
self.carrier.captured = True
|
||||
self.lha.captured = True
|
||||
|
||||
self.jirah.captured_invert = True
|
||||
self.carrier.captured_invert = True
|
||||
self.lha.captured_invert = True
|
||||
|
||||
|
||||
class SyriaFullMap(SyriaTheater):
|
||||
|
||||
def __init__(self):
|
||||
super(SyriaFullMap, self).__init__()
|
||||
|
||||
self.ramatDavid = ControlPoint.from_airport(syria.Ramat_David, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.kinghussein = ControlPoint.from_airport(syria.King_Hussein_Air_College, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.khalkhala = ControlPoint.from_airport(syria.Khalkhalah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
self.palmyra = ControlPoint.from_airport(syria.Palmyra, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.jirah = ControlPoint.from_airport(syria.Jirah, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.tabqa = ControlPoint.from_airport(syria.Tabqa, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.aldumayr = ControlPoint.from_airport(syria.Al_Dumayr, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
self.hama = ControlPoint.from_airport(syria.Hama, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.alqusair= ControlPoint.from_airport(syria.Al_Qusayr, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.aleppo = ControlPoint.from_airport(syria.Aleppo, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM)
|
||||
self.basselAlAssad = ControlPoint.from_airport(syria.Bassel_Al_Assad, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.renemouawad = ControlPoint.from_airport(syria.Rene_Mouawad, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.minakh = ControlPoint.from_airport(syria.Minakh, LAND, SIZE_REGULAR, IMPORTANCE_LOW)
|
||||
self.hatay = ControlPoint.from_airport(syria.Hatay, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
self.incirlik = ControlPoint.from_airport(syria.Incirlik, LAND, SIZE_REGULAR, IMPORTANCE_HIGH)
|
||||
|
||||
|
||||
self.carrier = ControlPoint.carrier("Carrier", Point(-151000, -106000), 1001)
|
||||
self.lha = ControlPoint.lha("LHA", Point(-131000, -161000), 1002)
|
||||
|
||||
self.add_controlpoint(self.ramatDavid, connected_to=[self.kinghussein])
|
||||
self.add_controlpoint(self.kinghussein, connected_to=[self.khalkhala, self.ramatDavid])
|
||||
self.add_controlpoint(self.khalkhala, connected_to=[self.kinghussein, self.aldumayr])
|
||||
self.add_controlpoint(self.aldumayr, connected_to=[self.khalkhala, self.alqusair])
|
||||
self.add_controlpoint(self.alqusair, connected_to=[self.hama, self.aldumayr, self.palmyra, self.renemouawad])
|
||||
self.add_controlpoint(self.renemouawad, connected_to=[self.alqusair, self.basselAlAssad])
|
||||
self.add_controlpoint(self.hama, connected_to=[self.aleppo, self.alqusair, self.basselAlAssad])
|
||||
self.add_controlpoint(self.basselAlAssad, connected_to=[self.hama, self.hatay, self.renemouawad])
|
||||
self.add_controlpoint(self.palmyra, connected_to=[self.tabqa, self.alqusair])
|
||||
self.add_controlpoint(self.tabqa, connected_to=[self.palmyra, self.jirah])
|
||||
self.add_controlpoint(self.jirah, connected_to=[self.tabqa, self.aleppo])
|
||||
self.add_controlpoint(self.aleppo, connected_to=[self.hama, self.jirah, self.minakh])
|
||||
self.add_controlpoint(self.minakh, connected_to=[self.hatay, self.aleppo, self.incirlik])
|
||||
self.add_controlpoint(self.hatay, connected_to=[self.minakh, self.basselAlAssad])
|
||||
self.add_controlpoint(self.incirlik, connected_to=[self.minakh])
|
||||
|
||||
self.add_controlpoint(self.carrier)
|
||||
self.add_controlpoint(self.lha)
|
||||
|
||||
self.ramatDavid.captured = True
|
||||
self.carrier.captured = True
|
||||
self.lha.captured = True
|
||||
|
||||
self.hatay.captured_invert = True
|
||||
self.carrier.captured_invert = True
|
||||
self.lha.captured_invert = True
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user