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 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 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 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