Mercurial > skaapsteker
diff skaapsteker/levelscene.py @ 302:78220c989e6a
Add supporting for flicking between speaking NPCs.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Fri, 08 Apr 2011 23:27:43 +0200 |
parents | c68f2f3efc7f |
children | 7db1b7c5c961 |
line wrap: on
line diff
--- a/skaapsteker/levelscene.py Fri Apr 08 23:16:11 2011 +0200 +++ b/skaapsteker/levelscene.py Fri Apr 08 23:27:43 2011 +0200 @@ -37,7 +37,9 @@ for sprite in self._level.sprites: self._world.add(sprite) - for sprite in self.game_state.create_sprites(self._level.name): + npcs_and_items = game_state.create_sprites(self._level.name) + self._npcs = dict((s.name, s) for s in npcs_and_items if hasattr(s, 'dsm')) + for sprite in npcs_and_items: self._world.add(sprite) self._world.add(self._player) @@ -112,6 +114,8 @@ self._paused = True def _open_dialogue(self, npc): + if isinstance(npc, basestring): + npc = self._npcs[npc] if npc.dsm.has_text(): if self._dialogue is not None: self._dialogue.close()