111 Commits

Author SHA1 Message Date
Druss99
1d4b0608de
Update swedish military assets pack (#464)
* Update swedish military assets pack

* re add old variant names for save compat

* Update faction.py

fixed presets

* fix double variant name
2025-01-26 14:54:58 +00:00
Druss99
a76fe34f3f
CurrentHill USA military assets pack (#461)
* usa military assets pack

* minor fixes to have missiles

* tweak nasams 3

* fix preset groups bug

* adjust b-21 name

* Update faction.py

bugfixes will go in a different branch
2025-01-26 15:32:12 +01:00
Druss99
0613c8f423
Minor Asset pack fixes (#460) 2025-01-20 20:38:26 +01:00
Druss99
f07cc83c5b
CurrentHill Russian Military Assets Pack (#448) 2025-01-07 20:54:50 +01:00
Astro
4c9dba2fe5
Vietnam War Vessels Mod v0.9.0 integration (#435)
* vietnamwarvessels first batch

* Ship YAMLs

* aircraft yamls initial version, need more work

* initial helicopter yamls

* update aircraft yamls

* Added DDs Fletcher and Sullivans

* ship icons

* aircraft banners and icons

* no huts

* update py files to VWV v0.9.0

* update aircraft yamls, add vigilante

* added 2 ships for VWV v0.9.0

* mig-21mf yaml

* icons and banners additional units v0.9.0

* added VWV units to USA_1970 and Vietnam_1970 JSONs

* Revert "added VWV units to USA_1970 and Vietnam_1970 JSONs"

This reverts commit ed0b28dc36c0d9c1a45a10689a3c419bd23ff258.

* A-1H yaml update

* mig-17 yaml update

* update helicopter yamls

* extension init

* weapon injections

* icon filenames _24 added

* removed tasks 0 from yamls

* hh2d yaml fix

* added VWV v0.9.0 to factions USA and Vietnam

* added max_range to aircraft yamls

* housekeeping

* Flyable to False - not available in mod version

* minor edits

* ignore test campaign

* deleted tasks

* weapon luas blue air

* added task numbers from task.py

* weapon luas red air

* task id numbers in comment

* switched weapon lua from aim-9J to aim-9D

* removed test campaigns

* update payload luas with payload names from flighttype.py

* Changed AIM-9D to 9B, 9D does not work

* removed air assault task for HH-2D

* Cva_31 added to runway_is_operational()

* CVA-31 added to naval_units in faction jsons

* add strike and cas tasks to ra-5c

* correct typo

* Added Armed Recon as task and payload to most a/c

* ignore pre-commit-config.yaml

* pre-commit-config

* black reformat controlpoint.py

* Added tasks to Vigilante (next to Recon) containing attack subtasks, which allow it to be scheduled for missions

* added ships to UNITS_WITH_RADAR

* remove pre-commit-config from gitignore

* added red aircraft to nva_1970 faction

* fixed black's complaint (two empty lines, should be one)
2025-01-05 13:50:01 +01:00
Druss99
e93ebbe78c
add chinese asset pack to radar db (#445) 2025-01-04 17:52:35 +00:00
Raffson
881228d273
Potentially useful method for Doctrine class... 2024-12-24 06:35:10 +01:00
Raffson
c09a5b68d5
Pydcs update for Phantom II
Save compat changes included
2024-05-24 21:30:48 +02:00
Raffson
c418d70d96
Lower minimum cruise & combat altitudes in doctrines 2024-03-09 22:33:02 +01:00
Raffson
9303e1cb9e
Configurable cruise & combat altitude + randomized offsets (phase 1) 2024-03-04 00:01:29 +01:00
tmz42
df3bd146da
Add SA-10 Flat Lid-B TR to radar_db.py (#235) 2024-01-11 18:35:56 +01:00
Dan Albert
fa1caa86d6
Add name to Doctrine. 2023-10-07 15:55:04 +02:00
Dan Albert
485229b92f
Allow per pilot loadouts and properties.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3092.
2023-10-01 20:10:16 +02:00
Raffson
f6f1d69048
Fix mypy's complaints 2023-07-01 17:20:02 +02:00
Raffson
3b745c43eb
Save-compat changes to allow loading Liberation saves
May be incomplete, some discrepancies in naming may still exist, but at least Kerbo's campaign can be loaded.
2023-07-01 17:08:12 +02:00
Raffson
e677a1e910
Add EWR Jammer plugin 2023-06-16 22:42:53 +02:00
Raffson
cca45d3729
Fix save-compat issues 2023-05-18 14:37:34 +02:00
Raffson
9ffaec6d16
Fix invalid weapons fallback names
Also add logging to detect invalid fallback names more easily
2023-02-25 19:13:12 +01:00
Raffson
bb629a7be2
Weapons data migration (changing names) 2023-02-18 18:59:53 +01:00
Raffson
004a99e080
Cleanup 2022-11-13 22:38:24 +01:00
Dan Albert
0135e40f1a
Fix offshore targets for WW2 factions.
This makes the oil platform a required building so that all factions can
use it. Alternatively, we could pick a different offshore target for WW2
factions, or gracefully degrade to not generating these targets for WW2
factions. This approach seems to best match the designer's intent.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2322.
2022-10-16 12:51:18 +02:00
Raffson
647032ca48
Skip & Log incompatible loadouts
Solution exists in using the 'get' method
of the "Weapons dictionary", and
subsequentially guarding against
None. Aside from that I created
a method to validate a payload,
which uses this None value to
determine validity.
2022-08-14 14:45:26 +02:00
Dan Albert
60f772081c Update pydcs. 2022-08-10 19:17:06 -07:00
RndName
aa77cfe4b9 Add AirAssault and Airlift mission types with CTLD support
- Add the new airassault mission type and special flightplans for it
- Add the mission type to airbase and FOB
- Add Layout for the UH-1H
- Add mission type to capable squadrons
- Allow the auto planner to task air assault missions when preconditions are met
- Improve Airlift mission type and improve the flightplan (Stopover and Helo landing)
- Allow Slingload and spawnable crates for airlift
- Rework airsupport to a general missiondata class
- Added Carrier Information to mission data
- Allow to define CTLD specific capabilities in the unit yaml
- Allow inflight preload and fixed wing support for air assault
2022-06-09 22:45:29 +02:00
RndName
7acc418489 Update the High Digit SAMs implementation
- Add more HighDigitSAMs units
- Add hds SA-2, SA-3 and HQ-2 to capable factions
- Update radar db with hds as these entries were missing
2022-05-12 16:20:44 +02:00
RndName
5be92cd75e Cleanup threat and detection range calculation
- Moved logic from TGO to TheaterGroup and Unit, cleanup
- Fixed an issue with wrong radar threat zone calculation
- Correctly handle dead and alive units in threat calculation (dead units are no more threats...)
- Fixed wrong air_defenses threat zone used for planning (now uses aa-capable tgos instead of all tgos for the CP)
- Remove the might_have_aa property from TGOs and actually check if there is any aa-capable unit present (this is needed as with the recent tgo refactor all type of TGOs can also have anti air units if they have some defined in the layout)
2022-04-21 21:20:02 +02:00
RndName
5cdfe62e2d Implement advanced skynet functions
- factor out own class for the iadsnetwork within the conflicttheater
- This class will handle all Skynet related things - no specific group_name handling necessary in future
- make iadsbuilding own TGO class because SAM & EWRs are Vehicle Groups. IADS Elements dont have any groups attached.
- added command center, connection node and power source as Ground objects which can be added by the campaign designer
- adjust lua generator to support new iads units
- parse the campaign yaml to get the iads network information
- use the range as fallback if no yaml information was found
- complete rewrite of the skynet lua script
- allow destruction of iads network to be persistent over all rounds
- modified the presetlocation handling: the wrapper PresetLocation for PointWithHeading now stores the original name from the campaign miz to have the ability to process campaign yaml configurations based on the ground unit
- Implementation of the UI representation for the IADS Network
- Give user the option to enable or disable advanced iads
- Extended the layout system: Implement Sub task handling to support PD
2022-04-19 10:41:16 +02:00
RndName
1d20e6277e
Fix silkworm launcher falsely added to scud groups
Added AntiShipMissile unit class and updated the hy_launcher unit as well as the silkworm layout to differentiate clearly between missile (scud, v1) and antiship (silkworm)

fixes #2159
2022-04-08 21:30:44 +02:00
RndName
1bb7e1bf47 Change SEAD task to Search and Engage for ARM weapon
SEAD flights will have the Search and Engage Group Task instead of the current AttackGroup task when the flight has ARM weapons in the Loadout. This resolves an issue with AI not able to attack a SAM when skynet is used. This is due to the RADAR not emitting and the AI therefore just diving into the SAM.
Non-ARM Loadouts will still use the AttackGroup task. This ensures that for example the ADM-141 TALD used by the F-14s will work correctly
2022-04-02 10:16:11 +02:00
RndName
2c17a9a52e Refactor Templates to Layouts, Review and Cleanup
- Fix tgogenerator
- Fix UI for ForceGroup and Layouts
- Fix ammo depot handling
- Split bigger files in smaller meaningful files (TGO, layouts, forces)
- Renamed Template to Layout
- Renamed GroundGroup to TheaterGroup and GroundUnit to TheaterUnit
- Reorganize Layouts and UnitGroups to a ArmedForces class and ForceGroup similar to the AirWing and Squadron
- Reworded the UnitClass, GroupRole, GroupTask (adopted to PEP8) and reworked the connection from Role and Task
- added comments
- added missing unit classes
- added temp workaround for missing classes
- add repariable property to TheaterUnit
- Review and Cleanup

Added serialization for loaded templates

Loading the templates from the .miz files takes a lot of computation time and in the future there will be more templates added to the system. Therefore a local pickle serialization for the loaded templates was re-added:
- The pickle will be created the first time the TemplateLoader will be accessed
- Pickle is stored in Liberation SaveDir
- Added UI option to (re-)import templates
2022-02-21 20:45:41 +01:00
RndName
60c8c80480 Decoupling and generalization of templates
Improvement for factions and templates which will allow decoupling of the templates from the actual units
- Implement UnitGroup class which matches unit_types and possible templates as the needed abstraction layer for decoupling.
- Refactor UnitType, Add ShipUnitType and all ships we currently use
- Remove serialized template.json and migrated to multiple yaml templates (one for each template) and multiple .miz
- Reorganized a lot of templates and started with generalization of many types (AAA, Flak, SHORAD, Navy)
- Fixed a lot of bugs from the previous reworks (group name generation, strike targets...)
- Reorganized the faction file completly. removed redundant lists, added presets for complex groups / families of units like sams
- Reworked the building template handling. Some templates are unused like "village"
- Reworked how groups from templates can be merged again for the dcs group creation (e.g. the skynet plugin requires them to be in the same group)
- Allow to define alternative tasks
2022-02-21 20:45:41 +01:00
RndName
d154069877 Refactor ground objects and prepare template system
- completly refactored the way TGO handles groups and replaced the usage of the pydcs ground groups (vehicle, ship, static) with an own Group and Unit class.
- this allows us to only take care of dcs group generation during miz generation, where it should have always been.
- We can now have any type of unit (even statics) in the same logic ground group we handle in liberation. this is independent from the dcs group handling. the dcs group will only be genarted when takeoff is pressed.
- Refactored the unitmap and the scenery object handling to adopt to changes that now TGOs can hold all Units we want.
- Cleaned up many many many lines of uneeded hacks to build stuff around dcs groups.
- Removed IDs for TGOs as the names we generate are unique and for liberation to work we need no ids. Unique IDs for dcs will be generated for the units and groups only.
2022-02-21 20:45:41 +01:00
RndName
3afc6ba24b
Add NASAM Radar and Launcher to radar_db
This will allow correct calculation of the threat range and prevent creating a threat zone when the SR is dead. #1978
2022-01-28 09:41:17 +01:00
RndName
54745e786e
Fix incorrect threat range of SA-5
The SA-5 was not part of the radar_db.py and therefore the threat_range calculation was wrong / ever LN counted as threat even when the TR was dead. Also fixed a wrong unit for the SA-11 TELAR.
#1816
2022-01-07 14:41:01 +01:00
Dan Albert
46bf952562 Add Forrestal support, use in US 1975.
https://github.com/dcs-liberation/dcs_liberation/issues/1657
2021-10-22 10:11:15 -07:00
Dan Albert
90ad1f4a61 Change squadrons to operate out of a single base.
https://github.com/dcs-liberation/dcs_liberation/issues/1145

Currently this is fixed at the start of the campaign. The squadron
locations are defined by the campaign file.

Follow up work:

* Track aircraft ownership per-squadron rather than per-airbase.
* UI for relocating squadrons.
* Ferry missions for squadrons that are relocating.
* Auto-relocation (probably only for retreat handling).

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1138
2021-08-14 21:46:27 -07:00
Dan Albert
971d7e730a Add ALIC codes for the tin shield and NASAMS.
https://github.com/dcs-liberation/dcs_liberation/issues/1448
2021-07-31 13:53:04 -07:00
Dan Albert
c2951e5e41 Increase minimum hold distance.
The previous values were far too optimistic for a non-AB climb to hold
altitude, especially for the AI.
2021-07-18 14:52:12 -07:00
Dan Albert
c65ac5a7cf Move mission range data into the aircraft type.
The doctrine/task limits were capturing a reasonable average for the
era, but it did a bad job for cases like the Harrier vs the Hornet,
which perform similar missions but have drastically different max
ranges. It also forced us into limiting CAS missions (even those flown
by long range aircraft like the A-10) to 50nm since helicopters could
commonly be fragged to them.

This should allow us to design campaigns without needing airfields to be
a max of ~50-100nm apart.
2021-07-17 16:34:13 -07:00
Dan Albert
8e977f994f Remove LGBs from degraded loadouts without TGPs.
This only takes effect for default loadouts. Custom loadouts set from
the UI will allow LGBs. In the default case there will not be buddy-lase
coordination so we should take iron bombs instead.

Also adds single/double Mk 83 and Mk 82 weapon data to accomodate this.
2021-07-16 18:34:41 -07:00
Dan Albert
e5c0fc92ec Don't reload weapon data if already loaded. 2021-07-16 01:06:31 -07:00
Dan Albert
e03d710d53 [1/3] Rework IP placement.
Test cases:

1. Target is not threatened.

   The IP should be placed on a direct heading from the origin to the
   target at the max ingress distance, or very near the origin airfield
   if the airfield is closer to the target than the IP distance.

2. Unthreatened home zone, max IP between origin and target, safe
   locations available for IP.

   The IP should be placed in LAR at the closest point to home.

3. Unthreatened home zone, origin within LAR, safe locations available
   for IP.

   The IP should be placed near the origin airfield to prevent
   backtracking more than needed.

4. Unthreatened home zone, origin entirely nearer the target than LAR,
   safe locations available for IP.

   The IP should be placed in LAR as close as possible to the origin.

5. Threatened home zone, safe locations available for IP.

   The IP should be placed in LAR as close as possible to the origin.

6. No safe IP.

   The IP should be placed in LAR at the point nearest the threat
   boundary.
2021-07-15 23:18:10 -07:00
Dan Albert
7648716199 Make weapon groups explicit and moddable.
The only parts of the old weapon data that worked well (didn't commonly
result in empty pylons) did this implicitly, so make the grouping
explicit.

This also moves the data out of Python and into the resources, which
both makes the data moddable and isolates us from a huge amount of
effort and a save compat break whenever ED changes weapon names.

I didn't auto migrate the old data since the old groups were not
explict and there's no way to infer the grouping. Besides, since most of
the weapons were *not* grouped, the old data did more harm than good in
my experience. I've handled the AIM-120 and AIM-7 for now, but will get
at least all the fox 3 missiles before we ship.
2021-07-14 01:04:03 -07:00
Dan Albert
9bbcee645e Cleanup and document some of Doctrine. 2021-07-13 20:18:30 -07:00
Dan Albert
dfcd372d2d Remove egress points from most flight plans.
These don't have any function. Remove them and remove the angled attack
heading from the IP.
2021-07-13 18:36:38 -07:00
Dan Albert
783ac18222 Replace existing campaign planner with an HTN.
An HTN (https://en.wikipedia.org/wiki/Hierarchical_task_network) is
similar to a decision tree, but it is able to reset to an earlier stage
if a subtask fails and tasks are able to account for the changes in
world state caused by earlier tasks.

Currently this just uses exactly the same strategy as before so we can
prove the system, but it should make it simpler to improve on task
planning.
2021-07-12 13:02:23 -07:00
Dan Albert
96c7b87ac7 More adaptation for pydcs updates.
This is as much as we can do until pydcs actually adds the py.typed
file. Once that's added there are a few ugly monkey patching corners
that will just need `# type: ignore` for now, but we can't pre-add those
since we have mypy warning us about superfluous ignore comments.
2021-07-09 16:35:03 -07:00
Dan Albert
53f6a0b32b Fix some typing in preparation for pydcs types.
Not complete, but progress.
2021-07-08 23:23:05 -07:00
Mustang-25
151f8bf329 Update TGP Restriction Dates
TGP dates to more accurately reflect IRL IOC dates.
2021-06-30 19:17:14 -07:00
Mike Jones
08b7aff0d8 Add gunfighter flag to aircraft data files. 2021-06-22 14:35:28 -07:00