home
·
contact
·
privacy
projects
/
plomrogue2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add player-identifying meta characters next to @ symbols.
[plomrogue2]
/
plomrogue
/
game.py
diff --git
a/plomrogue/game.py
b/plomrogue/game.py
index 1ffbf1acfa186f900d96a8252bd5db58dd5fa0a8..29e2de15fe605f92f11cebc967815927ea9b7fd8 100755
(executable)
--- a/
plomrogue/game.py
+++ b/
plomrogue/game.py
@@
-4,6
+4,7
@@
from plomrogue.errors import GameError, PlayError
from plomrogue.io import GameIO
from plomrogue.misc import quote
from plomrogue.mapping import YX, MapGeometrySquare, Map
from plomrogue.io import GameIO
from plomrogue.misc import quote
from plomrogue.mapping import YX, MapGeometrySquare, Map
+import string
@@
-48,6
+49,8
@@
class Game(GameBase):
self.map_control_passwords = {}
self.annotations = {}
self.portals = {}
self.map_control_passwords = {}
self.annotations = {}
self.portals = {}
+ self.player_chars = string.digits + string.ascii_letters
+ self.player_char_i = -1
if os.path.exists(self.io.save_file):
if not os.path.isfile(self.io.save_file):
raise GameError('save file path refers to non-file')
if os.path.exists(self.io.save_file):
if not os.path.isfile(self.io.save_file):
raise GameError('save file path refers to non-file')
@@
-76,7
+79,6
@@
class Game(GameBase):
return True
def get_string_options(self, string_option_type):
return True
def get_string_options(self, string_option_type):
- import string
if string_option_type == 'direction':
return self.map_geometry.get_directions()
elif string_option_type == 'char':
if string_option_type == 'direction':
return self.map_geometry.get_directions()
elif string_option_type == 'char':
@@
-110,6
+112,9
@@
class Game(GameBase):
if hasattr(t, 'nickname'):
self.io.send('THING_NAME %s %s' % (t.id_,
quote(t.nickname)), c_id)
if hasattr(t, 'nickname'):
self.io.send('THING_NAME %s %s' % (t.id_,
quote(t.nickname)), c_id)
+ if hasattr(t, 'player_char'):
+ self.io.send('THING_CHAR %s %s' % (t.id_,
+ quote(t.player_char)), c_id)
for yx in [yx for yx in self.portals
if player.fov_stencil[yx] == '.']:
self.io.send('PORTAL %s %s' % (yx, quote(self.portals[yx])), c_id)
for yx in [yx for yx in self.portals
if player.fov_stencil[yx] == '.']:
self.io.send('PORTAL %s %s' % (yx, quote(self.portals[yx])), c_id)
@@
-187,6
+192,12
@@
class Game(GameBase):
return 1
return max([t.id_ for t in self.things]) + 1
return 1
return max([t.id_ for t in self.things]) + 1
+ def get_next_player_char(self):
+ self.player_char_i += 1
+ if self.player_char_i >= len(self.player_chars):
+ self.player_char_i = 0
+ return self.player_chars[self.player_char_i]
+
def save(self):
def write(f, msg):
def save(self):
def write(f, msg):