Compare commits

...

26 Commits

Author SHA1 Message Date
Marcel
e6866ac245 Fix group name for EWRs.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1246
2021-06-18 16:54:49 -07:00
Dan Albert
aeb043e863 Revert "Update F-16 strike loadout to use GBU-31."
This reverts commit 04fa65107e.
2021-06-18 16:20:14 -07:00
Dan Albert
e33a4ec0c3 Revert "Update pydcs."
This reverts commit f5d4c04b75.
2021-06-18 16:20:02 -07:00
Dan Albert
6b310a10de Revert "Adapt to DCS update."
This reverts commit 3a11068259.
2021-06-18 16:19:38 -07:00
Dan Albert
9433138c20 Revert "Continue pydcs update"
This reverts commit a3d61ea286.
2021-06-18 16:19:34 -07:00
Khopa
a3d61ea286 Continue pydcs update 2021-06-18 01:06:09 +02:00
Dan Albert
3a11068259 Adapt to DCS update. 2021-06-17 22:41:14 +02:00
Dan Albert
f5d4c04b75 Update pydcs. 2021-06-17 22:40:35 +02:00
Dan Albert
04fa65107e Update F-16 strike loadout to use GBU-31. 2021-06-17 22:40:27 +02:00
Mustang-25
abc0c19bd1 Add remaining HAF Viper squadrons.
(cherry picked from commit 4bb8bbbad8)
2021-06-16 21:07:55 -07:00
Dan Albert
0d31de344d Fix Greek F-16 livery ID.
(cherry picked from commit 39adafb1be)
2021-06-16 20:52:55 -07:00
Dan Albert
28c0ae7802 Add a Greek F-16 squadron.
(cherry picked from commit e19bfcdd04)
2021-06-16 20:37:46 -07:00
Dan Albert
c0bef399ad Add the 191. Filo Turkish F-16 squadron.
(cherry picked from commit 6fde92f5ac)
2021-06-16 20:17:42 -07:00
Dan Albert
21681a8240 Import latest beacon data from DCS.
(cherry picked from commit 24884e4a77)
2021-06-16 19:46:58 -07:00
Dan Albert
bc0ac0cbfc Update Turkish faction.
Add a bunch of missing helicopters, some ground units, and remove the
KC-130 which they don't seem to use.

(cherry picked from commit 384be8ceae)
2021-06-16 19:20:53 -07:00
Dan Albert
7f508f0b2c Update the Greek faction.
Greece has C-130s and Patriots. They don't have the E-3 but they do have
AEW&C via the ER-99, which isn't in DCS so just use an E-3 to pretend.
Also remove the Hawk radar as an EWR since we have the P-19 which is
better.

(cherry picked from commit ee9a5e8482)
2021-06-16 19:20:53 -07:00
Dan Albert
ef9e957ef2 Fix incorrect conditional.
(cherry picked from commit 34453fa3be)
2021-06-16 17:24:23 -07:00
Dan Albert
7d08e1ee2c Make non-interactive map elements unobstructive.
This makes most of the lines and polygons on the map non-interactive so
they don't capture mouse events, and also makes the culling exclusion
zones unfilled so they don't obscure real map objects in dense areas.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1217

(cherry picked from commit f727712bfa)
2021-06-16 17:22:19 -07:00
Dan Albert
97ac6a0612 Note procurement fix in the changelog.
(cherry picked from commit 3bb974b9e0)
2021-06-16 17:10:43 -07:00
Dan Albert
83c311c853 Escape the JTAC zone name in the plugin data.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1218

(cherry picked from commit 021445216e)
2021-06-16 17:08:36 -07:00
Dan Albert
df97110546 Bump version to 3.1.0.
We're shipping features for the DCS update after all.
2021-06-16 17:08:36 -07:00
Schneefl0cke
f570cfc12e Fix procurement for factions that lack some units.
Fixes procurement for factions with no aircraft, no ground units, or no
tanks.

(cherry picked from commit c13bf3ccd1)
2021-06-16 16:38:58 -07:00
Dan Albert
70b4f75f25 Make squadron nicknames optional.
(cherry picked from commit 25c289deaa)
2021-06-12 21:43:45 -07:00
Dan Albert
1ac95438ce Include the micro version of the version string.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1209
2021-06-11 16:51:34 -07:00
Dan Albert
73ca6606e1 Update Northern Russia campaign.
https://github.com/dcs-liberation/dcs_liberation/issues/1206
(cherry picked from commit b2705c1a13)
2021-06-11 16:42:36 -07:00
Dan Albert
7a04cf5905 Update the Syria full campaign.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1182

