mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Allow selection of a time period, for campaign start
This commit is contained in:
parent
0c7a36cef6
commit
09135adadc
43
game/db.py
43
game/db.py
@ -1,5 +1,6 @@
|
||||
import typing
|
||||
import enum
|
||||
from datetime import datetime
|
||||
|
||||
from dcs.vehicles import *
|
||||
from dcs.ships import *
|
||||
@ -450,6 +451,48 @@ PLANE_LIVERY_OVERRIDES = {
|
||||
FA_18C_hornet: "VFA-34", # default livery for the hornet is blue angels one
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
Possible time periods for new games
|
||||
|
||||
`Name`: daytime(day, month, year),
|
||||
|
||||
`Identifier` is the name that will appear in the menu
|
||||
The object is a python datetime object
|
||||
"""
|
||||
TIME_PERIODS = {
|
||||
"WW2 - Winter [1944]": datetime(1944, 1, 1),
|
||||
"WW2 - Spring [1944]": datetime(1944, 4, 1),
|
||||
"WW2 - Summer [1944]": datetime(1944, 6, 1),
|
||||
"WW2 - Fall [1944]": datetime(1944, 10, 1),
|
||||
"Early Cold War - Winter [1952]": datetime(1952, 1, 1),
|
||||
"Early Cold War - Spring [1952]": datetime(1952, 4, 1),
|
||||
"Early Cold War - Summer [1952]": datetime(1952, 6, 1),
|
||||
"Early Cold War - Fall [1952]": datetime(1952, 10, 1),
|
||||
"Cold War - Winter [1970]": datetime(1970, 1, 1),
|
||||
"Cold War - Spring [1970]": datetime(1970, 4, 1),
|
||||
"Cold War - Summer [1970]": datetime(1970, 6, 1),
|
||||
"Cold War - Fall [1970]": datetime(1970, 10, 1),
|
||||
"Late Cold War - Winter [1985]": datetime(1985, 1, 1),
|
||||
"Late Cold War - Spring [1985]": datetime(1985, 4, 1),
|
||||
"Late Cold War - Summer [1985]": datetime(1985, 6, 1),
|
||||
"Late Cold War - Fall [1985]": datetime(1985, 10, 1),
|
||||
"Gulf War - Winter [1990]": datetime(1990, 1, 1),
|
||||
"Gulf War - Spring [1990]": datetime(1990, 4, 1),
|
||||
"Gulf War - Summer [1990]": datetime(1990, 6, 1),
|
||||
"Gulf War - Fall [1990]": datetime(1990, 10, 1),
|
||||
"Modern - Winter [2010]": datetime(2010, 1, 1),
|
||||
"Modern - Spring [2010]": datetime(2010, 4, 1),
|
||||
"Modern - Summer [2010]": datetime(2010, 6, 1),
|
||||
"Modern - Fall [2010]": datetime(2010, 10, 1),
|
||||
"Georgian War [2008]": datetime(2008, 8, 7),
|
||||
"Syrian War [2011]": datetime(2011, 8, 7),
|
||||
}
|
||||
|
||||
|
||||
|
||||
"""
|
||||
---------- END OF CONFIGURATION SECTION
|
||||
"""
|
||||
|
||||
@ -4,7 +4,7 @@ from tkinter.ttk import *
|
||||
|
||||
from ui.window import *
|
||||
from .styles import STYLES
|
||||
|
||||
from game import db
|
||||
|
||||
class NewGameMenu(Menu):
|
||||
selected_country = None # type: IntVar
|
||||
@ -25,6 +25,8 @@ class NewGameMenu(Menu):
|
||||
self.selected_terrain = IntVar()
|
||||
self.selected_terrain.set(0)
|
||||
|
||||
self.selected_time_period = StringVar()
|
||||
|
||||
self.sams = BooleanVar()
|
||||
self.sams.set(1)
|
||||
|
||||
@ -98,9 +100,20 @@ class NewGameMenu(Menu):
|
||||
Label(terrain, text="Persian Gulf", **STYLES["widget"]).grid(row=2, column=1, sticky=W)
|
||||
self.create_label_image(terrain, "terrain_pg.gif").grid(row=2, column=2, padx=5)
|
||||
|
||||
# Period selection
|
||||
period = LabelFrame(body, text="Time Period", **STYLES["label-frame"])
|
||||
period.grid(row=0, column=2, sticky=N, padx=5)
|
||||
|
||||
vals = list(db.TIME_PERIODS)
|
||||
self.selected_time_period.set(vals[21])
|
||||
period_select = OptionMenu(period, self.selected_time_period, *vals)
|
||||
period_select.configure(**STYLES["btn-primary"])
|
||||
period_select.grid(row=0, column=0, sticky=W)
|
||||
#Label(terrain, text="Caucasus", **STYLES["widget"]).grid(row=0, column=1, sticky=W)
|
||||
|
||||
# Misc Options
|
||||
options = LabelFrame(body, text="Misc Options", **STYLES["label-frame"])
|
||||
options.grid(row=0, column=2, sticky=NE, padx=5)
|
||||
options.grid(row=0, column=3, sticky=NE, padx=5)
|
||||
|
||||
Checkbutton(options, variable=self.sams, **STYLES["radiobutton"]).grid(row=0, column=0, sticky=W)
|
||||
Label(options, text="SAMs", **STYLES["widget"]).grid(row=0, column=1, sticky=W)
|
||||
@ -130,4 +143,5 @@ class NewGameMenu(Menu):
|
||||
self.terrain_name,
|
||||
bool(self.sams.get()),
|
||||
bool(self.midgame.get()),
|
||||
float(self.multiplier.get()))
|
||||
float(self.multiplier.get()),
|
||||
db.TIME_PERIODS[self.selected_time_period.get()])
|
||||
|
||||
@ -87,7 +87,7 @@ class Window:
|
||||
self.right_pane.grid_remove()
|
||||
self.build()
|
||||
|
||||
def start_new_game(self, player_name: str, enemy_name: str, terrain: str, sams: bool, midgame: bool, multiplier: float):
|
||||
def start_new_game(self, player_name: str, enemy_name: str, terrain: str, sams: bool, midgame: bool, multiplier: float, period:datetime):
|
||||
if terrain == "persiangulf":
|
||||
conflicttheater = persiangulf.PersianGulfTheater()
|
||||
elif terrain == "nevada":
|
||||
@ -104,7 +104,7 @@ class Window:
|
||||
game = Game(player_name=player_name,
|
||||
enemy_name=enemy_name,
|
||||
theater=conflicttheater,
|
||||
start_date=datetime.now())
|
||||
start_date=period)
|
||||
game.budget = int(game.budget * multiplier)
|
||||
game.settings.multiplier = multiplier
|
||||
game.settings.sams = sams
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user