def func(self): """Reads time info from current room""" if self.args: parsed = None to_parse = self.args.strip() try: parsed = time.strptime(to_parse, "%Y/%m/%d %H:%M") except ValueError: try: parsed = time.strptime(to_parse, "%Y/%m/%d") except ValueError: pass if not parsed: self.msg( "Unable to understand that date! It must be in the format " "|wYYYY/mm/dd|n or |wYYYY/mm/dd HH:MM|n to be understood.") return parsed = time.mktime(parsed) game_time = gametime.realtime_to_gametime(parsed) if game_time is None: self.msg( "Real date |w{}|n was before the game started!".format( to_parse)) return from server.utils.arx_utils import get_date self.msg("Real date |w{}|n was about |w{}|n in game time.".format( to_parse, get_date(game_time))) return location = self.caller.location if not location or not hasattr(location, "get_time_and_season"): self.msg("No location available - you are outside time.") else: season, timeslot = location.get_time_and_season() prep = "a" if season == "autumn": prep = "an" weather = weather_utils.get_last_emit() self.msg("It's %s %s day, in the %s. %s" % (prep, season, timeslot, weather)) time_tuple = gametime.gametime(format=True) hour, minute = time_tuple[4], time_tuple[5] from server.utils.arx_utils import get_date self.msg("Today's date: %s. Current time: %s:%02d" % (get_date(), hour, minute))
def add_journal(self, msg, white=True, date=""): """creates a new journal message and returns it""" cls = lazy_import_from_str("Journal") if not date: date = get_date() header = self.create_date_header(date) j_tag = WHITE_TAG if white else BLACK_TAG msg = create_arx_message(self.obj, msg, receivers=self.obj.player_ob, header=header, cls=cls, tags=j_tag) msg = self.add_to_journals(msg, white) # journals made this week, for xp purposes self.num_journals += 1 return msg
def add_vision(self, msg, sender, vision_obj=None): """adds a vision sent by a god or whatever""" cls = msg_utils.lazy_import_from_str("Vision") date = get_date() header = "date:%s" % date if not vision_obj: vision_obj = create_arx_message(sender, msg, receivers=self.obj, header=header, cls=cls, tags=VISION_TAG) else: self.obj.receiver_object_set.add(vision_obj) if vision_obj not in self.visions: self.visions.append(vision_obj) return vision_obj
def create_messenger(self, msg, date=""): """ Here we create the msg object and return it to the command to handle. They'll attach the msg object to each receiver as an attribute, who can then call receive_messenger on the stored msg. """ cls = lazy_import_from_str("Messenger") if not date: date = get_date() header = self.create_messenger_header(date) msg = create_arx_message( self.obj, msg, receivers=None, header=header, cls=cls, tags=MESSENGER_TAG ) return msg
def func(self): """Reads time info from current room""" location = self.caller.location if not location or not hasattr(location, "get_time_and_season"): self.caller.msg("No location available - you are outside time.") else: season, timeslot = location.get_time_and_season() prep = "a" if season == "autumn": prep = "an" self.caller.msg("It's %s %s day, in the %s." % (prep, season.capitalize(), timeslot)) time = gametime.gametime(format=True) hour, minute = time[4], time[5] from server.utils.arx_utils import get_date self.caller.msg("Today's date: %s. Current time: %s:%02d" % (get_date(), hour, minute))
def add_relationship(self, msg, targ, white=True, date=""): """creates a relationship and adds relationship to our journal""" cls = lazy_import_from_str("Journal") if not date: date = get_date() header = self.create_date_header(date) name = targ.key.lower() receivers = [targ, self.obj.player_ob] tags = (WHITE_TAG if white else BLACK_TAG, RELATIONSHIP_TAG) msg = create_arx_message(self.obj, msg, receivers=receivers, header=header, cls=cls, tags=tags) msg = self.add_to_journals(msg, white) rels = self.white_relationships if white else self.black_relationships relslist = rels.get(name, []) if msg not in relslist: relslist.insert(0, msg) rels[name] = relslist # number of relationship updates this week, for xp purposes self.num_rel_updates += 1 return msg