Ground objects are always generated and destroyable, even when it's not the current mission objective.

Fix : SAM site destruction status is saved correctly.
Added most SAM site to generator.
This commit is contained in:
Khopa
2019-10-06 16:14:13 +02:00
parent 17352bfcf7
commit 2167953b87
40 changed files with 808 additions and 68 deletions

63
qt_ui/main2.py Normal file
View File

@@ -0,0 +1,63 @@
import datetime
from dcs import Mission
from dcs.terrain import Caucasus
from dcs.vehicles import AirDefence
from game import Game
from gen.sam.sam_avenger import AvengerGenerator
from gen.sam.sam_chaparral import ChaparralGenerator
from gen.sam.sam_gepard import GepardGenerator
from gen.sam.sam_hawk import HawkGenerator
from gen.sam.sam_linebacker import LinebackerGenerator
from gen.sam.sam_patriot import PatriotGenerator
from gen.sam.sam_rapier import RapierGenerator
from gen.sam.sam_roland import RolandGenerator
from gen.sam.sam_sa10 import SA10Generator
from gen.sam.sam_sa11 import SA11Generator
from gen.sam.sam_sa13 import SA13Generator
from gen.sam.sam_sa15 import SA15Generator
from gen.sam.sam_sa19 import SA19Generator
from gen.sam.sam_sa2 import SA2Generator
from gen.sam.sam_sa3 import SA3Generator
from gen.sam.sam_sa6 import SA6Generator
from gen.sam.sam_sa8 import SA8Generator
from gen.sam.sam_sa9 import SA9Generator
from gen.sam.sam_zsu23 import ZSU23Generator
from gen.sam.sam_zu23 import ZU23Generator
from gen.sam.sam_zu23_ural import ZU23UralGenerator
from theater import TheaterGroundObject
from theater.caucasus import WesternGeorgia
ter = Caucasus()
m = Mission()
game = Game("USA 1990", "Iran 2015", WesternGeorgia(), datetime.datetime.now())
generated_groups = []
for i,c in enumerate([SA3Generator, SA2Generator, SA6Generator, RapierGenerator,
HawkGenerator, SA10Generator, SA19Generator, ZU23Generator,
SA8Generator, SA11Generator, SA9Generator, SA13Generator,
ZSU23Generator, SA15Generator, GepardGenerator, RolandGenerator,
PatriotGenerator, ZU23UralGenerator, ChaparralGenerator,
AvengerGenerator, LinebackerGenerator]):
t = TheaterGroundObject()
t.position = ter.kutaisi().position
t.position.x += i*250
t.dcs_identifier = "AA"
gen = c(game, t)
gen.generate()
vehicle_group = gen.get_generated_group()
generated_groups.append(vehicle_group)
for g in generated_groups:
g.name = m.string(g.name)
for unit in g.units:
unit.name = m.string(unit.name)
m.country("USA").add_vehicle_group(g)
m.save("./test.miz")

View File

@@ -264,15 +264,6 @@ class QLiberationMap(QGraphicsView):
overlay.setGraphicsEffect(effect)
@staticmethod
def set_display_rule(rule: str, value: bool):
QLiberationMap.display_rules[rule] = value

View File

@@ -13,7 +13,21 @@ class QMapGroundObject(QGraphicsRectItem):
self.parent = parent
self.setAcceptHoverEvents(True)
self.setZValue(2)
self.setToolTip(cp.name + "'s " + self.model.category)
if len(self.model.groups) > 0:
units = {}
for g in self.model.groups:
for u in g.units:
if u.type in units.keys():
units[u.type] = units[u.type]+1
else:
units[u.type] = 1
tooltip = ""
for unit in units.keys():
tooltip = tooltip + str(unit) + "x" + str(units[unit]) + "\n"
self.setToolTip(tooltip + str(model.groups[0].id) + str(model.groups[0].name))
else:
self.setToolTip(cp.name + "'s " + self.model.category)
def paint(self, painter, option, widget=None):

View File

@@ -67,11 +67,11 @@ class NewGameWizard(QtWidgets.QWizard):
conflicttheater.controlpoints[i].captured = True
start_generator.generate_inital_units(conflicttheater, enemy_name, sams, multiplier)
start_generator.generate_groundobjects(conflicttheater)
game = Game(player_name=player_name,
enemy_name=enemy_name,
theater=conflicttheater,
start_date=period)
start_generator.generate_groundobjects(conflicttheater, game)
game.budget = int(game.budget * multiplier)
game.settings.multiplier = multiplier
game.settings.sams = sams