home · contact · privacy
Add editable player faces.
[plomrogue2] / plomrogue / commands.py
index 07bfae0e1b905f8141fe281d1c475b44fcd400e0..0ccbdc1cb50ef3b646474e1d165fe0a4444ea701 100644 (file)
@@ -285,7 +285,7 @@ def cmd_THING_MUSICPLAYER_SETTINGS(game, thing_id, playing, index, repeat):
     t.playing = playing
     t.playlist_index = index
     t.repeat = repeat
-cmd_THING_MUSICPLAYER_SETTINGS.argtypes = 'int:pos bool int:nonneg bool'
+cmd_THING_MUSICPLAYER_SETTINGS.argtypes = 'int:pos bool int bool'
 
 def cmd_THING_MUSICPLAYER_PLAYLIST_ITEM(game, thing_id, title, length):
     t = game.get_thing(thing_id)
@@ -304,3 +304,26 @@ def cmd_THING_BOTTLE_EMPTY(game, thing_id):
         raise GameError('thing of ID %s not bottle' % thing_id)
     t.empty()
 cmd_THING_BOTTLE_EMPTY.argtypes = 'int:pos'
+
+def cmd_THING_INSTALLED(game, thing_id):
+    t = game.get_thing(thing_id)
+    if not t:
+        raise GameError('thing of ID %s not found' % thing_id)
+    if not hasattr(t, 'installable'):
+        raise GameError('thing of ID %s not installable' % thing_id)
+    t.install()
+cmd_THING_INSTALLED.argtypes = 'int:pos'
+
+def cmd_PLAYER_FACE(game, face, connection_id):
+    t = game.get_player(connection_id)
+    if not t:
+        raise GameError('can only draw face when already logged in')
+    if len(face) != 9:
+        raise GameError('wrong face string length')
+    game.faces[t.name] = face
+    game.changed = True
+cmd_PLAYER_FACE.argtypes = 'string'
+
+def cmd_GOD_PLAYER_FACE(game, name, face):
+    game.faces[name] = face
+cmd_GOD_PLAYER_FACE.argtypes = 'string string'