def __init__(self): super(GameMenu, self).__init__("Game menu") self.append_item(ClickableItem(self, "Create a new game", self.create_game)) self.append_item(ClickableItem(self, "Join a game", self.join_game)) self.append_item(ClickableItem(self, "Observe a game", self.observe_game)) self.append_item(ClickableItem(self, "Disconnect from server", self.do_disconnect)) del self.hotkeys[(key.ESCAPE, 0)] system.speak(self.title)
def __init__(self): super(ConnectMenu, self).__init__("Connect to a server") self.hostname = TextboxItem(self, "Hostname", value="code-metropolis.com") self.port = TextboxItem(self, "Port", value=str(application.port)) self.name = TextboxItem(self, "Screen Name", value=os.getlogin().title()) for i in [self.hostname, self.port, self.name]: self.append_item(i) self.append_item(ClickableItem(self, "Connect", self.do_connect)) system.speak(self.title)
def do_connect(self, control): host, port, name = self.hostname.value, self.port.value, self.name.value try: port = int(port) except ValueError: system.speak("Invalid port number: %s." % port) else: if host and port and name: # Don't accept any input for the time being... application.window.clear_handlers() system.speak("Connecting...") connector = reactor.connectTCP(host, port, Factory(name)) logging.info("Connecting to %s as %s.", connector.getDestination(), name) else: system.speak("All fields are required.") return True
def observe_game(self, control): system.speak("Observe a game.")
def join_game(self, control): system.speak("Join a game.")
def create_game(self, control): system.speak("Create a game.")
def __init__(self): super(MainMenu, self).__init__("Game Menu") del self.hotkeys[(key.ESCAPE, 0)] self.append_item(ClickableItem(self, "Connect To Server", self.do_connect)) self.append_item(ClickableItem(self, "Quit the game", lambda control: pyglet.app.exit())) system.speak(self.title)
def announce(message = 'No message', error = False): if error: system.speak('Error: %s' % message) else: system.speak(message)
def do_fire(self): """Fire the weapons.""" system.speak('Fired.')
def clientConnectionLost(self, connector, reason): system.speak('Connection lost: %s' % reason.getErrorMessage()) self.recover()
def clientConnectionFailed(self, connector, reason): system.speak('Connection failed: %s' % reason.getErrorMessage()) self.recover()