(cherry picked from commit 1796c21f48)
2021-06-11 16:31:16 -07:00
26 changed files with 494 additions and 33 deletions

View File

@@ -1,3 +1,13 @@
# 3.1.0
## Features/Improvements
## Fixes
* **[Campaign AI]** Fix procurement for factions that lack some unit types.
* **[Mission Generation]** Fixed problem with mission load when control point name contained an apostrophe.
* **[UI]** Made non-interactive map elements less obstructive.
# 3.0.0 # 3.0.0
Saves from 2.5 are not compatible with 3.0. Saves from 2.5 are not compatible with 3.0.

View File

@@ -593,8 +593,7 @@ class Operation:
zone = data["zone"] zone = data["zone"]
laserCode = data["laserCode"] laserCode = data["laserCode"]
dcsUnit = data["dcsUnit"] dcsUnit = data["dcsUnit"]
lua += f" {{dcsGroupName='{dcsGroupName}', callsign='{callsign}', zone='{zone}', laserCode='{laserCode}', dcsUnit='{dcsUnit}' }}, \n" lua += f" {{dcsGroupName='{dcsGroupName}', callsign='{callsign}', zone={repr(zone)}, laserCode='{laserCode}', dcsUnit='{dcsUnit}' }}, \n"
# lua += f" {{name='{dcsGroupName}', description='JTAC {callsign} ', information='Laser:{laserCode}', jtac={laserCode} }}, \n"
lua += "}" lua += "}"
# Process the Target Points # Process the Target Points

View File

@@ -59,6 +59,18 @@ class ProcurementAi:
def calculate_ground_unit_budget_share(self) -> float: def calculate_ground_unit_budget_share(self) -> float:
armor_investment = 0 armor_investment = 0
aircraft_investment = 0 aircraft_investment = 0
# faction has no ground units
if (
len(self.faction.artillery_units) == 0
and len(self.faction.frontline_units) == 0
):
return 0
# faction has no planes
if len(self.faction.aircrafts) == 0:
return 1
for cp in self.owned_points: for cp in self.owned_points:
cp_ground_units = cp.allocated_ground_units(self.game.transfers) cp_ground_units = cp.allocated_ground_units(self.game.transfers)
armor_investment += cp_ground_units.total_value armor_investment += cp_ground_units.total_value
@@ -140,6 +152,11 @@ class ProcurementAi:
self.faction.artillery_units self.faction.artillery_units
) )
of_class = set(unit_class.unit_list) & faction_units of_class = set(unit_class.unit_list) & faction_units
# faction has no access to needed unit type, take a random unit
if not of_class:
of_class = faction_units
affordable_units = [u for u in of_class if db.PRICES[u] <= budget] affordable_units = [u for u in of_class if db.PRICES[u] <= budget]
if not affordable_units: if not affordable_units:
return None return None

View File

