22
33import ui
44from data import write_top250_to_csv , add_movies_from_top250
5- from model import PlayerHandler , Player
5+ from model import PlayerHandler , Player , MovieHandler
66
77
88class StartupUI (QtWidgets .QWidget ):
@@ -11,6 +11,7 @@ def __init__(self):
1111 self .__game_window = QtWidgets .QWidget ()
1212 self .__add_window = QtWidgets .QWidget ()
1313 self .__player_handler = PlayerHandler ()
14+ self .__movie_handler = MovieHandler ()
1415
1516 self .__btn_start = QtWidgets .QPushButton ("Start Game" )
1617 self .__btn_start .clicked .connect (self .start_game )
@@ -28,13 +29,21 @@ def __init__(self):
2829 self .__txt_header = QtWidgets .QLabel ("Current Players:" )
2930 self .__ed_player_name = QtWidgets .QLineEdit ()
3031
32+ self .__txt_points = QtWidgets .QLabel ("Timeline length for Winning:" )
33+ self .__ed_points = QtWidgets .QLineEdit (str (Player .max_points ))
34+
3135 self .layout = QtWidgets .QVBoxLayout (self )
3236 self .layout_btn = QtWidgets .QHBoxLayout (self )
37+ self .layout_points = QtWidgets .QHBoxLayout (self )
3338
3439 self .layout_btn .addWidget (self .__ed_player_name )
3540 self .layout_btn .addWidget (self .__btn_add_player )
3641 self .layout_btn .addWidget (self .__btn_rem_player )
3742
43+ self .layout_points .addWidget (self .__txt_points )
44+ self .layout_points .addWidget (self .__ed_points )
45+
46+ self .layout .addLayout (self .layout_points )
3847 self .layout .addWidget (self .__txt_header )
3948 self .layout .addWidget (self .__player_list )
4049 self .layout .addLayout (self .layout_btn )
@@ -54,11 +63,33 @@ def start_game(self):
5463 self .__btn_start = dlg .exec ()
5564 return
5665
66+ if not self .__ed_points .text ():
67+ dlg = QtWidgets .QMessageBox (self )
68+ dlg .setWindowTitle ("Error" )
69+ dlg .setText ("There are no points specified" )
70+ self .__btn_start = dlg .exec ()
71+ return
72+
73+ if not self .__ed_points .text ().isdigit ():
74+ dlg = QtWidgets .QMessageBox (self )
75+ dlg .setWindowTitle ("Error" )
76+ dlg .setText ("The points are not a number" )
77+ self .__btn_start = dlg .exec ()
78+ return
79+
80+ if int (self .__ed_points .text ())- 1 * self .__player_list .count () > self .__movie_handler .get_movie_amount ():
81+ dlg = QtWidgets .QMessageBox (self )
82+ dlg .setWindowTitle ("Error" )
83+ dlg .setText ("There are not enough movies for that many points" )
84+ self .__btn_start = dlg .exec ()
85+ return
86+
5787 for idx in range (self .__player_list .count ()):
5888 i = self .__player_list .item (idx )
5989 p = Player (i .text ())
6090 self .__player_handler .add_new_player (p )
6191
92+ Player .max_points = int (self .__ed_points .text ())
6293 self .__game_window = ui .GameUI ()
6394 self .close ()
6495
0 commit comments