def who_am_i(self, detail=0): #Name _s = '%s %s %s. ' % (words.get_phrase('introduction'),self.name[0],self.name[1]) _d = [] if detail >= 1: if self.loc == self.birthplace.loc: _g = 'origin-local' else: _g = 'origin-foreign' _s += '%s %s. ' % (words.get_phrase(_g).replace('%direction%',self.get_room().get_direction_to(self.birthplace)), self.birthplace.name) _d.append('birthplace') if detail >= 2: _s += '%s. ' % (words.get_phrase('job').replace('%year%',str(self.job_since[1])).replace('%job%',self.job.name)) _d.append('job') elif not detail: _s += '%s' % (words.get_phrase('uncomfortable')) return {'text':_s,'detail':_d}
def parse_room(self,exits=True): self.description = [] _lights = None #Lighting on the inside if self.type in ['house']: _lights = self.get_lights() if var.debug: print 'There are %s lights here.' % _lights _l = words.get_desc_lighting(_lights) if _l: self.description.append(_l) self.description.append(words.get_desc_interior(self.built_with,_lights)) #Lighting on the outside if self.controller.is_daytime(): if self.type == 'clearing': self.description.append(words.get_desc_outside('clearing',9)) if _lights or (not self.type in ['house'] and self.controller.is_daytime()): #Count objects _objs = [] for obj in self.objects: for _obj in _objs: if _obj['name'] == obj.name: _obj['count'] += 1 else: _objs.append({'name':obj.name,'count':0,'obj':obj}) if not len(_objs): _objs.append({'name':obj.name,'count':1,'obj':obj}) _t = [] for obj in _objs: if not obj['name'] in _t and not obj['obj'].type == 'window': self.description.append(obj['obj'].get_room_description()) if not obj['obj'].type in ['foliage','window']: if obj['count'] > 2: self.description.append('There are %s more %ss here' % (obj['count']-1,obj['obj'].name)) elif obj['count'] == 2: self.description.append('There is one more %s here' % (obj['obj'].name)) _t.append(obj['name']) if exits: if self.type in ['house']: _win = 'There are windows facing ' for obj in self.objects: if obj.type == 'window' and obj.place: _win += '%s, ' % (obj.place) _win = _win.split(' ') _win[len(_win)-3] += ' and' _win = ' '.join(_win) self.description.append(_win.rstrip('., ')) else: for exit in self.exits: _exits = [] for _exit in exit['room'].exits: if _exit['room'] == self: if exit['room'].type == 'house': _exits.append(exit) self.description.append(words.get_phrase('room_location').replace('%direction%',exit['dir']).replace('%roomtype%',exit['room'].type)) for _exit in _exits: _ls = _exit['room'].get_lights() if _ls == 1: self.description.append(words.get_phrase('lightinwindowdim').replace('%direction%',words.opposite(_exit['dir'])).replace('%roomtype%',_exit['room'].type)) for per in self.guests: if per != var.player: if var.player.brain.know_person(per): self.description.append('%s is here.' % (per.name[0])) else: if per.male: _ref = ['man','he'] else: _ref = ['woman','she'] self.description.append('A %s is here. ' % (_ref[0])+per.get_visual_description()) if None in self.description: self.description.remove(None) self.description = '. '.join(self.description)+'.'
def add_object(self,obj,place=None): obj.loc = self.loc if not place: obj.location = words.get_phrase('location') self.objects.append(obj)