@@ -76,7 +76,7 @@ class Pilot:
@dataclass @dataclass
class Squadron: class Squadron:
name: str name: str
nickname: str nickname: Optional[str]
country: str country: str
role: str role: str
aircraft: Type[FlyingType] aircraft: Type[FlyingType]
@@ -99,6 +99,8 @@ class Squadron:
self.auto_assignable_mission_types = set(self.mission_types) self.auto_assignable_mission_types = set(self.mission_types)
def __str__(self) -> str: def __str__(self) -> str:
if self.nickname is None:
return self.name
return f'{self.name} "{self.nickname}"' return f'{self.name} "{self.nickname}"'
def claim_available_pilot(self) -> Optional[Pilot]: def claim_available_pilot(self) -> Optional[Pilot]:
@@ -215,7 +217,7 @@ class Squadron:
return Squadron( return Squadron(
name=data["name"], name=data["name"],
nickname=data["nickname"], nickname=data.get("nickname"),
country=data["country"], country=data["country"],
role=data["role"], role=data["role"],
aircraft=unit_type, aircraft=unit_type,

View File

@@ -597,7 +597,8 @@ class EwrGroundObject(TheaterGroundObject):
@property @property
def group_name(self) -> str: def group_name(self) -> str:
# Prefix the group names with the side color so Skynet can find them. # Prefix the group names with the side color so Skynet can find them.
return f"{self.faction_color}|{super().group_name}" # Use Group Id and uppercase EWR
return f"{self.faction_color}|EWR|{self.group_id}"
def mission_types(self, for_player: bool) -> Iterator[FlightType]: def mission_types(self, for_player: bool) -> Iterator[FlightType]:
from gen.flights.flight import FlightType from gen.flights.flight import FlightType

View File

@@ -2,7 +2,7 @@ from pathlib import Path
def _build_version_string() -> str: def _build_version_string() -> str:
components = ["3.0"] components = ["3.1.0"]
build_number_path = Path("resources/buildnumber") build_number_path = Path("resources/buildnumber")
if build_number_path.exists(): if build_number_path.exists():
with build_number_path.open("r") as build_number_file: with build_number_path.open("r") as build_number_file:

View File

@@ -42,14 +42,14 @@ class SquadronDelegate(TwoColumnRowDelegate):
def text_for(self, index: QModelIndex, row: int, column: int) -> str: def text_for(self, index: QModelIndex, row: int, column: int) -> str:
if (row, column) == (0, 0): if (row, column) == (0, 0):
return self.air_wing_model.data(index, Qt.DisplayRole) return self.squadron(index).name
elif (row, column) == (0, 1): elif (row, column) == (0, 1):
squadron = self.air_wing_model.data(index, AirWingModel.SquadronRole) squadron = self.air_wing_model.data(index, AirWingModel.SquadronRole)
return db.unit_get_expanded_info( return db.unit_get_expanded_info(
squadron.country, squadron.aircraft, "name" squadron.country, squadron.aircraft, "name"
) )
elif (row, column) == (1, 0): elif (row, column) == (1, 0):
return self.squadron(index).nickname return self.squadron(index).nickname or ""
elif (row, column) == (1, 1): elif (row, column) == (1, 1):
squadron = self.squadron(index) squadron = self.squadron(index)
alive = squadron.number_of_living_pilots alive = squadron.number_of_living_pilots

View File

@@ -0,0 +1,11 @@
{
"name": "Syria - Full Map",
"theater": "Syria",
"authors": "Plob",
"recommended_player_faction": "Bluefor Modern",
"recommended_enemy_faction": "Syria 2011",
"description": "<p>Syria Full map, designed for groups of 4-12 players.</p>",
"miz": "syria_full_map.miz",
"performance": 3,
"version": "6.0"
}

Binary file not shown.

View File

@@ -1,8 +0,0 @@
{
"name": "Syria - Full Map",
"theater": "Syria",
"authors": "Hawkmoon",
"description": "<p>Full map of Syria</p><p><strong>Note :&nbsp;</strong></p><p>For a better early game experience, it is suggested to give the AI an high amount of starting money.</p>",
"miz": "syria_full_map_remastered.miz",
"performance": 3
}

View File

@@ -139,6 +139,20 @@
"hertz": 117700000, "hertz": 117700000,
"channel": null "channel": null
}, },
{
"name": "MUT",
"callsign": "MUT",
"beacon_type": 4,
"hertz": 112300000,
"channel": null
},
{
"name": "DHEKELIA",
"callsign": "DKA",
"beacon_type": 10,
"hertz": 343000,
"channel": null
},
{ {
"name": "", "name": "",
"callsign": "IADA", "callsign": "IADA",
@@ -157,7 +171,7 @@
"name": "ADANA", "name": "ADANA",
"callsign": "ADN", "callsign": "ADN",
"beacon_type": 11, "beacon_type": 11,
"hertz": 395000000, "hertz": 395000,
"channel": null "channel": null
}, },
{ {
@@ -167,6 +181,41 @@
"hertz": 112700000, "hertz": 112700000,
"channel": null "channel": null
}, },
{
"name": "",
"callsign": "IAK",
"beacon_type": 14,
"hertz": 109700000,
"channel": null
},
{
"name": "",
"callsign": "IAK",
"beacon_type": 15,
"hertz": 109700000,
"channel": null
},
{
"name": "Akrotiri",
"callsign": "AKR",
"beacon_type": 6,
"hertz": 116000000,
"channel": 107
},
{
"name": "Akrotiri",
"callsign": "AKR",
"beacon_type": 3,
"hertz": 116000000,
"channel": 107
},
{
"name": "AKROTIRI",
"callsign": "AK",
"beacon_type": 10,
"hertz": 365000,
"channel": null
},
{ {
"name": "KALDE", "name": "KALDE",
"callsign": "KAD", "callsign": "KAD",
@@ -220,7 +269,7 @@
"name": "BEIRUT", "name": "BEIRUT",
"callsign": "BOD", "callsign": "BOD",
"beacon_type": 11, "beacon_type": 11,
"hertz": 351000000, "hertz": 351000,
"channel": null "channel": null
}, },
{ {
@@ -255,14 +304,14 @@
"name": "DAMASCUS", "name": "DAMASCUS",
"callsign": "DAL", "callsign": "DAL",
"beacon_type": 11, "beacon_type": 11,
"hertz": 342000000, "hertz": 342000,
"channel": null "channel": null
}, },
{ {
"name": "ABYAD", "name": "ABYAD",
"callsign": "ABD", "callsign": "ABD",
"beacon_type": 10, "beacon_type": 10,
"hertz": 264000, "hertz": 264,
"channel": null "channel": null
}, },
{ {
@@ -272,6 +321,69 @@
"hertz": 111100000, "hertz": 111100000,
"channel": null "channel": null
}, },
{
"name": "ERCAN",
"callsign": "ECN",
"beacon_type": 4,
"hertz": 117000000,
"channel": null
},
{
"name": "",
"callsign": "IGNP",
"beacon_type": 14,
"hertz": 109100000,
"channel": null
},
{
"name": "",
"callsign": "IGNP",
"beacon_type": 15,
"hertz": 109100000,
"channel": null
},
{
"name": "",
"callsign": "IGZP",
"beacon_type": 14,
"hertz": 108500000,
"channel": null
},
{
"name": "",
"callsign": "IGZP",
"beacon_type": 15,
"hertz": 108500000,
"channel": null
},
{
"name": "ALANYA/GAZIPASA",
"callsign": "GZP",
"beacon_type": 4,
"hertz": 114200000,
"channel": null
},
{
"name": "GAZIPASA/ALANYA",
"callsign": "GZP",
"beacon_type": 10,
"hertz": 316000,
"channel": null
},
{
"name": "FAMAGUSTA_GECITKALE",
"callsign": "GKE",
"beacon_type": 4,
"hertz": 114300000,
"channel": null
},
{
"name": "GECITKALE",
"callsign": "GKE",
"beacon_type": 10,
"hertz": 435000,
"channel": null
},
{ {
"name": "HATAY", "name": "HATAY",
"callsign": "HTY", "callsign": "HTY",
@@ -317,8 +429,8 @@
{ {
"name": "INCIRLIC", "name": "INCIRLIC",
"callsign": "DAN", "callsign": "DAN",
"beacon_type": 6, "beacon_type": 5,
"hertz": 108400000, "hertz": null,
"channel": 21 "channel": 21
}, },
{ {
@@ -349,6 +461,34 @@
"hertz": 111700000, "hertz": 111700000,
"channel": null "channel": null
}, },
{
"name": "",
"callsign": "ILC",
"beacon_type": 14,
"hertz": 110300000,
"channel": null
},
{
"name": "Larnaca",
"callsign": "LCA",
"beacon_type": 4,
"hertz": 112800000,
"channel": null
},
{
"name": "",
"callsign": "ILC",
"beacon_type": 15,
"hertz": 110300000,
"channel": null
},
{
"name": "Larnaca",
"callsign": "LCA",
"beacon_type": 9,
"hertz": 432000,
"channel": null
},
{ {
"name": "", "name": "",
"callsign": "IBA", "callsign": "IBA",
@@ -373,8 +513,8 @@
{ {
"name": "LATAKIA", "name": "LATAKIA",
"callsign": "LTK", "callsign": "LTK",
"beacon_type": 11, "beacon_type": 9,
"hertz": 414000000, "hertz": 414000,
"channel": null "channel": null
}, },
{ {
@@ -391,6 +531,41 @@
"hertz": 337000, "hertz": 337000,
"channel": null "channel": null
}, },
{
"name": "Pafos",
"callsign": "PHA",
"beacon_type": 10,
"hertz": 328000,
"channel": null
},
{
"name": "",
"callsign": "IPA",
"beacon_type": 15,
"hertz": 108900000,
"channel": null
},
{
"name": "",
"callsign": "IPA",
"beacon_type": 14,
"hertz": 108900000,
"channel": null
},
{
"name": "Pafos",
"callsign": "IPA",
"beacon_type": 3,
"hertz": 108900000,
"channel": null
},
{
"name": "Pafos",
"callsign": "PHA",
"beacon_type": 4,
"hertz": 117900000,
"channel": null
},
{ {
"name": "RAMATDAVID", "name": "RAMATDAVID",
"callsign": "RMD", "callsign": "RMD",
@@ -398,6 +573,27 @@
"hertz": 368000, "hertz": 368000,
"channel": null "channel": null
}, },
{
"name": "RAMATDAVID",
"callsign": "RMD",
"beacon_type": 6,
"hertz": 113700000,
"channel": 84
},
{
"name": "",
"callsign": "RMD",
"beacon_type": 14,
"hertz": 111100000,
"channel": null
},
{
"name": "",
"callsign": "RMD",
"beacon_type": 15,
"hertz": 111100000,
"channel": null
},
{ {
"name": "Cheka", "name": "Cheka",
"callsign": "CAK", "callsign": "CAK",

View File

@@ -5,12 +5,16 @@
"description": "<p>Hellenic army in the mid/late 2000s.</p>", "description": "<p>Hellenic army in the mid/late 2000s.</p>",
"locales": ["el_GR"], "locales": ["el_GR"],
"aircrafts": [ "aircrafts": [
"AH_64A",
"C_130",
"F_16C_50", "F_16C_50",
"F_4E", "F_4E",
"M_2000C", "M_2000C",
"Mirage_2000_5", "Mirage_2000_5",
"UH_1H", "UH_1H"
"AH_64A" ],
"awacs": [
"E_3A"
], ],
"tankers": [ "tankers": [
"KC130" "KC130"
@@ -38,13 +42,13 @@
], ],
"air_defenses": [ "air_defenses": [
"HawkGenerator", "HawkGenerator",
"PatriotGenerator",
"SA8Generator", "SA8Generator",
"SA10Generator", "SA10Generator",
"SA15Generator", "SA15Generator",
"ZU23Generator" "ZU23Generator"
], ],
"ewrs": [ "ewrs": [
"HawkEwrGenerator",
"FlatFaceGenerator" "FlatFaceGenerator"
], ],
"navy_generators": [ "navy_generators": [

View File

@@ -5,17 +5,20 @@
"description": "<p>Turkish army in the mid/late 2000s.</p>", "description": "<p>Turkish army in the mid/late 2000s.</p>",
"locales": ["tr_TR"], "locales": ["tr_TR"],
"aircrafts": [ "aircrafts": [
"AH_1W",
"C_130",
"CH_47D",
"F_16C_50", "F_16C_50",
"F_4E", "F_4E",
"OH_58D",
"UH_1H", "UH_1H",
"AH_1W" "UH_60A"
], ],
"awacs": [ "awacs": [
"E_3A" "E_3A"
], ],
"tankers": [ "tankers": [
"KC_135", "KC_135"
"KC130"
], ],
"frontline_units": [ "frontline_units": [
"MBT_Leopard_2A4_Trs", "MBT_Leopard_2A4_Trs",
@@ -23,9 +26,12 @@
"MBT_M60A3_Patton", "MBT_M60A3_Patton",
"Scout_Cobra", "Scout_Cobra",
"APC_BTR_80", "APC_BTR_80",
"APC_M113",
"SAM_Avenger__Stinger" "SAM_Avenger__Stinger"
], ],
"artillery_units": [ "artillery_units": [
"MLRS_M270_227mm",
"SPH_M109_Paladin_155mm",
"SPH_T155_Firtina_155mm" "SPH_T155_Firtina_155mm"
], ],
"logistics_units": [ "logistics_units": [

View File

@@ -0,0 +1,21 @@
---
name: 191. Filo
nickname: Kobra
country: Turkey
role: Strike Fighter
aircraft: F-16C_50
livery: THK_191_Filo
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 335 Squadron
nickname: Tiger
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_335_Tiger
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 336 Squadron
nickname: Olympus
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_336_Olympus
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 337 Squadron
nickname: Ghost
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_337_Ghost
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 340 Squadron
nickname: Fox
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_340_Fox
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 341 Squadron
nickname: Arrow
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_341_Arrow
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 343 Squadron
nickname: Star
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_343_Star
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 346 Squadron
nickname: Jason
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_346_Jason
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 347 Squadron
nickname: Perseus
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_347_Perseus
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -0,0 +1,21 @@
---
name: 330 Squadron
nickname: Thunder
country: Greece
role: Multirole Fighter
aircraft: F-16C_50
livery: HAF_ 330_Thunder
mission_types:
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

View File

@@ -428,6 +428,7 @@ class ControlPoint {
return L.polyline([this.cp.position, destination], { return L.polyline([this.cp.position, destination], {
color: Colors.Green, color: Colors.Green,
weight: 1, weight: 1,
interactive: false,
}); });
} }
@@ -519,6 +520,7 @@ class TheaterGroundObject {
color: detectionColor, color: detectionColor,
fill: false, fill: false,
weight: 1, weight: 1,
interactive: false,
}).addTo(detectionLayer); }).addTo(detectionLayer);
}); });
@@ -528,6 +530,7 @@ class TheaterGroundObject {
color: threatColor, color: threatColor,
fill: false, fill: false,
weight: 2, weight: 2,
interactive: false,
}).addTo(threatLayer); }).addTo(threatLayer);
}); });
} }
@@ -737,12 +740,15 @@ class Flight {
const color = this.flight.blue ? Colors.Blue : Colors.Red; const color = this.flight.blue ? Colors.Blue : Colors.Red;
const layer = this.flightPlanLayer(); const layer = this.flightPlanLayer();
if (this.flight.selected) { if (this.flight.selected) {
this.path = L.polyline(path, { color: Colors.Highlight }) this.path = L.polyline(path, {
color: Colors.Highlight,
interactive: false,
})
.addTo(selectedFlightPlansLayer) .addTo(selectedFlightPlansLayer)
.addTo(layer) .addTo(layer)
.addTo(allFlightPlansLayer); .addTo(allFlightPlansLayer);
} else { } else {
this.path = L.polyline(path, { color: color }) this.path = L.polyline(path, { color: color, interactive: false })
.addTo(layer) .addTo(layer)
.addTo(allFlightPlansLayer); .addTo(allFlightPlansLayer);
} }
@@ -760,6 +766,7 @@ class Flight {
this.commitBoundary = L.polyline(this.flight.commitBoundary, { this.commitBoundary = L.polyline(this.flight.commitBoundary, {
color: Colors.Highlight, color: Colors.Highlight,
weight: 1, weight: 1,
interactive: false,
}) })
.addTo(selectedFlightPlansLayer) .addTo(selectedFlightPlansLayer)
.addTo(this.flightPlanLayer()) .addTo(this.flightPlanLayer())
@@ -819,6 +826,7 @@ function _drawThreatZones(zones, layer, player) {
fill: true, fill: true,
fillOpacity: 0.4, fillOpacity: 0.4,
noClip: true, noClip: true,
interactive: false,
}).addTo(layer); }).addTo(layer);
} }
} }
@@ -874,6 +882,7 @@ function drawNavmesh(zones, layer) {
color: "#000000", color: "#000000",
weight: 1, weight: 1,
fill: false, fill: false,
interactive: false,
}).addTo(layer); }).addTo(layer);
} }
} }
@@ -896,6 +905,7 @@ function drawMapZones() {
color: "#344455", color: "#344455",
fillColor: "#344455", fillColor: "#344455",
fillOpacity: 1, fillOpacity: 1,
interactive: false,
}).addTo(seaZones); }).addTo(seaZones);
} }
@@ -904,6 +914,7 @@ function drawMapZones() {
color: "#969696", color: "#969696",
fillColor: "#4b4b4b", fillColor: "#4b4b4b",
fillOpacity: 1, fillOpacity: 1,
interactive: false,
}).addTo(inclusionZones); }).addTo(inclusionZones);
} }
@@ -912,6 +923,7 @@ function drawMapZones() {
color: "#969696", color: "#969696",
fillColor: "#303030", fillColor: "#303030",
fillOpacity: 1, fillOpacity: 1,
interactive: false,
}).addTo(exclusionZones); }).addTo(exclusionZones);
} }
} }
@@ -923,7 +935,8 @@ function drawUnculledZones() {
L.circle(zone.position, { L.circle(zone.position, {
radius: zone.radius, radius: zone.radius,
color: "#b4ff8c", color: "#b4ff8c",
stroke: false, fill: false,
interactive: false,
}).addTo(unculledZones); }).addTo(unculledZones);
} }
} }