comparison gamelib/gamegui.py @ 106:5977a709f8c8

Refactor out a bunch of common gui code stuff (since Jermery's not touching this)
author Neil Muller <drnlmuller@gmail.com>
date Wed, 09 May 2012 22:19:09 +0200
parents e386ec5d179b
children bdd11db41124
comparison
equal deleted inserted replaced
105:86a6434c4eb2 106:5977a709f8c8
308 won = TextLabel((200, 250, 400, 50), msg, font_large, 308 won = TextLabel((200, 250, 400, 50), msg, font_large,
309 (255, 255, 255)) 309 (255, 255, 255))
310 self.add_child(won) 310 self.add_child(won)
311 311
312 312
313 class ActivityWindow(Window): 313 class GameStateWindow(Window):
314 314 """Base class for windows that show a lot of game state info"""
315 def __init__(self, screen, lab, develop): 315
316 super(ActivityWindow, self).__init__(screen) 316 def __init__(self, screen, game):
317 self.lab = lab 317 super(GameStateWindow, self).__init__(screen)
318 self.develop = develop 318 self.game = game
319 self.game = lab.game
320 self.screen = screen 319 self.screen = screen
321 exitbut = ExitGameButton() 320 exitbut = ExitGameButton()
322 self.add_child(exitbut) 321 self.add_child(exitbut)
323 end_turn = EndTurnButton(self) 322 end_turn = EndTurnButton(self)
324 self.add_child(end_turn) 323 self.add_child(end_turn)
333 self.milestone = ValueLabel((10, 95), 'Currently taken over') 332 self.milestone = ValueLabel((10, 95), 'Currently taken over')
334 self.add_child(self.milestone) 333 self.add_child(self.milestone)
335 self.reputation = ValueLabel((310, 95), 'Reputation') 334 self.reputation = ValueLabel((310, 95), 'Reputation')
336 self.add_child(self.reputation) 335 self.add_child(self.reputation)
337 336
337 def update_labels(self):
338 self.points.set_value(self.game.get_available_points())
339 self.money.set_value(self.game.money)
340 self.milestone.set_value(self.game.milestone)
341 self.reputation.set_value(self.game.reputation)
342
343
344 class ActivityWindow(GameStateWindow):
345
346 def __init__(self, screen, lab, develop):
347 super(ActivityWindow, self).__init__(screen, lab.game)
348 self.lab = lab
349 self.develop = develop
350
338 labbut = SwitchWinButton((150, 10), 'Research', lab) 351 labbut = SwitchWinButton((150, 10), 'Research', lab)
339 self.add_child(labbut) 352 self.add_child(labbut)
340
341 devbut = SwitchWinButton((300, 10), 'Development', develop) 353 devbut = SwitchWinButton((300, 10), 'Development', develop)
342 self.add_child(devbut) 354 self.add_child(devbut)
343 355
344 self.update_labels() 356 self.update_labels()
345 self._missions = [] 357 self._missions = []
371 self._make_widgets() 383 self._make_widgets()
372 384
373 def update(self): 385 def update(self):
374 self.update_labels() 386 self.update_labels()
375 387
376 def update_labels(self):
377 self.points.set_value(self.game.get_available_points())
378 self.money.set_value(self.game.money)
379 self.milestone.set_value(self.game.milestone)
380 self.reputation.set_value(self.game.reputation)
381
382 def do_reset(self): 388 def do_reset(self):
383 self.lab.reset() 389 self.lab.reset()
384 self.develop.reset() 390 self.develop.reset()
385 self.reset() 391 self.reset()
386 392
397 for widget in self._missions: 403 for widget in self._missions:
398 widget.reset() 404 widget.reset()
399 self.update_labels() 405 self.update_labels()
400 406
401 407
402 class DevelopmentWindow(Window): 408 class DevelopmentWindow(GameStateWindow):
403 """Window for handling schematics research""" 409 """Window for handling schematics research"""
404 410
405 def __init__(self, screen, lab): 411 def __init__(self, screen, lab):
406 super(DevelopmentWindow, self).__init__(screen) 412 super(DevelopmentWindow, self).__init__(screen, lab.game)
407 self.lab = lab 413 self.lab = lab
408 self.game = lab.game
409 exitbut = ExitGameButton()
410 self.add_child(exitbut)
411 end_turn = EndTurnButton(self)
412 self.add_child(end_turn)
413 reset = ResetButton(self)
414 self.add_child(reset)
415
416 self.points = ValueLabel((10, 75), 'Available Human Resources')
417 self.add_child(self.points)
418 self.money = ValueLabel((310, 75), 'Money')
419 self.add_child(self.money)
420
421 self.milestone = ValueLabel((10, 95), 'Currently taken over')
422 self.add_child(self.milestone)
423 self.reputation = ValueLabel((310, 95), 'Reputation')
424 self.add_child(self.reputation)
425 414
426 labbut = SwitchWinButton((150, 10), 'Research', lab) 415 labbut = SwitchWinButton((150, 10), 'Research', lab)
427 self.add_child(labbut) 416 self.add_child(labbut)
428 self.activity = None 417 self.activity = None
429 418
466 self.update_labels() 455 self.update_labels()
467 456
468 def update(self): 457 def update(self):
469 self.update_labels() 458 self.update_labels()
470 459
471 def update_labels(self):
472 self.points.set_value(self.game.get_available_points())
473 self.money.set_value(self.game.money)
474 self.milestone.set_value(self.game.milestone)
475 self.reputation.set_value(self.game.reputation)
476
477 def do_reset(self): 460 def do_reset(self):
478 self.reset() 461 self.reset()
479 self.lab.reset() 462 self.lab.reset()
480 self.activity.reset() 463 self.activity.reset()
481 464
482 def reset(self): 465 def reset(self):
483 for widget in self._sciences: 466 for widget in self._sciences:
484 widget.reset() 467 widget.reset()
485 468
486 469
487 class LabWindow(Window): 470 class LabWindow(GameStateWindow):
488 """Window for the research lab""" 471 """Window for the research lab"""
489 472
490 def __init__(self, screen, game_dict): 473 def __init__(self, screen, game_dict):
491 super(LabWindow, self).__init__(screen)
492 self.screen = screen
493 self.game = Game(game_dict) 474 self.game = Game(game_dict)
494 exit = ExitGameButton() 475 super(LabWindow, self).__init__(screen, self.game)
495 self.add_child(exit)
496 end_turn = EndTurnButton(self)
497 self.add_child(end_turn)
498 reset = ResetButton(self)
499 self.add_child(reset)
500 self.autosave = get_save_filename() 476 self.autosave = get_save_filename()
501
502 self.points = ValueLabel((10, 75), 'Available Human Resources')
503 self.add_child(self.points)
504 self.money = ValueLabel((310, 75), 'Money')
505 self.add_child(self.money)
506
507 self.milestone = ValueLabel((10, 95), 'Currently taken over')
508 self.add_child(self.milestone)
509 self.reputation = ValueLabel((310, 95), 'Reputation')
510 self.add_child(self.reputation)
511 477
512 self.develop = DevelopmentWindow(screen, self) 478 self.develop = DevelopmentWindow(screen, self)
513 self.activity = ActivityWindow(screen, self, self.develop) 479 self.activity = ActivityWindow(screen, self, self.develop)
514 self.develop.set_activity_window(self.activity) 480 self.develop.set_activity_window(self.activity)
515 481
567 AddWindow.post(results) 533 AddWindow.post(results)
568 534
569 def update(self): 535 def update(self):
570 self.update_labels() 536 self.update_labels()
571 537
572 def update_labels(self):
573 self.points.set_value(self.game.get_available_points())
574 self.money.set_value(self.game.money)
575 self.milestone.set_value(self.game.milestone)
576 self.reputation.set_value(self.game.reputation)
577
578 def do_reset(self): 538 def do_reset(self):
579 self.reset() 539 self.reset()
580 self.develop.reset() 540 self.develop.reset()
581 self.activity.reset() 541 self.activity.reset()
582 542