feat: added 'build' command
Added the build command, that allows creating custom rooms
This commit is contained in:
parent
914054b788
commit
cc01e352fb
|
@ -2,7 +2,7 @@
|
||||||
_A Multi User Dungeon for UNIX.dog members_
|
_A Multi User Dungeon for UNIX.dog members_
|
||||||
|
|
||||||
## Features (TO-DO)
|
## Features (TO-DO)
|
||||||
- [ ] User-created maps
|
- [x] User-created maps
|
||||||
- [ ] PvP
|
- [ ] PvP
|
||||||
- [ ] PvE
|
- [ ] PvE
|
||||||
- [x] Local chat
|
- [x] Local chat
|
||||||
|
|
24
commands.py
24
commands.py
|
@ -23,11 +23,14 @@ def go(mud, id, players, rooms, params):
|
||||||
exit = params_list[0]
|
exit = params_list[0]
|
||||||
room = rooms[players[id]["room"]]
|
room = rooms[players[id]["room"]]
|
||||||
if exit in room["exits"]:
|
if exit in room["exits"]:
|
||||||
|
if room["exits"][exit] not in rooms:
|
||||||
|
mud.send_message(id, "Room '{}' not found."
|
||||||
|
.format(room["exits"][exit]))
|
||||||
|
return
|
||||||
for pid, pl in players.items():
|
for pid, pl in players.items():
|
||||||
if pl["room"] == players[id]["room"] and pid != id:
|
if pl["room"] == players[id]["room"] and pid != id:
|
||||||
mud.send_message(pid, "{} left via exit '{}'."
|
mud.send_message(pid, "{} left via exit '{}'."
|
||||||
.format(players[id]["name"], exit))
|
.format(players[id]["name"], exit))
|
||||||
|
|
||||||
players[id]["room"] = room["exits"][exit]
|
players[id]["room"] = room["exits"][exit]
|
||||||
mud.send_message(id, "You arrive at '{}'.".format(players[id]["room"]))
|
mud.send_message(id, "You arrive at '{}'.".format(players[id]["room"]))
|
||||||
|
|
||||||
|
@ -77,3 +80,22 @@ def open(mud, id, players, rooms, params):
|
||||||
rooms[players[id]["room"]]["exits"][params_list[0]] = params_list[1]
|
rooms[players[id]["room"]]["exits"][params_list[0]] = params_list[1]
|
||||||
mud.send_message(id, "You open the exit '{}' to '{}'."
|
mud.send_message(id, "You open the exit '{}' to '{}'."
|
||||||
.format(params_list[0], params_list[1]))
|
.format(params_list[0], params_list[1]))
|
||||||
|
|
||||||
|
|
||||||
|
def build(mud, id, players, rooms, params):
|
||||||
|
params_list = params.split()
|
||||||
|
if len(params_list) < 3:
|
||||||
|
mud.send_message(id, "Invalid params.")
|
||||||
|
return
|
||||||
|
params_list = [params_list[0], params_list[1], " ".join(params_list[2:])]
|
||||||
|
room = params_list[0]
|
||||||
|
if room in rooms:
|
||||||
|
mud.send_message("Room '{}' already exits."
|
||||||
|
.format(room))
|
||||||
|
return
|
||||||
|
rooms[room] = {
|
||||||
|
"description": params_list[2],
|
||||||
|
"exits": {params_list[1]: players[id]["room"]},
|
||||||
|
"owner": players[id]["name"],
|
||||||
|
"builders": [players[id]["name"]]
|
||||||
|
}
|
||||||
|
|
7
run.py
7
run.py
|
@ -76,6 +76,10 @@ def cmd_wconnect(id, params):
|
||||||
.format(params_list[0]))
|
.format(params_list[0]))
|
||||||
|
|
||||||
|
|
||||||
|
def cmd_build(id, params):
|
||||||
|
cmd.build(mud, id, players, rooms, params)
|
||||||
|
|
||||||
|
|
||||||
def cmd_unknown(id, command):
|
def cmd_unknown(id, command):
|
||||||
cmd.unknown(mud, command, id)
|
cmd.unknown(mud, command, id)
|
||||||
|
|
||||||
|
@ -85,7 +89,8 @@ commands = {
|
||||||
"look": cmd_look,
|
"look": cmd_look,
|
||||||
"go": cmd_go,
|
"go": cmd_go,
|
||||||
"say": cmd_say,
|
"say": cmd_say,
|
||||||
"open": cmd_open
|
"open": cmd_open,
|
||||||
|
"build": cmd_build
|
||||||
}
|
}
|
||||||
waitlist_commands = {
|
waitlist_commands = {
|
||||||
"help": cmd_whelp,
|
"help": cmd_whelp,
|
||||||
|
|
Loading…
Reference in New Issue