def _process_server(self): s = self.server.read_line() if s is None: self.server_is_done = True # don't read more elif re.match(r'^msg \[[0-9a-zA-Z, \.\[\]"\']+\]$', s): voice.info(*eval(s.split(' ', 1)[1])) else: self._process_server_event(s)
def on_complete(self): if self.player is not self.interface.player: return self.launch_event_style("complete", alert=True) if must_be_said(self.number): voice.info( substitute_args(self.get_style("complete_msg"), [self.title])) self.interface.send_menu_alerts_if_needed( ) # not necessary for "on_repair_complete" (if it existed)
def save(self): f = open(SAVE_PATH, "w") i = stats.Stats(None, None)._get_weak_user_id() f.write("%s\n" % i) self.world.remove_links_for_savegame() self._rules = rules self._ai = definitions._ai self._style = style if self.record_replay: self._replay_file.flush() os.fsync(self._replay_file.fileno()) # just to be sure self._replay_file_content = open(self._replay_file.name).read() try: pickle.dump(self, f) voice.info(mp.OK) except: exception("save game failed") voice.alert(mp.BEEP) self.world.restore_links_for_savegame()
def srv_logged_out(self, args): login, = args voice.info([login] + mp.HAS_JUST_LOGGED_OUT)
def srv_say(self, args): login, msg = args[0], args[1:] voice.info([login] + mp.SAYS + [" ".join(msg)])
def srv_alliance(self, args): player_login, alliance = args voice.info(mp.MOVE + name(player_login) + mp.TO_ALLIANCE + nb2msg(alliance))
def srv_invitation(self, args): admin_login, map_title = args voice.info([admin_login] + mp.INVITES_YOU + [map_title])
def srv_clients(self, args): msg = insert_silences(sum([name(c) for c in args], [])) voice.info(msg)
def srv_register_error(self, unused_args): voice.info(mp.BEEP)
def on_research_complete(self): voice.info(self.get_style("research_complete_msg")) self.interface.send_menu_alerts_if_needed()
def pre_run(self): voice.info(mp.OBSERVE_ANOTHER_PLAYER_EXPLANATION) voice.flush()
def say_score(self): for msg in self.me.player.score_msgs: voice.info(msg) voice.flush()
def srv_invite_error(self, unused_args): voice.info(mp.BEEP)
def on_order_impossible(self, reason=None): if self.player is not self.interface.player: return self.launch_event_style("order_impossible", alert=True) if reason is not None: voice.info(style.get("messages", reason))
def pre_run(self): voice.info([4316]) voice.flush()
def on_production_deferred(self): voice.info(style.get("messages", "production_deferred"))
def on_added(self): self.launch_event_style("added", alert=True) if "unit_added" in config.verbosity and must_be_said(self.number): voice.info(substitute_args(self.get_style("added_msg"), [self.ext_title]))
def on_exhausted(self): self.launch_event_style("exhausted") voice.info(self.title + [144])
def srv_too_many_games(self, unused_args): voice.info(mp.TOO_MANY_GAMES)
def srv_game(self, args): voice.info(game_short_status(*args))
def on_added(self): self.launch_event_style("added", alert=True) if must_be_said(self.number): voice.info(substitute_args(self.get_style("added_msg"), [self.ext_title]))
def srv_registered(self, args): player_login, players = args players = players.split(",") voice.info( name(player_login) + mp.HAS_JUST_JOINED + self._game_status(players))
def srv_faction(self, args): player_login, faction = args faction_name = style.get(faction, 'title') voice.info(name(player_login) + faction_name)
def srv_logged_in(self, args): login, = args if login != self.server.login: voice.info([login] + mp.HAS_JUST_LOGGED_IN)
def srv_e(self, args): assert args[0].split(",")[0] == 'new_player' login = args[0].split(",")[1] if login != self.server.login: voice.info([login, 4240]) # ... has just logged in
def srv_msg(self, args): voice.info(*eval_msg_and_volume(" ".join(args)))
def on_exhausted(self): self.launch_event_style("exhausted") if "resource_exhausted" in config.verbosity: voice.info(self.title + mp.EXHAUSTED)
def on_complete(self): if self.player is not self.interface.player: return self.launch_event_style("complete", alert=True) if "unit_complete" in config.verbosity and must_be_said(self.number): voice.info(substitute_args(self.get_style("complete_msg"), [self.title])) self.interface.send_menu_alerts_if_needed() # not necessary for "on_repair_complete" (if it existed)