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)
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'
+
+def cmd_GOD_PLAYER_HAT(game, name, hat):
+ game.hats[name] = hat
+cmd_GOD_PLAYER_HAT.argtypes = 'string string'
+
+def cmd_THING_HAT_DESIGN(game, thing_id, design):
+ if len(design) != 9:
+ raise GameError('hat design of wrong length')
+ t = game.get_thing(thing_id)
+ if not t:
+ raise GameError('thing of ID %s not found' % thing_id)
+ if t.type_ != 'Hat':
+ raise GameError('thing of ID %s not a hat' % thing_id)
+ t.design = design
+cmd_THING_HAT_DESIGN.argtypes = 'int:pos string'