home · contact · privacy
Add Thing spawner.
[plomrogue2] / rogue_chat.py
index e15ee242e92d71e9c9e3a637e7e989f65f75ac13..1d9e4cbddd1189b426964a6fadcc94048e3a9c65 100755 (executable)
@@ -1,22 +1,21 @@
 #!/usr/bin/env python3
 from plomrogue.game import Game
-from plomrogue.io_websocket import PlomWebSocketServer
-from plomrogue.io_tcp import PlomTCPServer
 from plomrogue.commands import (cmd_ALL, cmd_LOGIN, cmd_NICK, cmd_PING, cmd_THING,
                                 cmd_MAP, cmd_TURN, cmd_MAP_LINE, cmd_GET_ANNOTATION,
                                 cmd_ANNOTATE, cmd_PORTAL, cmd_GET_GAMESTATE,
                                 cmd_TASKS, cmd_MAP_CONTROL_LINE, cmd_MAP_CONTROL_PW,
-                                cmd_GOD_ANNOTATE, cmd_GOD_PORTAL, cmd_THING_TYPES)
+                                cmd_GOD_ANNOTATE, cmd_GOD_PORTAL, cmd_THING_TYPES,
+                                cmd_THING_NAME, cmd_TERRAINS, cmd_ADMIN_PASSWORD,
+                                cmd_BECOME_ADMIN, cmd_SET_TILE_CONTROL,
+                                cmd_GOD_THING_NAME,
+                                cmd_GOD_THING_PROTECTION, cmd_THING_PROTECTION,
+                                cmd_SET_MAP_CONTROL_PASSWORD, cmd_SPAWN_POINT)
 from plomrogue.tasks import (Task_WAIT, Task_MOVE, Task_WRITE, Task_PICK_UP,
                              Task_DROP, Task_FLATTEN_SURROUNDINGS)
-from plomrogue.things import Thing_Player, Thing_Stone
-import sys
+from plomrogue.things import Thing_Player, Thing_Item, Thing_Spawner
 
-if len(sys.argv) != 2:
-    print('wrong number of arguments, expected one (save file)')
-    exit(1)
-savefile = sys.argv[1]
-game = Game(savefile)
+from plomrogue.config import config
+game = Game(config['savefile'])
 game.register_command(cmd_PING)
 game.register_command(cmd_ALL)
 game.register_command(cmd_LOGIN)
@@ -34,7 +33,17 @@ game.register_command(cmd_GOD_PORTAL)
 game.register_command(cmd_GET_GAMESTATE)
 game.register_command(cmd_TASKS)
 game.register_command(cmd_THING_TYPES)
+game.register_command(cmd_TERRAINS)
 game.register_command(cmd_THING)
+game.register_command(cmd_THING_PROTECTION)
+game.register_command(cmd_GOD_THING_PROTECTION)
+game.register_command(cmd_THING_NAME)
+game.register_command(cmd_GOD_THING_NAME)
+game.register_command(cmd_ADMIN_PASSWORD)
+game.register_command(cmd_SET_TILE_CONTROL)
+game.register_command(cmd_SET_MAP_CONTROL_PASSWORD)
+game.register_command(cmd_BECOME_ADMIN)
+game.register_command(cmd_SPAWN_POINT)
 game.register_task(Task_WAIT)
 game.register_task(Task_MOVE)
 game.register_task(Task_WRITE)
@@ -42,8 +51,10 @@ game.register_task(Task_FLATTEN_SURROUNDINGS)
 game.register_task(Task_PICK_UP)
 game.register_task(Task_DROP)
 game.register_thing_type(Thing_Player)
-game.register_thing_type(Thing_Stone)
+game.register_thing_type(Thing_Item)
+game.register_thing_type(Thing_Spawner)
 game.read_savefile()
 game.io.start_loop()
-game.io.start_server(8000, PlomWebSocketServer)
-game.io.start_server(5000, PlomTCPServer)
+for port in config['servers']:
+    game.io.start_server(port, config['servers'][port],
+                         config['certfile'], config['keyfile'])