Compare commits

...

4 Commits
1.4 ... 1.4.3

Author SHA1 Message Date
Vasyl Horbachenko
854f31cb7a armor balance improvements; fixed trigger for farps 2018-10-23 03:40:12 +03:00
Vasyl Horbachenko
eba6daf6c8 Merge remote-tracking branch 'origin/master' 2018-10-23 03:08:13 +03:00
Vasyl Horbachenko
911d57b415 fixed FOB generation 2018-10-23 03:08:01 +03:00
Vasyl Horbachenko
d91e0344a7 Update README.md 2018-10-23 00:54:55 +03:00
5 changed files with 31 additions and 14 deletions

View File

@@ -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. 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) * [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. You could also briefly check the troubleshooting page to get familiar with the known issues that you could probably fix by yourself.

View File

@@ -85,16 +85,15 @@ PRICES = {
C_130: 8, C_130: 8,
# armor # armor
Armor.MBT_T_55: 4, Armor.APC_BTR_80: 4,
Armor.MBT_T_55: 6,
Armor.MBT_T_80U: 8, Armor.MBT_T_80U: 8,
Armor.MBT_T_90: 10, Armor.MBT_T_90: 10,
Armor.ATGM_M1134_Stryker: 4,
Armor.MBT_M60A3_Patton: 6, Armor.MBT_M60A3_Patton: 6,
Armor.MBT_M1A2_Abrams: 9, Armor.MBT_M1A2_Abrams: 9,
Armor.ATGM_M1134_Stryker: 6,
Armor.APC_BTR_80: 6,
Unarmed.Transport_UAZ_469: 3, Unarmed.Transport_UAZ_469: 3,
Unarmed.Transport_Ural_375: 3, Unarmed.Transport_Ural_375: 3,
Infantry.Infantry_M4: 1, Infantry.Infantry_M4: 1,
@@ -181,7 +180,24 @@ UNIT_BY_TASK = {
AWACS: [E_3A, A_50, ], 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: [ AirDefence: [
# those are listed multiple times here to balance prioritization more into lower tier AAs # those are listed multiple times here to balance prioritization more into lower tier AAs
AirDefence.AAA_Vulcan_M163, AirDefence.AAA_Vulcan_M163,

View File

@@ -27,9 +27,10 @@ class GroundObjectsGenerator:
center, heading = self.conflict.frontline_position(self.conflict.theater, self.conflict.from_cp, self.conflict.to_cp) center, heading = self.conflict.frontline_position(self.conflict.theater, self.conflict.from_cp, self.conflict.to_cp)
heading -= 90 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: if not position:
return position = initial_position
for i, _ in enumerate(range(0, number_of_units, self.FARP_CAPACITY)): for i, _ in enumerate(range(0, number_of_units, self.FARP_CAPACITY)):
position = position.point_from_heading(0, i * 275) position = position.point_from_heading(0, i * 275)

View File

@@ -81,9 +81,6 @@ class TriggersGenerator:
if group.task == AWACS.name or group.task == Refueling.name: if group.task == AWACS.name or group.task == Refueling.name:
continue continue
if player_cp.position.distance_to_point(group.position) > PUSH_TRIGGER_SIZE * 3:
continue
push_by_trigger.append(group) push_by_trigger.append(group)
if not group.units[0].is_human(): if not group.units[0].is_human():

View File

@@ -64,10 +64,9 @@ class CaucasusTheater(ConflictTheater):
self.add_controlpoint(self.gudauta, connected_to=[self.sochi, self.sukhumi]) 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.sochi, connected_to=[self.gudauta, self.gelendzhik])
self.add_controlpoint(self.gelendzhik, connected_to=[self.sochi, self.novorossiysk]) self.add_controlpoint(self.gelendzhik, connected_to=[self.sochi, ])
self.add_controlpoint(self.novorossiysk, connected_to=[self.gelendzhik, self.anapa]) self.add_controlpoint(self.krymsk, connected_to=[self.anapa, self.krasnodar])
self.add_controlpoint(self.krymsk, connected_to=[self.novorossiysk, self.anapa, self.krasnodar]) self.add_controlpoint(self.anapa, connected_to=[self.krymsk])
self.add_controlpoint(self.anapa, connected_to=[self.novorossiysk, self.krymsk])
self.add_controlpoint(self.krasnodar, connected_to=[self.krymsk, self.maykop]) self.add_controlpoint(self.krasnodar, connected_to=[self.krymsk, self.maykop])
self.add_controlpoint(self.carrier_1) self.add_controlpoint(self.carrier_1)