X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=plomrogue%2Fcommands.py;h=074cc343873a80b17e6383b604c7e109217210c6;hb=ce80e43db5939580763b1f66bff4f87f1cccc383;hp=653fc74ff7ecb3c0d4d44f2570f3fe03df7c30ea;hpb=44ebe11030d1f2c6faf5cf57b83e950318893500;p=plomrogue2 diff --git a/plomrogue/commands.py b/plomrogue/commands.py index 653fc74..074cc34 100644 --- a/plomrogue/commands.py +++ b/plomrogue/commands.py @@ -277,14 +277,16 @@ def cmd_GOD_THING_PROTECTION(game, thing_id, protection_char): t.protection = protection_char cmd_GOD_THING_PROTECTION.argtypes = 'int:pos char' -def cmd_THING_DOOR_CLOSED(game, thing_id): +def cmd_THING_DOOR_CLOSED(game, thing_id, locked): t = game.get_thing(thing_id) if not t: raise GameError('thing of ID %s not found' % thing_id) if not t.type_ == 'Door': raise GameError('thing of ID %s not door' % thing_id) t.close() -cmd_THING_DOOR_CLOSED.argtypes = 'int:pos' + if locked: + t.lock() +cmd_THING_DOOR_CLOSED.argtypes = 'int:pos bool' def cmd_THING_MUSICPLAYER_SETTINGS(game, thing_id, playing, index, repeat): t = game.get_thing(thing_id) @@ -380,3 +382,17 @@ def cmd_THING_HAT_DESIGN(game, thing_id, design): raise GameError('thing of ID %s not a hat' % thing_id) t.design = design cmd_THING_HAT_DESIGN.argtypes = 'int:pos string' + +def cmd_THING_DOOR_KEY(game, key_id, door_id): + key = game.get_thing(key_id) + if not key: + raise GameError('thing of ID %s not found' % key_id) + if key.type_ != 'DoorKey': + raise GameError('thing of ID %s not a door key' % key_id) + door = game.get_thing(door_id) + if not door: + raise GameError('thing of ID %s not found' % door_id) + if door.type_ != 'Door': + raise GameError('thing of ID %s not a door' % key_id) + key.door = door +cmd_THING_DOOR_KEY.argtypes = 'int:pos int:pos'