X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=plomrogue%2Fcommands.py;h=653fc74ff7ecb3c0d4d44f2570f3fe03df7c30ea;hb=0f924e175d0f321e703e3f00511b547c4a027dbc;hp=50445e7f9c62f557b098d7e4781723679c11c74d;hpb=1ff4078be77dba8b4c4a5213490233a7642c2b6e;p=plomrogue2 diff --git a/plomrogue/commands.py b/plomrogue/commands.py index 50445e7..653fc74 100644 --- a/plomrogue/commands.py +++ b/plomrogue/commands.py @@ -28,6 +28,12 @@ def cmd_TERRAIN(game, character, description, blocks_sound, blocks_movement) cmd_TERRAIN.argtypes = 'char string bool bool bool' +def cmd_TERRAIN_TAG(game, character, tag): + if not character in game.terrains: + raise GameError('terrain does not exist: %s' % character) + game.terrains[character].tags.add(tag) +cmd_TERRAIN_TAG.argtypes = 'char string' + def cmd_ALL(game, msg, connection_id): speaker = game.get_player(connection_id) if not speaker: @@ -54,25 +60,9 @@ def cmd_LOGIN(game, nick, connection_id): nick = nick.strip() if len(nick) == 0: raise GameError('empty name') - for t in [t for t in game.things if t.type_ == 'Player' and t.name == nick]: - raise GameError('name already in use') if game.get_player(connection_id): raise GameError('cannot log in twice') - t = game.add_thing('Player', game.spawn_point) - t.name = nick - t.thing_char = game.get_next_player_char() - game.sessions[connection_id] = { - 'thing_id': t.id_, - 'status': 'player' - } - game.io.send('PLAYER_ID %s' % t.id_, connection_id) - game.io.send('LOGIN_OK', connection_id) - game.io.send('CHAT ' + quote(t.name + ' entered the map.')) - for s in [s for s in game.things - if s.type_ == 'SpawnPoint' and s.name == t.name]: - t.position = s.position - break - # game.changed = True # handled by game.add_thing + game.login_requests += [(nick, connection_id)] cmd_LOGIN.argtypes = 'string' def cmd_BECOME_ADMIN(game, password, connection_id):