mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
gulf & nevada maps integration; updates to commisioning/start generation units logic; mission gen updates; carriers always on map
This commit is contained in:
@@ -143,7 +143,7 @@ class EventMenu(Menu):
|
||||
clients=scrambled_clients)
|
||||
elif type(self.event) is GroundInterceptEvent:
|
||||
e = self.event # type: GroundInterceptEvent
|
||||
e.player_attacking(e.to_cp.position.random_point_within(30000), strikegroup=scrambled_aircraft, clients=scrambled_clients)
|
||||
e.player_attacking(strikegroup=scrambled_aircraft, clients=scrambled_clients)
|
||||
|
||||
self.game.initiate_event(self.event)
|
||||
EventResultsMenu(self.window, self.parent, self.game, self.event).display()
|
||||
|
||||
@@ -21,6 +21,9 @@ class EventResultsMenu(Menu):
|
||||
self.window.clear_right_pane()
|
||||
|
||||
if not self.finished:
|
||||
"""
|
||||
For debugging purposes
|
||||
|
||||
Button(self.frame, text="no losses, succ", command=self.simulate_result(0, 1)).grid()
|
||||
Button(self.frame, text="no losses, fail", command=self.simulate_result(0, 1)).grid(row=1, column=1)
|
||||
|
||||
@@ -29,6 +32,7 @@ class EventResultsMenu(Menu):
|
||||
|
||||
Button(self.frame, text="full losses, succ", command=self.simulate_result(1, 0)).grid(row=3, )
|
||||
Button(self.frame, text="full losses, fail", command=self.simulate_result(1, 0)).grid(row=3, column=1)
|
||||
"""
|
||||
|
||||
Label(self.frame, text="Play the mission and save debriefing to {}".format(debriefing_directory_location())).grid(row=0, column=0)
|
||||
else:
|
||||
|
||||
@@ -6,6 +6,7 @@ from ui.window import *
|
||||
|
||||
class NewGameMenu(Menu):
|
||||
selected_country = None # type: IntVar
|
||||
selected_terrain = None # type: IntVar
|
||||
|
||||
def __init__(self, window: Window, callback: typing.Callable):
|
||||
super(NewGameMenu, self).__init__(window, None, None)
|
||||
@@ -15,6 +16,9 @@ class NewGameMenu(Menu):
|
||||
self.selected_country = IntVar()
|
||||
self.selected_country.set(0)
|
||||
|
||||
self.selected_terrain = IntVar()
|
||||
self.selected_terrain.set(0)
|
||||
|
||||
@property
|
||||
def player_country_name(self):
|
||||
if self.selected_country.get() == 0:
|
||||
@@ -29,13 +33,27 @@ class NewGameMenu(Menu):
|
||||
else:
|
||||
return "Russia"
|
||||
|
||||
@property
|
||||
def terrain_name(self) -> str:
|
||||
if self.selected_terrain.get() == 0:
|
||||
return "caucasus"
|
||||
elif self.selected_terrain.get() == 1:
|
||||
return "nevada"
|
||||
else:
|
||||
return "persiangulf"
|
||||
|
||||
def display(self):
|
||||
self.window.clear_right_pane()
|
||||
|
||||
Label(self.frame, text="Player country").grid(row=0, column=0)
|
||||
Radiobutton(self.frame, text="USA", variable=self.selected_country, value=0).grid(row=1, column=0)
|
||||
Radiobutton(self.frame, text="Russia", variable=self.selected_country, value=1).grid(row=2, column=0)
|
||||
Button(self.frame, text="Proceed", command=self.proceed).grid(row=3, column=0)
|
||||
|
||||
Label(self.frame, text="Terrain").grid(row=0, column=1)
|
||||
Radiobutton(self.frame, text="Caucasus", variable=self.selected_terrain, value=0).grid(row=1, column=1)
|
||||
Radiobutton(self.frame, text="Nevada", variable=self.selected_terrain, value=1).grid(row=2, column=1)
|
||||
Radiobutton(self.frame, text="Persian Gulf", variable=self.selected_terrain, value=2).grid(row=3, column=1)
|
||||
Button(self.frame, text="Proceed", command=self.proceed).grid(row=4, column=0, columnspan=2)
|
||||
|
||||
def proceed(self):
|
||||
self.callback(self.player_country_name, self.enemy_country_name)
|
||||
self.callback(self.player_country_name, self.enemy_country_name, self.terrain_name)
|
||||
|
||||
@@ -11,14 +11,14 @@ class OverviewCanvas:
|
||||
mainmenu = None # type: ui.mainmenu.MainMenu
|
||||
|
||||
def __init__(self, frame: Frame, parent, game: Game):
|
||||
self.canvas = Canvas(frame, width=616, height=350)
|
||||
self.canvas.grid(column=0, row=0, sticky=NSEW)
|
||||
self.image = PhotoImage(file="resources/caumap.gif")
|
||||
self.parent = parent
|
||||
|
||||
self.game = game
|
||||
|
||||
def cp_coordinates(self, cp: ControlPoint) -> (int, int):
|
||||
self.image = PhotoImage(file=os.path.join("resources", game.theater.overview_image))
|
||||
self.canvas = Canvas(frame, width=self.image.width(), height=self.image.height())
|
||||
self.canvas.grid(column=0, row=0, sticky=NSEW)
|
||||
|
||||
def transform_point(self, p: Point) -> (int, int):
|
||||
point_a = list(self.game.theater.reference_points.keys())[0]
|
||||
point_a_img = self.game.theater.reference_points[point_a]
|
||||
|
||||
@@ -35,8 +35,8 @@ class OverviewCanvas:
|
||||
y_scale = float(y_dist) / float(lat_dist)
|
||||
|
||||
# ---
|
||||
x_offset = cp.position.x - point_a[0]
|
||||
y_offset = cp.position.y - point_a[1]
|
||||
x_offset = p.x - point_a[0]
|
||||
y_offset = p.y - point_a[1]
|
||||
|
||||
return point_b_img[1] + y_offset * y_scale, point_a_img[0] - x_offset * x_scale
|
||||
|
||||
@@ -54,9 +54,9 @@ class OverviewCanvas:
|
||||
self.canvas.create_image((self.image.width()/2, self.image.height()/2), image=self.image)
|
||||
|
||||
for cp in self.game.theater.controlpoints:
|
||||
coords = self.cp_coordinates(cp)
|
||||
coords = self.transform_point(cp.position)
|
||||
for connected_cp in cp.connected_points:
|
||||
connected_coords = self.cp_coordinates(connected_cp)
|
||||
connected_coords = self.transform_point(connected_cp.position)
|
||||
if connected_cp.captured != cp.captured:
|
||||
color = "red"
|
||||
elif connected_cp.captured and cp.captured:
|
||||
@@ -67,7 +67,7 @@ class OverviewCanvas:
|
||||
self.canvas.create_line((coords[0], coords[1], connected_coords[0], connected_coords[1]), width=2, fill=color)
|
||||
|
||||
for cp in self.game.theater.controlpoints:
|
||||
coords = self.cp_coordinates(cp)
|
||||
coords = self.transform_point(cp.position)
|
||||
arc_size = 22 * math.pow(cp.importance, 1)
|
||||
extent = max(cp.base.strength * 180, 10)
|
||||
start = (180 - extent) / 2
|
||||
@@ -79,6 +79,15 @@ class OverviewCanvas:
|
||||
style=PIESLICE,
|
||||
start=start,
|
||||
extent=extent)
|
||||
|
||||
"""
|
||||
For debugging purposes
|
||||
|
||||
for r in cp.radials:
|
||||
p = self.transform_point(cp.position.point_from_heading(r, 20000))
|
||||
self.canvas.create_text(p[0], p[1], text="{}".format(r))
|
||||
"""
|
||||
|
||||
self.canvas.tag_bind(cp_id, "<Button-1>", self.display(cp))
|
||||
self.create_cp_title((coords[0] + arc_size/4, coords[1] + arc_size/4), cp)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user