diff --git a/Modded-Aircraft-Support.md b/Modded-Aircraft-Support.md index 55b6c57..bf1e10c 100644 --- a/Modded-Aircraft-Support.md +++ b/Modded-Aircraft-Support.md @@ -7,6 +7,12 @@ It takes a lot of time to add support for a mod in Liberation. We prefer using t Here is how to do it : +## Pre-requisites: + +* A development environment for DCS Liberation, see https://github.com/Khopa/dcs_liberation/wiki/Developer's-Guide +* Basic Python programming knowledge +* A DCS World open beta installation + ## Step 1 : Pydcs extensions injection : Adding support for a modded aircraft is much more complicated than adding its name in a faction file. @@ -50,21 +56,77 @@ These file contains a lot of metadata we need to be able to generate missions, s ## Step 2 : Pydcs extensions injection : -Once you've created your extension, you need to inject it's content into the pydcs version run by Liberation. This is done at runtime. +Once you've created your extension, you need to inject it's content into the pydcs version run by Liberation. This is done at runtime in db.py. -[WIP] +If your modded content is a plane, you need to inject it to pydcs plane_map, in the file [db.py](https://github.com/Khopa/dcs_liberation/blob/develop/game/db.py) + + +```python +plane_map["A-4E-C"] = A_4E_C +plane_map["F-22A"] = F_22A +plane_map["MB-339PAN"] = MB_339PAN +[...] +``` + +If this is a vehicle, add it to vehicle_map instead. + +## Step 2 : DB stuff + +Still in [db.py](https://github.com/Khopa/dcs_liberation/blob/develop/game/db.py) + +Add your plane to the price map: + +```python +PRICES = { + # ... + A_4E_C: 8, + MB_339PAN: 6, + # ... +``` + +Also add it to the list and maps: ```UNIT_BY_TASK```, ```PLANE_PAYLOAD_OVERRIDES```, and if relevant in the lists : ```CARRIER_CAPABLE```, ```LHA_CAPABLE``` ## Step 3 : Liberation flight planner database setup : +Open [ai_flight_planner_db.py](https://github.com/Khopa/dcs_liberation/blob/develop/gen/flights/ai_flight_planner_db.py) + +Add your plane to the lists it needs to be in, so DCS Liberation is aware of its capabilities : + +**Example:** + +```python +CAP_CAPABLE = [ +# .... + Su_57, + F_22A, +# .... +] +``` + ## Step 4 : Create default payload -## Step 5 : Create a faction that support the mods so it can be used +See https://github.com/Khopa/dcs_liberation/wiki/Custom-Loadouts +Create default loadouts for the new plane. -## Step 6 : Add icons for the UI +## Step 5 : Factions + +See https://github.com/Khopa/dcs_liberation/wiki/Custom-Factions and create a faction that support the mods so it can be used + +## Step 6 : Add icons for the UI [Optional] + +Add icons for the new plane there: https://github.com/Khopa/dcs_liberation/tree/develop/resources/ui/units/aircrafts/icons + +And a banner, there: https://github.com/Khopa/dcs_liberation/tree/develop/resources/ui/units/aircrafts/banners ## Step 7 : Playtest ! -Redo the data export thing (Step 1), every time said mod is updated +Play a few missions with the plane, test as much cases as you can. + +## Step 8 : Release ! + +## Step 9 : Maintenance ! + +Redo the data export thing (Step 1), every time said mod is updated, if needed create new loadouts and account for new capabilities in db.