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 typing
|
||||||
import enum
|
import enum
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from dcs.vehicles import *
|
from dcs.vehicles import *
|
||||||
from dcs.ships 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
|
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
|
---------- END OF CONFIGURATION SECTION
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from tkinter.ttk import *
|
|||||||
|
|
||||||
from ui.window import *
|
from ui.window import *
|
||||||
from .styles import STYLES
|
from .styles import STYLES
|
||||||
|
from game import db
|
||||||
|
|
||||||
class NewGameMenu(Menu):
|
class NewGameMenu(Menu):
|
||||||
selected_country = None # type: IntVar
|
selected_country = None # type: IntVar
|
||||||
@ -25,6 +25,8 @@ class NewGameMenu(Menu):
|
|||||||
self.selected_terrain = IntVar()
|
self.selected_terrain = IntVar()
|
||||||
self.selected_terrain.set(0)
|
self.selected_terrain.set(0)
|
||||||
|
|
||||||
|
self.selected_time_period = StringVar()
|
||||||
|
|
||||||
self.sams = BooleanVar()
|
self.sams = BooleanVar()
|
||||||
self.sams.set(1)
|
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)
|
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)
|
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
|
# Misc Options
|
||||||
options = LabelFrame(body, text="Misc Options", **STYLES["label-frame"])
|
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)
|
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)
|
Label(options, text="SAMs", **STYLES["widget"]).grid(row=0, column=1, sticky=W)
|
||||||
@ -130,4 +143,5 @@ class NewGameMenu(Menu):
|
|||||||
self.terrain_name,
|
self.terrain_name,
|
||||||
bool(self.sams.get()),
|
bool(self.sams.get()),
|
||||||
bool(self.midgame.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.right_pane.grid_remove()
|
||||||
self.build()
|
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":
|
if terrain == "persiangulf":
|
||||||
conflicttheater = persiangulf.PersianGulfTheater()
|
conflicttheater = persiangulf.PersianGulfTheater()
|
||||||
elif terrain == "nevada":
|
elif terrain == "nevada":
|
||||||
@ -104,7 +104,7 @@ class Window:
|
|||||||
game = Game(player_name=player_name,
|
game = Game(player_name=player_name,
|
||||||
enemy_name=enemy_name,
|
enemy_name=enemy_name,
|
||||||
theater=conflicttheater,
|
theater=conflicttheater,
|
||||||
start_date=datetime.now())
|
start_date=period)
|
||||||
game.budget = int(game.budget * multiplier)
|
game.budget = int(game.budget * multiplier)
|
||||||
game.settings.multiplier = multiplier
|
game.settings.multiplier = multiplier
|
||||||
game.settings.sams = sams
|
game.settings.sams = sams
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user