#!/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_QUERY, cmd_PING, cmd_MAP,
                                cmd_TURN, cmd_MAP_LINE, cmd_GET_ANNOTATION,
                                cmd_ANNOTATE, cmd_PORTAL, cmd_GET_GAMESTATE)
from plomrogue.tasks import (Task_WAIT, Task_MOVE, Task_WRITE,
                             Task_FLATTEN_SURROUNDINGS)
import sys

if len(sys.argv) != 2:
    print('wrong number of arguments, expected one (save file)')
    exit(1)
savefile = sys.argv[1]
game = Game(savefile)
game.register_command(cmd_PING)
game.register_command(cmd_LOGIN)
game.register_command(cmd_QUERY)
game.register_command(cmd_TURN)
game.register_command(cmd_MAP)
game.register_command(cmd_MAP_LINE)
game.register_command(cmd_GET_ANNOTATION)
game.register_command(cmd_ANNOTATE)
game.register_command(cmd_PORTAL)
game.register_command(cmd_GET_GAMESTATE)
game.register_task(Task_WAIT)
game.register_task(Task_MOVE)
game.register_task(Task_WRITE)
game.register_task(Task_FLATTEN_SURROUNDINGS)
game.read_savefile()
game.io.start_loop()
game.io.start_server(8000, PlomWebSocketServer)
game.io.start_server(5000, PlomTCPServer)
