Allow selection of a time period, for campaign start

This commit is contained in:
Khopa
2019-06-30 02:58:04 +02:00
parent 0c7a36cef6
commit 09135adadc
3 changed files with 62 additions and 5 deletions

View File

@@ -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()])

View File

@@ -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