Skip to content

Commit d12ca7f

Browse files
author
Michael Fiano
committed
Moved character add/remove methods to the CharacterManager class.
1 parent 40c22c0 commit d12ca7f

File tree

4 files changed

+22
-14
lines changed

4 files changed

+22
-14
lines changed

lib/characters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from constants import *
2-
from sprite import *
2+
from sprite import PlayerSprite
33

44
class BaseCharacter(object):
55
"""The base class from which all other game characters derive."""

lib/manager.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,20 @@
33
class CharacterManager(object):
44

55
def __init__(self, screen):
6+
self.screen = screen
67
self.party = {
78
'hero': CharHero(screen),
89
'test': CharTest(screen) }
10+
11+
def party_add(self, char):
12+
"""Add a new party character to the player's party."""
13+
14+
if not self.party[char] in self.screen.party_sprites:
15+
self.screen.party_sprites.add(self.party[char])
16+
self.screen.add_all_sprites()
17+
18+
def party_remove(self, char):
19+
"""Remove a character from the player's party."""
20+
21+
if self.party[char] in self.screen.party_sprites:
22+
self.party[char].kill()

lib/screens.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ def create_sprites(self):
8888

8989
self.party_sprites = pygame.sprite.Group([
9090
self.chars.party['hero'] ])
91-
self.char_sprites = pygame.sprite.Group([
92-
self.party_sprites ])
9391
self.gui_stats = StatsWindow(self.party_sprites)
9492

9593
def add_all_sprites(self):
9694
"""Add all sprite groups to the drawing order queue."""
9795

96+
self.char_sprites = pygame.sprite.Group([
97+
self.party_sprites ])
9898
self.all_sprites = pygame.sprite.OrderedUpdates([
9999
self.map.layers['terrain'],
100100
self.char_sprites,
@@ -103,15 +103,6 @@ def add_all_sprites(self):
103103
for sprite in self.all_sprites:
104104
self.layers.add(sprite)
105105

106-
def add_to_party(self, chara):
107-
"""Called during gameplay to add a new party character to the game."""
108-
109-
if not self.chars.party[chara] in self.party_sprites:
110-
self.party_sprites.add(self.chars.party['test'])
111-
self.char_sprites = pygame.sprite.Group([
112-
self.party_sprites ])
113-
self.add_all_sprites()
114-
115106
def draw(self):
116107
"""Draws the sprites to the screen and updates the window."""
117108

lib/states.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,12 @@ def check_events(self):
8787
elif event.key == K_d:
8888
pygame.time.set_timer(DIALOG_EVENT, 100)
8989

90-
# An example of adding the test party character to the party.
90+
# An example of adding and removing a test character to the
91+
# party.
9192
elif event.key == K_a:
92-
self.screen.add_to_party("test")
93+
self.screen.chars.party_add("test")
94+
elif event.key == K_z:
95+
self.screen.chars.party_remove("test")
9396

9497
elif event.key in (
9598
HERO_MOVE_DOWN,

0 commit comments

Comments
 (0)