Mercurial > sypikslang
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 |