From a52824906245ae4331d5f61f5a913f763fb38b3e Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Wed, 15 Aug 2018 15:13:49 +0300 Subject: [PATCH 01/12] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 36608ca8..63cb37c4 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ -[DCS World](https://www.digitalcombatsimulator.com/en/products/world/) single-player liberation dynamic campaign. +[DCS World](https://www.digitalcombatsimulator.com/en/products/world/) single-player dynamic campaign. [Installation instructions/Manual](https://github.com/shdwp/dcs_liberation/wiki) Inspired by *ARMA Liberation* mission. +If you plan on using code from git, and not from release archieve, you should copy the `resources/payloads` from archieve to working directory. + Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. From 0d5530f5ea9cb0aa62bf24404071635f77e2c983 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Wed, 15 Aug 2018 15:14:19 +0300 Subject: [PATCH 02/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 63cb37c4..f41bdf1f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Inspired by *ARMA Liberation* mission. -If you plan on using code from git, and not from release archieve, you should copy the `resources/payloads` from archieve to working directory. +If you plan on using code from git, and not from release archieve, you should copy the files from `resources/payloads` from archieve to the same folder in working directory. Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. From c32ac8577c4cfbdd7ef89f5e9d275341259eb94a Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Sun, 9 Sep 2018 04:38:47 +0300 Subject: [PATCH 03/12] Update README.md --- README.md | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f41bdf1f..ae55f6c3 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,27 @@ [DCS World](https://www.digitalcombatsimulator.com/en/products/world/) single-player dynamic campaign. - -[Installation instructions/Manual](https://github.com/shdwp/dcs_liberation/wiki) - -Inspired by *ARMA Liberation* mission. - -If you plan on using code from git, and not from release archieve, you should copy the files from `resources/payloads` from archieve to the same folder in working directory. - Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. +## Installation +1. Download and install **Python 3.6.0** package from https://www.python.org/downloads/release/python-360/ (look at the bottom under *Files*; any option will do if it matches your architecture) with default set of options (you need to have *Install launcher for all users (recommended)* checked) +1. Download archived release (https://github.com/shdwp/dcs_liberation/releases; **not source code zip**, file should be named **dcs_liberation_xx.zip**) +1. Unzip the archive somewhere. Path does not matter. **Application will not work** if you start it without extracting +1. Run **start.bat** +1. If **"Windows protected your PC"** popup appears on your computer (windows blocks any application unknown to it), you can click on **"More info"** and **"Run anyway"** + +## Tutorials +* [Manual](https://github.com/shdwp/dcs_liberation/wiki/Manual) + +You should start with the manual, it covers everything you need to know before playing the campaign. + + +* [Troubleshooting](https://github.com/shdwp/dcs_liberation/wiki/Troubleshooting) + +You could also briefly check the troubleshooting page to get familiar with the known issues that you could probably fix by yourself. + +* [Modding tutorial](https://github.com/shdwp/dcs_liberation/wiki/Modding-tutorial) + +Modding tutorial will cover how to change default loadouts, configure which planes are present in the campaign (or add new altogether) and more. Check this out if you find that something is not going for your liking, there could be a tutorial for changing that. Although be aware that it would require changing source files and could easily result in non functioning application. + +* [Developing guide](https://github.com/shdwp/dcs_liberation/wiki/Developing-guide) + +If you want to contribute to the project, this will give you a brief overview and on how to actually run it from source files. From d284305323d3b6af7718a5e413df82ba882114ba Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Sun, 9 Sep 2018 04:39:03 +0300 Subject: [PATCH 04/12] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ae55f6c3..9a681471 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ [DCS World](https://www.digitalcombatsimulator.com/en/products/world/) single-player dynamic campaign. + Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. ## Installation From 49f2c00d76551286b765f9667b2f27ecfedb4e9f Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Sun, 9 Sep 2018 04:39:53 +0300 Subject: [PATCH 05/12] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9a681471..3dda0d2c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![Logo](https://i.imgur.com/c2k18E1.png) + [DCS World](https://www.digitalcombatsimulator.com/en/products/world/) single-player dynamic campaign. Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. From 8df4607e50b5e931a07bf8b224213f70a7fbc646 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Fri, 14 Sep 2018 23:49:50 +0300 Subject: [PATCH 06/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3dda0d2c..5bc677de 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,6 @@ You could also briefly check the troubleshooting page to get familiar with the k Modding tutorial will cover how to change default loadouts, configure which planes are present in the campaign (or add new altogether) and more. Check this out if you find that something is not going for your liking, there could be a tutorial for changing that. Although be aware that it would require changing source files and could easily result in non functioning application. -* [Developing guide](https://github.com/shdwp/dcs_liberation/wiki/Developing-guide) +* [Development guide](https://github.com/shdwp/dcs_liberation/wiki/Development-guide) If you want to contribute to the project, this will give you a brief overview and on how to actually run it from source files. From e9d7ee51f38b1644d11f8d46e312ca296689d27c Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Mon, 22 Oct 2018 02:29:42 +0300 Subject: [PATCH 07/12] readme upd --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5bc677de..a1528f3d 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. You should start with the manual, it covers everything you need to know before playing the campaign. - * [Troubleshooting](https://github.com/shdwp/dcs_liberation/wiki/Troubleshooting) You could also briefly check the troubleshooting page to get familiar with the known issues that you could probably fix by yourself. From d91e0344a7df1b2d7beee92c19320923724bbbe6 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Tue, 23 Oct 2018 00:54:55 +0300 Subject: [PATCH 08/12] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a1528f3d..ebb02baa 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,10 @@ Uses [pydcs](http://github.com/pydcs/dcs) for mission generation. You should start with the manual, it covers everything you need to know before playing the campaign. +* [Strike objectives reference images](https://imgur.com/a/vCSHa9f) + +If you can't find the strike objective you can see here how it's supposed to look. + * [Troubleshooting](https://github.com/shdwp/dcs_liberation/wiki/Troubleshooting) You could also briefly check the troubleshooting page to get familiar with the known issues that you could probably fix by yourself. From 911d57b415f0fb328cfe0cbae42cb09bd6ebd80b Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Tue, 23 Oct 2018 03:08:01 +0300 Subject: [PATCH 09/12] fixed FOB generation --- gen/groundobjectsgen.py | 5 +++-- theater/caucasus.py | 7 +++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gen/groundobjectsgen.py b/gen/groundobjectsgen.py index dfb27b7f..9ec1cb3f 100644 --- a/gen/groundobjectsgen.py +++ b/gen/groundobjectsgen.py @@ -27,9 +27,10 @@ class GroundObjectsGenerator: center, heading = self.conflict.frontline_position(self.conflict.theater, self.conflict.from_cp, self.conflict.to_cp) heading -= 90 - position = self.conflict.find_ground_position(center.point_from_heading(heading, FARP_FRONTLINE_DISTANCE), heading) + initial_position = center.point_from_heading(heading, FARP_FRONTLINE_DISTANCE) + position = self.conflict.find_ground_position(initial_position, heading) if not position: - return + position = initial_position for i, _ in enumerate(range(0, number_of_units, self.FARP_CAPACITY)): position = position.point_from_heading(0, i * 275) diff --git a/theater/caucasus.py b/theater/caucasus.py index 51922926..b6506b0b 100644 --- a/theater/caucasus.py +++ b/theater/caucasus.py @@ -64,10 +64,9 @@ class CaucasusTheater(ConflictTheater): self.add_controlpoint(self.gudauta, connected_to=[self.sochi, self.sukhumi]) self.add_controlpoint(self.sochi, connected_to=[self.gudauta, self.gelendzhik]) - self.add_controlpoint(self.gelendzhik, connected_to=[self.sochi, self.novorossiysk]) - self.add_controlpoint(self.novorossiysk, connected_to=[self.gelendzhik, self.anapa]) - self.add_controlpoint(self.krymsk, connected_to=[self.novorossiysk, self.anapa, self.krasnodar]) - self.add_controlpoint(self.anapa, connected_to=[self.novorossiysk, self.krymsk]) + self.add_controlpoint(self.gelendzhik, connected_to=[self.sochi, ]) + self.add_controlpoint(self.krymsk, connected_to=[self.anapa, self.krasnodar]) + self.add_controlpoint(self.anapa, connected_to=[self.krymsk]) self.add_controlpoint(self.krasnodar, connected_to=[self.krymsk, self.maykop]) self.add_controlpoint(self.carrier_1) From 854f31cb7a2e452e3f4864aea3af13a5e2fad106 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Tue, 23 Oct 2018 03:40:12 +0300 Subject: [PATCH 10/12] armor balance improvements; fixed trigger for farps --- game/db.py | 26 +++++++++++++++++++++----- gen/triggergen.py | 3 --- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/game/db.py b/game/db.py index ecfbea3f..9b0a65a3 100644 --- a/game/db.py +++ b/game/db.py @@ -85,16 +85,15 @@ PRICES = { C_130: 8, # armor - Armor.MBT_T_55: 4, + Armor.APC_BTR_80: 4, + Armor.MBT_T_55: 6, Armor.MBT_T_80U: 8, Armor.MBT_T_90: 10, + Armor.ATGM_M1134_Stryker: 4, Armor.MBT_M60A3_Patton: 6, Armor.MBT_M1A2_Abrams: 9, - Armor.ATGM_M1134_Stryker: 6, - Armor.APC_BTR_80: 6, - Unarmed.Transport_UAZ_469: 3, Unarmed.Transport_Ural_375: 3, Infantry.Infantry_M4: 1, @@ -181,7 +180,24 @@ UNIT_BY_TASK = { AWACS: [E_3A, A_50, ], - PinpointStrike: [Armor.MBT_T_90, Armor.MBT_T_80U, Armor.MBT_T_55, Armor.MBT_M1A2_Abrams, Armor.MBT_M60A3_Patton, Armor.ATGM_M1134_Stryker, Armor.APC_BTR_80, ], + PinpointStrike: [ + Armor.APC_BTR_80, + Armor.APC_BTR_80, + Armor.APC_BTR_80, + Armor.MBT_T_55, + Armor.MBT_T_55, + Armor.MBT_T_55, + Armor.MBT_T_80U, + Armor.MBT_T_80U, + Armor.MBT_T_90, + + Armor.ATGM_M1134_Stryker, + Armor.ATGM_M1134_Stryker, + Armor.MBT_M60A3_Patton, + Armor.MBT_M60A3_Patton, + Armor.MBT_M60A3_Patton, + Armor.MBT_M1A2_Abrams, + ], AirDefence: [ # those are listed multiple times here to balance prioritization more into lower tier AAs AirDefence.AAA_Vulcan_M163, diff --git a/gen/triggergen.py b/gen/triggergen.py index d22b0fa1..1c4ecc9b 100644 --- a/gen/triggergen.py +++ b/gen/triggergen.py @@ -81,9 +81,6 @@ class TriggersGenerator: if group.task == AWACS.name or group.task == Refueling.name: continue - if player_cp.position.distance_to_point(group.position) > PUSH_TRIGGER_SIZE * 3: - continue - push_by_trigger.append(group) if not group.units[0].is_human(): From 63da35022362147e66bba9f6be5b7f4e6026caa4 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Tue, 23 Oct 2018 04:04:30 +0300 Subject: [PATCH 11/12] armor balance tweaks --- game/db.py | 14 +++++++------- gen/armor.py | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/game/db.py b/game/db.py index 9b0a65a3..f61ee379 100644 --- a/game/db.py +++ b/game/db.py @@ -85,14 +85,14 @@ PRICES = { C_130: 8, # armor - Armor.APC_BTR_80: 4, - Armor.MBT_T_55: 6, - Armor.MBT_T_80U: 8, - Armor.MBT_T_90: 10, + Armor.APC_BTR_80: 12, + Armor.MBT_T_55: 14, + Armor.MBT_T_80U: 18, + Armor.MBT_T_90: 20, - Armor.ATGM_M1134_Stryker: 4, - Armor.MBT_M60A3_Patton: 6, - Armor.MBT_M1A2_Abrams: 9, + Armor.ATGM_M1134_Stryker: 12, + Armor.MBT_M60A3_Patton: 14, + Armor.MBT_M1A2_Abrams: 18, Unarmed.Transport_UAZ_469: 3, Unarmed.Transport_Ural_375: 3, diff --git a/gen/armor.py b/gen/armor.py index de547111..070da766 100644 --- a/gen/armor.py +++ b/gen/armor.py @@ -20,7 +20,7 @@ FRONTLINE_CAS_FIGHTS_COUNT = 4, 8 FRONTLINE_CAS_GROUP_MIN = 1, 2 FRONTLINE_CAS_PADDING = 12000 -FIGHT_DISTANCE = 1500 +FIGHT_DISTANCE = 3500 class ArmorConflictGenerator: From 82f7e5d0c4177fd36819d650db2c98876d8019ac Mon Sep 17 00:00:00 2001 From: Calvin Morrow Date: Tue, 30 Oct 2018 19:40:01 -0700 Subject: [PATCH 12/12] Add initiatorMissionID key to multiplayer debriefing table for dead unit detection --- userdata/debriefing.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/userdata/debriefing.py b/userdata/debriefing.py index f4f6251f..dc43cf47 100644 --- a/userdata/debriefing.py +++ b/userdata/debriefing.py @@ -42,6 +42,10 @@ def parse_mutliplayer_debriefing(contents: str): key = "initiator" if element is None: element = {} + elif line.startswith("initiatorMissionID\t"): + key = "initiatorMissionID" + if element is None: + element = {} elif line.startswith("type\t"): key = "type" if element is None: