((dp0 I24 (ipoo Obj p1 (dp3 S'aliases' p4 (tp5 sS'id' p6 I24 sS'_inbuf' p7 (lp8 sS'__value' p9 I90 sS'owner' p10 (ipoo User p11 (dp12 g9 I90 sS'_oldprompt' p13 S'<t>poo>' p14 sS'location' p15 (ipoo Obj p16 (dp17 g4 (tp18 sg6 I13 sg7 (lp18 sg9 I90 sg10 g11 sS'w' p19 I0 sg15 (ipoo Obj p20 (dp21 g4 (tp22 sg6 I12 sg7 (lp22 sg9 I90 sg10 g11 sg19 I0 sg15 (ipoo Obj p23 (dp24 g4 (tp25 sg6 I11 sg7 (lp25 sg9 I90 sg10 g11 sg19 I0 sg15 NsS'parents' p26 ((ipoo Obj p27 (dp28 g4 (tp29 sg6 I1 sg7 (lp29 sg9 I90 sg10 g27 sg19 I0 sg15 (ipoo Directory p30 (dp31 g4 (tp32 sg6 I22 sg7 (lp32 sg9 I90 sg10 g11 sg19 I0 sg15 (ipoo Directory p33 (dp34 g4 (tp35 sg6 I16 sg7 (lp35 sg9 I90 sg10 g11 sg19 I0 sg15 (ipoo Directory p36 (dp37 g4 (tp38 sg6 I14 sg7 (lp38 sg9 I90 sg10 g11 sg19 I0 sg15 g23 sg26 ((ipoo Directory p39 (dp40 g4 (tp41 sg6 I4 sg7 (lp41 sg9 I90 sg10 g39 sg19 I0 sg15 Nsg26 (g27 tp42 sS'r' p43 I1 sS'programmer' p44 I0 sS'__commands' p45 (dp46 sS'wizard' p47 I0 sS'f' p48 I1 sS'name' p49 S'directory' p50 sS'__credits' p51 I0 sS'wantsUpdates' p52 I0 sS'__isuser' p53 I0 sbtp54 sg43 I1 sg44 I0 sg45 (dp55 sg47 I0 sg48 I0 sg49 S'root' p56 sg51 I0 sg52 I0 sg53 I0 sbsg26 (g39 tp57 sg43 I1 sg44 I0 sg45 (dp58 sg47 I0 sg48 I0 sg49 S'pub' p59 sg51 I0 sg52 I0 sg53 I0 sbsg26 (g39 tp60 sg43 I1 sg44 I0 sg45 (dp61 sg47 I0 sg48 I0 sg49 S'misc' p62 sg51 I0 sg52 I0 sg53 I0 sbsg26 (tp63 sg43 I1 sg44 I0 sg45 (dp63 sg47 I0 sg48 I1 sg49 S'object' p64 sg51 I0 sg52 I0 sg53 I0 sbtp65 sg43 I1 sg44 I0 sg45 (dp66 sg47 I0 sg48 I0 sg49 S'Void' p67 sg51 I0 sg52 I0 sg53 I0 sbsg26 ((ipoo Obj p68 (dp69 g4 (tp70 sg6 I3 sg7 (lp70 sg9 I90 sg10 g68 sg19 I0 sg15 (ipoo Directory p71 (dp72 g4 (tp73 sg6 I18 sg7 (lp73 sg9 I90 sg10 g11 sg19 I0 sg15 g33 sg26 (g39 tp74 sg43 I1 sg44 I0 sg45 (dp75 sg47 I0 sg48 I0 sg49 S'rooms' p76 sg51 I0 sg52 I0 sg53 I0 sbsg26 (g27 tp77 sg43 I1 sg44 I0 sg45 (dp78 sg47 I0 sg48 I1 sg49 S'place' p79 sg51 I0 sg52 I0 sg53 I0 sbtp80 sg43 I1 sg44 I0 sg45 (dp81 sg47 I0 sg48 I0 sg49 S'Universe' p82 sg51 I0 sg52 I0 sg53 I0 sbsg26 (g68 tp83 sg43 I1 sg44 I0 sg45 (dp84 sg47 I0 sg48 I0 sg49 S'Newbie Room' p85 sg51 I0 sg52 I0 sg53 I0 sbsg26 ((ipoo User p86 (dp87 g9 I90 sg13 S'' p88 sg15 (ipoo Directory p89 (dp90 g4 (tp91 sg6 I23 sg7 (lp91 sg9 I90 sg10 g11 sg19 I0 sg15 (ipoo Directory p92 (dp93 g4 (tp94 sg6 I15 sg7 (lp94 sg9 I90 sg10 g11 sg19 I0 sg15 g36 sg26 (g39 tp95 sg43 I1 sg44 I0 sg45 (dp96 sg47 I0 sg48 I0 sg49 S'sys' p97 sg51 I0 sg52 I0 sg53 I0 sbsg26 (g39 tp98 sg43 I1 sg44 I0 sg45 (dp99 sg47 I0 sg48 I0 sg49 S'usertypes' p100 sg51 I0 sg52 I0 sg53 I0 sbsg26 ((ipoo User p101 (dp102 g9 I90 sg13 g88 sg15 g89 sg26 ((ipoo User p103 (dp104 g9 I90 sg13 g88 sg15 g89 sg26 ((ipoo User p105 (dp106 g9 I90 sg13 g88 sg15 g89 sg26 ((ipoo User p107 (dp108 g9 I90 sg13 g88 sg15 g30 sg26 (g27 tp109 sg43 I1 sg47 I0 sS'_editBuf' p110 (lp111 sg48 I1 sS'_prompt' p112 g14 sg49 S'Agent' p113 sS'_editProp' p114 g88 sg19 I0 sS'_editObj' p115 Nsg51 I0 sg4 (tp116 sg6 I5 sg7 (lp116 sg44 I0 sg10 g11 sg45 (dp117 sS'_editState' p118 Nsg53 I1 sg52 I0 sbtp119 sg43 I1 sg47 I0 sg110 (lp120 sg48 I1 sg112 g14 sg49 S'User' p121 sg114 g88 sg19 I0 sg115 Nsg51 I0 sg4 (tp122 sg6 I6 sg7 (lp122 sg44 I0 sg10 g11 sg45 (dp123 sg118 Nsg53 I1 sg52 I0 sbtp124 sg43 I1 sg47 I0 sg110 (lp125 sg48 I1 sg112 g14 sg49 S'Builder' p126 sg114 g88 sg19 I0 sg115 Nsg51 I0 sg4 (tp127 sg6 I7 sg7 (lp127 sg44 I0 sg10 g11 sg45 (dp128 sg118 Nsg53 I1 sg52 I0 sbtp129 sg43 I1 sg47 I0 sg110 (lp130 sg48 I1 sg112 g14 sg49 S'Coder' p131 sg114 g88 sg19 I0 sg115 Nsg51 I0 sg4 (tp132 sg6 I8 sg7 (lp132 sg44 I1 sg10 g11 sg45 (dp133 sg118 Nsg53 I1 sg52 I0 sbtp134 sg43 I1 sg47 I1 sg110 (lp135 sg48 I1 sg112 g14 sg49 S'Wizard' p136 sg114 g88 sg19 I0 sg115 Nsg51 I0 sg4 (tp137 sg6 I9 sg7 (lp137 sg44 I1 sg10 g11 sg45 (dp138 sg118 Nsg53 I1 sg52 I0 sbtp139 sg43 I1 sg47 I1 sg110 (lp140 sg48 I0 sg112 g14 sg49 S'Implementor' p141 sg114 g88 sg19 I0 sg115 Nsg51 I8000 sg4 (tp142 sS'_postEditFunc' p142 Nsg6 I2 sg7 (lp143 sg44 I1 sg10 g11 sg45 (dp144 sg118 S'OK' p145 sg53 I1 sg52 I0 sbsg19 I0 sg15 (ipoo Directory p146 (dp147 g4 (tp148 sg6 I20 sg7 (lp148 sg9 I90 sg10 g11 sg19 I0 sg15 g33 sg26 (g39 tp149 sg43 I1 sg44 I0 sg45 (dp150 sg47 I0 sg48 I0 sg49 S'containers' p151 sg51 I0 sg52 I0 sg53 I0 sbsg26 (g27 tp152 sg43 I1 sg44 I0 sg45 (dp153 sg47 I0 sg48 I1 sg49 S'container' p154 sg51 I0 sg52 I0 sg53 I0 sbsI23 g89 sI22 g30 sI21 (ipoo Directory p155 (dp156 g4 (tp157 sg6 I21 sg7 (lp157 sg9 I90 sg10 g11 sg19 I0 sg15 g33 sg26 (g39 tp158 sg43 I1 sg44 I0 sg45 (dp159 sg47 I0 sg48 I0 sg49 S'periodic' p160 sg51 I0 sg52 I0 sg53 I0 sbsI20 g146 sI19 (ipoo Directory p161 (dp162 g4 (tp163 sg6 I19 sg7 (lp163 sg9 I90 sg10 g11 sg19 I0 sg15 g33 sg26 (g39 tp164 sg43 I1 sg44 I0 sg45 (dp165 sg47 I0 sg48 I0 sg49 S'exits' p166 sg51 I0 sg52 I0 sg53 I0 sbsI18 g71 sI17 (ipoo Directory p167 (dp168 g4 (tp169 sg6 I17 sg7 (lp169 sg9 I90 sg10 g11 sg19 I0 sg15 g36 sg26 (g39 tp170 sg43 I1 sg44 I0 sg45 (dp171 sg47 I0 sg48 I0 sg49 S'usr' p172 sg51 I0 sg52 I0 sg53 I0 sbsI16 g33 sI15 g92 sI14 g36 sI13 g16 sI12 g20 sI11 g23 sI10 (ipoo Obj p173 (dp174 g4 (tp175 sg6 I10 sg7 (lp175 sg9 I90 sg10 g11 sg19 I0 sg15 g161 sg26 (g27 tp176 sg43 I1 sg44 I0 sg45 (dp177 sg47 I0 sg48 I1 sg49 S'exit' p178 sg51 I0 sg52 I0 sg53 I0 sbsI9 g86 sI8 g101 sI7 g103 sI6 g105 sI5 g107 sI4 g39 sI3 g68 sI2 g11 sI1 g27 sI0 (ipoo Obj p179 (dp180 g4 (tp181 sg6 I0 sg7 (lp181 sg9 I90 sg10 g179 sg19 I0 sg15 Nsg26 (tp182 sg43 I1 sg44 I0 sg45 (dp182 sg47 I0 sg48 I0 sg49 S'root' p183 sg51 I0 sg52 I0 sg53 I0 sbs(dp184 g20 (dp185 S'desc' p186 (ipoo Prop p187 (dp188 g19 I0 sS'val' p189 S'This room should contain all other rooms in the game. Thus, by broadcasting a message here, everyone will hear it.' p190 sg43 I1 sS'c' p191 I1 sg10 g11 sbssg146 (dp192 sg11 (dp193 S'accept' p194 (ipoo Prop p195 (dp196 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbsS'loginTime' p197 (ipoo Prop p198 (dp199 g19 I0 sg189 F3140863427.0 sg43 I1 sg191 I1 sg10 NsbsS'activeTime' p200 (ipoo Prop p201 (dp202 g19 I0 sg189 F3140863454.0 sg43 I1 sg191 I1 sg10 NsbsS'it' p203 (ipoo Prop p204 (dp205 g19 I0 sg189 g1 sg43 I1 sg191 I1 sg10 g11 sbssg101 (dp206 S'newfunc' p207 (ipoo Prop p208 (dp209 g19 I0 sg189 (ipoo Func p210 (dp211 g186 S'create a new function' p212 sS'boundTo' p213 g101 sS'x' p214 I0 sg10 NsS'presource' p215 g88 sg49 S'newfunc(self,caller,obj,funcname)' p216 sS'source' p217 (S'caller.enterFunc( obj, funcname )' p218 tp219 sS'definedOn' p220 g101 sbsg43 I1 sg191 I1 sg10 NsbsS'at_cmd' p221 (ipoo Prop p222 (dp223 g19 I0 sg189 (ipoo Func p224 (dp225 g186 S'set a CmdDef' p226 sg213 g101 sg214 I0 sg10 Nsg215 g88 sg49 S'at_cmd(self, obj, pattern, funcdef)' p227 sg217 (S'verb = string.split(pattern)[0]' p228 S'obj.setCmdDef(verb, pattern, funcdef)' p229 S'print verb, "command defined on", obj' p230 tp231 sg220 g101 sbsg43 I1 sg191 I1 sg10 NsbsS'delcmd' p232 (ipoo Prop p233 (dp234 g19 I0 sg189 (ipoo Func p235 (dp236 g186 S'delete a CmdDef' p237 sg213 g101 sg214 I0 sg10 Nsg215 g88 sg49 S'delcmd(self, obj, pattern)' p238 sg217 (S'verb = string.split(pattern)[0]' p239 S'obj.setCmdDef(verb, pattern, None)' p240 S'print verb, "command removed from", obj' p241 tp242 sg220 g101 sbsg43 I1 sg191 I1 sg10 NsbsS'list' p243 (ipoo Prop p244 (dp245 g19 I0 sg189 (ipoo Func p246 (dp247 g186 S'list a function' p248 sg213 g101 sg214 I0 sg10 Nsg215 g88 sg49 S'list(self,obj,propname,fromLine=1,toLine=99999)' p249 sg217 (S'dobj = getattr(obj,propname)' p250 S'if type(dobj) == InstanceType and dobj.__class__ == Func:' p251 S'\011dobj.list(fromLine, toLine)' p252 S'else: super(obj,propname,fromLine,toLine)' p253 tp254 sg220 g101 sbsg43 I1 sg191 I1 sg10 Nsbssg27 (dp255 S'findComponent' p256 (ipoo Prop p257 (dp258 g19 I0 sg189 (ipoo Func p259 (dp260 g186 g88 sg213 g27 sg214 I1 sg10 g11 sg215 g88 sg49 S'findComponent(self,compName)' p261 sg217 (S'"""$thing.findComponent(self,compName):' p262 S'return an object reference for the specified component;' p263 S'if not found, return this object, and store the component' p264 S'name in self.component for future reference."""' p265 S'for ob in self.contents():\011\011\011\011# try exact match first' p266 S'\011if ob.name == compName: return ob' p267 S'compName = string.lower(compName)' p268 S'for ob in self.contents():' p269 S'\011if ob.name == compName: return ob' p270 S'\011if compName in ob.aliases: return ob' p271 S'# no match? store it for future reference, and return self' p272 S'self.component = compName' p273 S'return self' p274 tp275 sg220 g27 sbsg43 I1 sg191 I1 sg10 g11 sbsS'description' p276 (ipoo Prop p277 (dp278 g19 I0 sg189 (ipoo Func p279 (dp280 g186 S'return self.desc' p281 sg213 g27 sg214 I1 sg10 Nsg215 g88 sg49 S'description(self,looker)' p282 sg217 (S"# by default, just return contents of 'desc' field" p283 S'# but first convert lists into string' p284 S'if type(self.desc) == ListType or type(self.desc) == TupleType:' p285 S"\011return string.join(self.desc,'\\n')" p286 S'return self.desc' p287 tp288 sg220 g27 sbsg43 I1 sg191 I1 sg10 NsbsS'salient' p289 (ipoo Prop p290 (dp291 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbsg186 (ipoo Prop p292 (dp293 g19 I0 sg189 S'You see nothing special.' p294 sg43 I1 sg191 I1 sg10 g11 sbsS'listdesc' p295 (ipoo Prop p296 (dp297 g19 I0 sg189 (ipoo Func p298 (dp299 g186 S'return a line for the room contents.' p300 sg213 g27 sg214 I1 sg10 Nsg215 g88 sg49 S'listdesc(self,looker)' p301 sg217 (S'num = randint(0,2)' p302 S'if num==0:\011return "You see a " + self.name + " here."' p303 S'if num==1:\011return "There is a " + self.name + " here."' p304 S'return "A " + self.name + " is lying here."' p305 tp306 sg220 g27 sbsg43 I1 sg191 I1 sg10 NsbsS'broadcast' p307 (ipoo Prop p308 (dp309 g19 I0 sg189 (ipoo Func p310 (dp311 g186 S'tell self and contents' p312 sg213 g27 sg214 I1 sg10 Nsg215 g88 sg49 S'broadcast(self,msg,excluding=[])' p313 sg217 (S'# first, tell msg to myself' p314 S'self.tell(msg)' p315 g88 S'# then, broadcast to all contents (not in excluding)' p316 S'try: stuff = self.contents()' p317 S'except: return' p318 S'if stuff:' p319 S'\011if not excluding:' p320 S'\011\011for item in stuff:' p321 S'\011\011\011item.broadcast(msg,excluding)' p322 S'\011elif type(excluding) == InstanceType:' p323 S'\011\011for item in filter(lambda x,y=excluding:x != y, stuff):' p324 S'\011\011\011item.broadcast(msg,excluding)' p325 S'\011elif type(excluding) == ListType or type(excluding) == TupleType:' p326 S'\011\011for item in filter(lambda x,y=excluding:x not in y, stuff):' p327 S'\011\011\011item.broadcast(msg,excluding)' p328 S'\011else: raise "ParamError", "Can\'t exclude " + `excluding`' p329 tp330 sg220 g27 sbsg43 I1 sg191 I1 sg10 Nsbssg30 (dp331 sg89 (dp332 sg167 (dp333 sg36 (dp334 sg39 (dp335 S'enter' p336 (ipoo Prop p337 (dp338 g19 I0 sg189 (ipoo Func p339 (dp340 g186 S'Enter a directory.' p341 sg213 g39 sg214 I0 sg10 g11 sg215 g88 sg49 S'enter(self,who)' p342 sg217 (S'if self.owner == who or who.wizard or self.r:' p343 S'\011move(who,self)' p344 S"\011who.do_cmd('look')" p345 S'else:' p346 S'\011print "You do not have permission to enter that directory."' p347 tp348 sg220 g39 sbsg43 I1 sg191 I1 sg10 g11 sbsg194 (ipoo Prop p349 (dp350 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbsg276 (ipoo Prop p351 (dp352 g19 I0 sg189 (ipoo Func p353 (dp354 g186 S'List name, desc, and contents' p355 sg213 g39 sg214 I1 sg10 Nsg215 g88 sg49 S'description(self,looker)' p356 sg217 (S'desc = "Directory: " + self.name + \'\\n\'' p357 S"if self.desc: desc = desc + self.desc + '\\n'" p358 S'# then add a list of room contents' p359 S'for item in self.contents():' p360 S'\011if item!=looker:' p361 S'\011\011desc = desc + "\\n\011 " + item.name' p362 S'return desc' p363 tp364 sg220 g39 sbsg43 I1 sg191 I1 sg10 NsbsS'immobile' p365 (ipoo Prop p366 (dp367 g19 I0 sg189 I0 sg43 I1 sg191 I1 sg10 g11 sbsS'up' p368 (ipoo Prop p369 (dp370 g19 I0 sg189 (ipoo Func p371 (dp372 g186 S'Go to the object containing this directory.' p373 sg213 g39 sg214 I0 sg10 g11 sg215 g88 sg49 S'up(self,who)' p374 sg217 (S'move(who,self.location)' p375 S"who.do_cmd('look')" p376 tp377 sg220 g39 sbsg43 I1 sg191 I1 sg10 g11 sbssg103 (dp378 S'dir' p379 (ipoo Prop p380 (dp381 g19 I0 sg189 (ipoo Func p382 (dp383 g186 S'list object references on dobj' p384 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'dir(self,dobj)' p385 sg217 (S'if not dobj: dobj = self.curpath' p386 S'self.showprops( dobj, \\' p387 S'\011"Object Refs of " + str(dobj) + \' ("\' + dobj.name + \'")\',' p388 S"\011lambda x,y=dobj: x != 'owner' and x != 'location'\011\\" p389 S'\011\011and type(getattr(y,x)) == InstanceType and' p390 S'\011\011getattr(y,x).__class__ != Func )' p391 tp392 sg220 g103 sbsg43 I1 sg191 I1 sg10 NsbsS'renprop' p393 (ipoo Prop p394 (dp395 g19 I0 sg189 (ipoo Func p396 (dp397 g186 S'rename a POO property' p398 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'renprop(self,obj,oldname,newname )' p399 sg217 (S'setattr( obj, newname, getattr(obj,oldname) )' p400 S'delattr( obj, oldname )' p401 S'print "Property", oldname, "on", obj, "renamed to", newname+"."' p402 tp403 sg220 g103 sbsg43 I1 sg191 I1 sg10 Nsbsg243 (ipoo Prop p404 (dp405 g19 I0 sg189 (ipoo Func p406 (dp407 g186 S'list a tuple or list' p408 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'list(self,obj,propname,fromLine=1,toLine=99999)' p409 sg217 (S'dobj = getattr(obj,propname)' p410 S'if type(dobj) == ListType or type(dobj) == TupleType:' p411 S'\011for line in dobj[fromLine-1:toLine]: print line' p412 S'else:' p413 S'\011print "Unable to list data of type", type(dobj)' p414 tp415 sg220 g103 sbsg43 I1 sg191 I1 sg10 NsbsS'recycle' p416 (ipoo Prop p417 (dp418 g19 I0 sg189 (ipoo Func p419 (dp420 g186 S'destroy a POO object' p421 sg213 g103 sg214 I0 sg10 g11 sg215 g88 sg49 S'recycle(self,what)' p422 sg217 (S"# make sure it's OK" p423 S'if what.owner != self and not self.wizard:' p424 S'\011print "That is not yours to recycle!"' p425 S'\011return' p426 S'# do the deed' p427 S'destroy( what )' p428 S'print "Thank you for recycling!"' p429 tp430 sg220 g103 sbsg43 I1 sg191 I1 sg10 g11 sbsS'delprop' p431 (ipoo Prop p432 (dp433 g19 I0 sg189 (ipoo Func p434 (dp435 g186 S'delete a POO property' p436 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'delprop(self,obj,propname)' p437 sg217 (S'delattr( obj, propname )' p438 S'print "Property \'" + propname + "\' deleted from", obj' p439 tp440 sg220 g103 sbsg43 I1 sg191 I1 sg10 NsbsS'showprops' p441 (ipoo Prop p442 (dp443 g19 I0 sg189 (ipoo Func p444 (dp445 g186 g88 sg213 g103 sg214 I1 sg10 g11 sg215 g88 sg49 S"showprops(self,what,header='',test=None)" p446 sg217 (S'if header:' p447 S'\011print header' p448 S'\011print "-" * len(header)' p449 S'if test==None: test = lambda x:1' p450 S'for p in filter(test,what.proplist()):' p451 S'\011try:' p452 S'\011\011text = tostr(getattr(what,p))' p453 S"\011\011if len(text) > 50: text = text[:47] + '...'" p454 S'\011\011pr = what.getprop(p)' p455 S'\011\011if (pr):' p456 S'\011\011\011print "%-15s %-50s %5s %4s" % (p,text,pr.owner,pr.permstr())' p457 S'\011\011else:' p458 S'\011\011\011print "%-15s %-50s (built-in)" % (p,text)' p459 S'\011except:' p460 S'\011\011print "%-15s [ can\'t read ]" % p' p461 tp462 sg220 g103 sbsg43 I1 sg191 I1 sg10 g11 sbsS'setperm' p463 (ipoo Prop p464 (dp465 g19 I0 sg189 (ipoo Func p466 (dp467 g186 S'set permissions on a property' p468 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'setperm(self,obj,propname,perms)' p469 sg217 (S'prop = obj.getprop(propname)' p470 S"for perm in ['w','r','c']:" p471 S' if string.find(perms,perm) >= 0: setattr(prop,perm,1)' p472 S' else: setattr(prop,perm,0)' p473 S'if type(prop.val) == InstanceType and prop.val.__class__ == Func:' p474 S"\011prop.val.x = ('x' in perms)" p475 S"elif 'x' in perms:" p476 S'\011print "\'x\' applies only to functions, not to", type(prop.val)' p477 S'print "Permissions set."' p478 tp479 sg220 g103 sbsg43 I1 sg191 I1 sg10 NsbsS'exprops' p480 (ipoo Prop p481 (dp482 g19 I0 sg189 (ipoo Func p483 (dp484 g186 S'list all properties on dobj' p485 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'exprops(self,dobj)' p486 sg217 (S'if type(dobj) != InstanceType:' p487 S'\011print "ex what?!?"' p488 S'\011return' p489 S'self.showprops( dobj, \\' p490 S'\011"Properties of " + str(dobj) + \' ("\' + dobj.name + \'")\' )' p491 tp492 sg220 g103 sbsg43 I1 sg191 I1 sg10 NsbsS'dig' p493 (ipoo Prop p494 (dp495 g19 I0 sg189 (ipoo Func p496 (dp497 g186 S'create a room connected to the current one' p498 sg213 g103 sg214 I0 sg10 g11 sg215 g88 sg49 S'dig(self, dir, newroom)' p499 sg217 (S'# parse common directions' p500 S"map = {\011'n':\011('north', 's')," p501 S"\011\011'e':\011('east', 'w')," p502 S"\011\011's':\011('south', 'n')," p503 S"\011\011'w':\011('west', 'e')," p504 S"\011\011'ne':\011('northeast', 'sw')," p505 S"\011\011'se':\011('southeast', 'nw')," p506 S"\011\011'sw':\011('southwest', 'ne')," p507 S"\011\011'nw':\011('northwest', 'se')," p508 S"\011\011'u':\011('up', 'd')," p509 S"\011\011'd':\011('down', 'u') }" p510 S'if dir not in map.keys():' p511 S' print "Direction", dir, "not recognized; command aborted."' p512 S' return' p513 S'tup = map[dir]' p514 S'names = [tup[0], dir]' p515 S'revnames = [ map[tup[1]][0], tup[1] ]' p516 g88 S'# check for existing exit' p517 S'if (filter(lambda x,y=names[0]: x.name==y, self.location.contents())):' p518 S' print "Looks like there\'s already an exit", names[0]+". Command aborted."' p519 S' return' p520 S'# create the room; place in same location as this room' p521 S'if type(newroom) != InstanceType:' p522 S" newroom = create( self, getObj('$place'), newroom )" p523 S' move( newroom, self.location.location )' p524 S' print newroom.name, "created as object", newroom, \\' p525 S' \011"and moved to", newroom.location, \'(\' + newroom.location.name + \')\'' p526 S"exitThere = create( self, getObj('$exit'), names[0] )" p527 S'exitThere.aliases = names[1:]' p528 S'exitThere.dest = newroom' p529 S"exitThere.getprop('dest').owner = self" p530 S'move( exitThere, self.location )' p531 S'print "Exit", exitThere.name, "created in", \\' p532 S' self.location.name, "as object", exitThere' p533 g88 S"exitHere = create( self, getObj('$exit'), revnames[0] )" p534 S'exitHere.aliases = revnames[1:]' p535 S'exitHere.dest = self.location' p536 S"exitHere.getprop('dest').owner = self" p537 S'move( exitHere, newroom )' p538 S'print "Exit", exitHere.name, "created in", \\' p539 S' newroom.name, "as object", exitHere' p540 tp541 sg220 g103 sbsg43 I1 sg191 I1 sg10 g11 sbsS'create' p542 (ipoo Prop p543 (dp544 g19 I0 sg189 (ipoo Func p545 (dp546 g186 S'make a new POO object' p547 sg213 g103 sg214 I0 sg10 g11 sg215 g88 sg49 S"create(self,parent,newname='')" p548 sg217 (S"if parent.isa(getObj('$user')) and not self.wizard:" p549 S'\011print "Only wizards can create users."' p550 S'\011return' p551 S'ob = create(self, parent, newname)' p552 S'print ob.name,"created as object #" + str(ob.id)+"."' p553 tp554 sg220 g103 sbsg43 I1 sg191 I1 sg10 g11 sbsS'edit' p555 (ipoo Prop p556 (dp557 g19 I0 sg189 (ipoo Func p558 (dp559 g186 S'edit a list, tuple, or function' p560 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'edit(self,obj,propname)' p561 sg217 (S'# find object reference and prop name' p562 S"# if prop doesn't exist, create an empty tuple" p563 S'if not getattr(obj,propname):' p564 S' setattr( obj, propname, () )' p565 S'# start editing' p566 S'self.startEdit( obj, propname )' p567 tp568 sg220 g103 sbsg43 I1 sg191 I1 sg10 NsbsS'at_set' p569 (ipoo Prop p570 (dp571 g19 I0 sg189 (ipoo Func p572 (dp573 g186 S'set a property value' p574 sg213 g103 sg214 I0 sg10 Nsg215 g88 sg49 S'at_set(self, ref, propname, val)' p575 sg217 (S'setattr( ref, propname, val )' p576 tp577 sg220 g103 sbsg43 I1 sg191 I1 sg10 Nsbssg161 (dp578 sg179 (dp579 g379 (ipoo Prop p580 (dp581 g19 I0 sg189 g39 sg43 I1 sg191 I1 sg10 g11 sbsS'wiz' p582 (ipoo Prop p583 (dp584 g19 I0 sg189 g86 sg43 I1 sg191 I1 sg10 g11 sbsg183 (ipoo Prop p585 (dp586 g19 I0 sg189 g36 sg43 I1 sg191 I1 sg10 g11 sbsS'pub' p587 (ipoo Prop p588 (dp589 g19 I0 sg189 g33 sg43 I1 sg191 I1 sg10 g11 sbsS'user' p590 (ipoo Prop p591 (dp592 g19 I0 sg189 g105 sg43 I1 sg191 I1 sg10 g11 sbsg79 (ipoo Prop p593 (dp594 g19 I0 sg189 g68 sg43 I1 sg191 I1 sg10 g11 sbsS'base' p595 (ipoo Prop p596 (dp597 g19 I0 sg189 g27 sg43 I1 sg191 I1 sg10 g11 sbsS'exit' p598 (ipoo Prop p599 (dp600 g19 I0 sg189 g173 sg43 I1 sg191 I1 sg10 g11 sbsS'thing' p601 (ipoo Prop p602 (dp603 g19 I0 sg189 g27 sg43 I1 sg191 I1 sg10 g11 sbsS'sys' p604 (ipoo Prop p605 (dp606 g19 I0 sg189 g92 sg43 I1 sg191 I1 sg10 g11 sbsS'usr' p607 (ipoo Prop p608 (dp609 g19 I0 sg189 g167 sg43 I1 sg191 I1 sg10 g11 sbsS'agent' p610 (ipoo Prop p611 (dp612 g19 I0 sg189 g107 sg43 I1 sg191 I1 sg10 g11 sbsS'builder' p613 (ipoo Prop p614 (dp615 g19 I0 sg189 g103 sg43 I1 sg191 I1 sg10 g11 sbsS'universe' p616 (ipoo Prop p617 (dp618 g19 I0 sg189 g20 sg43 I1 sg191 I1 sg10 g11 sbsS'void' p619 (ipoo Prop p620 (dp621 g19 I0 sg189 g23 sg43 I1 sg191 I1 sg10 g11 sbsS'container' p622 (ipoo Prop p623 (dp624 g19 I0 sg189 g1 sg43 I1 sg191 I1 sg10 g11 sbsS'coder' p625 (ipoo Prop p626 (dp627 g19 I0 sg189 g101 sg43 I1 sg191 I1 sg10 g11 sbssg105 (dp628 S'printHelp' p629 (ipoo Prop p630 (dp631 g19 I0 sg189 (ipoo Func p632 (dp633 g186 S'access the help database' p634 sg213 g105 sg214 I0 sg10 Nsg215 g88 sg49 S"printHelp(self,topic='')" p635 sg217 (S'if type(topic) == InstanceType:' p636 S'\011if not topic.help:' p637 S'\011\011print help(topic.name)' p638 S'\011elif type(topic.help) == ListType or type(topic.help) == TupleType:' p639 S"\011\011print string.join(dobj.help,'\\n')" p640 S'\011else:' p641 S'\011\011print topic.help' p642 S'else:' p643 S' print help(topic)' p644 tp645 sg220 g105 sbsg43 I1 sg191 I1 sg10 NsbsS'inventory' p646 (ipoo Prop p647 (dp648 g19 I0 sg189 (ipoo Func p649 (dp650 g186 S'print credits and contents' p651 sg213 g105 sg214 I0 sg10 Nsg215 g88 sg49 S'inventory(self)' p652 sg217 (S'if not self.contents and not self.__credits:' p653 S'\011print "You are empty-handed."' p654 S'else:' p655 S'\011print "You have", self.__credits,' p656 S'\011if self.__credits == 1: print "credit,",' p657 S'\011else: print "credits,",' p658 S'\011if not self.contents():' p659 S'\011\011print "and are carrying nothing."' p660 S'\011else:' p661 S'\011\011print "and are carrying:"' p662 S'\011\011for item in self.contents():' p663 S'\011\011\011print " -", item.name' p664 tp665 sg220 g105 sbsg43 I1 sg191 I1 sg10 NsbsS'look' p666 (ipoo Prop p667 (dp668 g19 I0 sg189 (ipoo Func p669 (dp670 g186 S'print object description.' p671 sg213 g105 sg214 I0 sg10 Nsg215 g88 sg49 S'look(self,atwhat=None)' p672 sg217 (S'if not atwhat: atwhat = self.location' p673 S'# call the description function, if any' p674 S'if callable(atwhat.description):' p675 S'\011print atwhat.description(self)' p676 S'else:' p677 S'\011print "You see nothing special."' p678 tp679 sg220 g105 sbsg43 I1 sg191 I1 sg10 Nsbsg295 (ipoo Prop p680 (dp681 g19 I0 sg189 (ipoo Func p682 (dp683 g186 S'return <name> is here [(asleep)].' p684 sg213 g105 sg214 I1 sg10 Nsg215 g88 sg49 S'listdesc(self,looker)' p685 sg217 (S'if self.connected():' p686 S'\011return self.name + " is here."' p687 S'else:' p688 S'\011return self.name + " is here (asleep)."' p689 tp690 sg220 g105 sbsg43 I1 sg191 I1 sg10 NsbsS'who' p691 (ipoo Prop p692 (dp693 g19 I0 sg189 (ipoo Func p694 (dp695 g186 S'list connected users + some info' p696 sg213 g105 sg214 I0 sg10 g11 sg215 g88 sg49 S'who(self)' p697 sg217 (S'us = users()' p698 S'if len(us)==1: print "There is 1 user",' p699 S'else: print "There are", len(us), "users",' p700 S'print "currently connected:"' p701 S'now = time()' p702 S'print " %-23s %-23s %-11s %-11s" % (\'Name\',\'Location\',\' On\',\' Idle\')' p703 S'print " %-23s %-23s %-11s %-11s" % (\'----\',\'--------\',\'-----------\',\'-----------\')' p704 S'for user in us:' p705 S'\011ontime = int( now - user.loginTime )' p706 S'\011actime = int( now - user.activeTime )' p707 S'\011print " %-23s %-23s %2dh %2dm %2ds %2dh %2dm %2ds" % \\' p708 S'\011\011(user.name, user.location.name, \\' p709 S'\011\011 ontime/3600, (ontime%3600)/60, ontime%60,' p710 S'\011\011 actime/3600, (actime%3600)/60, actime%60)' p711 tp712 sg220 g105 sbsg43 I1 sg191 I1 sg10 g11 sbsS'passwd' p713 (ipoo Prop p714 (dp715 g19 I0 sg189 (ipoo Func p716 (dp717 g186 S'set password (encrypted)' p718 sg213 g105 sg214 I0 sg10 g11 sg215 g88 sg49 S'passwd(self,newpassword)' p719 sg217 (S"setattr(self,'password',md5.new(newpassword).digest())" p720 S'print "Password changed to:", newpassword' p721 tp722 sg220 g105 sbsg43 I1 sg191 I1 sg10 g11 sbssg155 (dp723 sg92 (dp724 sg107 (dp725 S'home' p726 (ipoo Prop p727 (dp728 g19 I0 sg189 g16 sg43 I1 sg191 I1 sg10 g11 sbsg194 (ipoo Prop p729 (dp730 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbsS'emote' p731 (ipoo Prop p732 (dp733 g19 I0 sg189 (ipoo Func p734 (dp735 g186 S'strike a pose' p736 sg213 g107 sg214 I0 sg10 Nsg215 g88 sg49 S'emote(self,str)' p737 sg217 (S'if str[0] == \'"\' or str[0] == "\'": str = str[1:]' p738 S'if str[-1] == \'"\' or str[-1] == "\'": str = str[:-1]' p739 S"if str[-1] != '.' and str[-1] != '!' and str[-1] != '?':" p740 S"\011\011str = str + '.'" p741 S"self.location.broadcast( self.name + ' ' + str + ' ')" p742 tp743 sg220 g107 sbsg43 I1 sg191 I1 sg10 NsbsS'at_home' p744 (ipoo Prop p745 (dp746 g19 I0 sg189 (ipoo Func p747 (dp748 g186 S'teleport to self.home' p749 sg213 g107 sg214 I0 sg10 g11 sg215 g88 sg49 S'at_home(self)' p750 sg217 (S'oldroom = self.location' p751 S'newroom = self.home' p752 S'newroom.broadcast(self.name+" comes home.")' p753 S'move(self,newroom)' p754 S'print "There\'s no place like home..."' p755 S'print "There\'s no place like home..."' p756 S'print "There\'s no place like home..."' p757 S'oldroom.broadcast(self.name+" heads home.")' p758 S"self.do_cmd('look')" p759 tp760 sg220 g107 sbsg43 I1 sg191 I1 sg10 g11 sbsS'drop' p761 (ipoo Prop p762 (dp763 g19 I0 sg189 (ipoo Func p764 (dp765 g186 S'drop an object' p766 sg213 g107 sg214 I0 sg10 g11 sg215 g88 sg49 S'drop(self,dobj)' p767 sg217 (S'if dobj.location != self:' p768 S'\011self.tell("You don\'t have that.")' p769 S'else:' p770 S'\011move(dobj, self.location)' p771 S'\011show( "%1I %1:(drops) %2i.", {1:self, 2:dobj} )' p772 tp773 sg220 g107 sbsg43 I1 sg191 I1 sg10 g11 sbsS'sethome' p774 (ipoo Prop p775 (dp776 g19 I0 sg189 (ipoo Func p777 (dp778 g186 S'self.home = self.location' p779 sg213 g107 sg214 I0 sg10 g11 sg215 g88 sg49 S'sethome(self)' p780 sg217 (S'if self.location.owner == self or self.location.public_home:' p781 S' self.home = self.location' p782 S' print "This is now your home."' p783 S'else:' p784 S' print "This room belongs to " + self.location.owner.name \\' p785 S' + ", and is not a public home."' p786 tp787 sg220 g107 sbsg43 I1 sg191 I1 sg10 g11 sbsg295 (ipoo Prop p788 (dp789 g19 I0 sg189 (ipoo Func p790 (dp791 g186 S'return <name> is here.' p792 sg213 g107 sg214 I1 sg10 Nsg215 g88 sg49 S'listdesc(self,looker)' p793 sg217 (S'return self.name + " is here."' p794 tp795 sg220 g107 sbsg43 I1 sg191 I1 sg10 NsbsS'get' p796 (ipoo Prop p797 (dp798 g19 I0 sg189 (ipoo Func p799 (dp800 g186 S'get an object' p801 sg213 g107 sg214 I0 sg10 g11 sg215 g88 sg49 S'get(self,dobj)' p802 sg217 (S'if dobj.location != self.location:' p803 S'\011print "The", dobj.name, "doesn\'t seem to be here."' p804 S'elif dobj.immobile == 1:' p805 S'\011if dobj.immobiledesc:' p806 S'\011\011print dobj.immobiledesc' p807 S'\011else:' p808 S'\011\011print "You can\'t pick that up."' p809 S'else:' p810 S'\011move(dobj,self)' p811 S'\011show( "%1I %1:(gets) %2i.", {1:self, 2:dobj} )' p812 tp813 sg220 g107 sbsg43 I1 sg191 I1 sg10 g11 sbsS'page' p814 (ipoo Prop p815 (dp816 g19 I0 sg189 (ipoo Func p817 (dp818 g186 S'send a message to a user' p819 sg213 g107 sg214 I0 sg10 g11 sg215 g88 sg49 S'page(self,whom,msg)' p820 sg217 (S'# find recipient' p821 S'if type(whom) == StringType:' p822 S' matches = filter( lambda x,y=whom:x.name == y, users() )' p823 S' if not matches:' p824 S' print whom, "is not logged in."' p825 S' return' p826 S' whom = matches[0]' p827 g88 S'# is recipient accepting pages?' p828 S'if whom.nopage:' p829 S' print whom.name, "is not accepting pages."' p830 S' return' p831 g88 S'# send the message' p832 S'whom.tell( self.name, "pages you from", self.location.name,' p833 S' \'with: "\' + msg + \'".\')' p834 S'print "Message sent."' p835 tp836 sg220 g107 sbsg43 I1 sg191 I1 sg10 g11 sbsS'say' p837 (ipoo Prop p838 (dp839 g19 I0 sg189 (ipoo Func p840 (dp841 g186 S'speak a string to the room' p842 sg213 g107 sg214 I0 sg10 Nsg215 g88 sg49 S'say(self,str)' p843 sg217 (S'if str[0] == \'"\' or str[0] == "\'": str = str[1:]' p844 S'if str[-1] == \'"\' or str[-1] == "\'": str = str[:-1]' p845 S'self.location.broadcast( self.name + \' says, "\' + str + \'"\', [self])' p846 S'print \'You say, "\' + str + \'"\'' p847 tp848 sg220 g107 sbsg43 I1 sg191 I1 sg10 NsbsS'give' p849 (ipoo Prop p850 (dp851 g19 I0 sg189 (ipoo Func p852 (dp853 g186 S'give credits to another user or object' p854 sg213 g107 sg214 I0 sg10 g11 sg215 g88 sg49 S'give(self,what,toWhom)' p855 sg217 (S'if type(what) != IntType or type(toWhom) != InstanceType:' p856 S'\011print "Usage: Give <number of credits> to <user|object>"' p857 S'\011return' p858 S'if what < 0:' p859 S'\011print "Nice try!"' p860 S'\011return' p861 S'transfer( self, toWhom, what )' p862 S'print "You give", what, "credits to", toWhom.name + "."' p863 S'toWhom.tell( self.name + " gives you " + str(what) + " credits." )' p864 tp865 sg220 g107 sbsg43 I1 sg191 I1 sg10 g11 sbssg68 (dp866 g194 (ipoo Prop p867 (dp868 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 Nsbsg276 (ipoo Prop p869 (dp870 g19 I0 sg189 (ipoo Func p871 (dp872 g186 S'return standard desc plus room contents' p873 sg213 g68 sg214 I1 sg10 Nsg215 g88 sg49 S'description(self,looker)' p874 sg217 (S'# first, get the room name and the standard description' p875 S"desc = self.name + '\\n' + super(looker) + '\\n'" p876 S'# then add a list of room contents' p877 S'for item in self.contents():' p878 S'\011if item!=looker and item.salient:' p879 S'\011\011desc = desc + "\\n\011 " + item.listdesc(looker)' p880 S'return desc' p881 tp882 sg220 g68 sbsg43 I1 sg191 I1 sg10 Nsbssg86 (dp883 S'movprop' p884 (ipoo Prop p885 (dp886 g19 I0 sg189 (ipoo Func p887 (dp888 g186 S'move prop from one object to another' p889 sg213 g86 sg214 I0 sg10 Nsg215 g88 sg49 S'movprop(self,obj,propname,newobj)' p890 sg217 (S'setattr( newobj, propname, getattr(obj,propname) )' p891 S'delattr( obj, propname )' p892 S'print "Property", propname, "moved from", obj, "to", newobj, \'.\'' p893 tp894 sg220 g86 sbsg43 I1 sg191 I1 sg10 NsbsS'find' p895 (ipoo Prop p896 (dp897 g19 I0 sg189 (ipoo Func p898 (dp899 g186 S'find objects by name' p900 sg213 g86 sg214 I0 sg10 Nsg215 g88 sg49 S'find(self,name)' p901 sg217 (S'# search the database for the given object name' p902 S"matches = filter(lambda x,a=name:x.name==a, getObj('ALL'))" p903 S'if not matches:' p904 S' raise "NotFound", "No object names match: "+dobjstr' p905 S'print "Name", name, "matches: ", tostr(matches)' p906 S'return matches' p907 tp908 sg220 g86 sbsg43 I1 sg191 I1 sg10 NsbsS'newuser' p909 (ipoo Prop p910 (dp911 g19 I0 sg189 (ipoo Func p912 (dp913 g186 S'create a new user' p914 sg213 g86 sg214 I0 sg10 Nsg215 g88 sg49 S'newuser(self,base,name)' p915 sg217 (S'if type(base) != InstanceType or base.__class__ != User \\' p916 S'\011\011or type(name) != StringType:' p917 S'\011print "Usage: @newuser <base class> as <name>"' p918 S'\011print " E.g.: @newuser $sys.usertypes.Coder as Monty"' p919 S'\011return' p920 S'ob = create(self, base, name)' p921 S'ob.programmer = base.programmer' p922 S'ob.wizard = base.wizard' p923 S'ob.owner = ob' p924 S"setattr(ob, 'password',md5.new(ob.name).digest())" p925 S'print base.name, ob.name, "created as object", str(ob.id)+"."' p926 S'print "Password set to", ob.name' p927 S'try:' p928 S"\011setattr(getObj('$usr'), ob.name, ob)" p929 S'\011print "$usr." + ob.name, "set to", ob' p930 S'except:' p931 S'\011print "Couldn\'t set $usr." + ob.name' p932 S'try:' p933 S'\011move(ob,ob.home)' p934 S'\011print "User moved to", ob.home' p935 S'except:' p936 S'\011print "Can\'t move user home;",' p937 S'\011move(ob,self.location)' p938 S'\011print "moved to", self.location' p939 tp940 sg220 g86 sbsg43 I1 sg191 I1 sg10 NsbsS'at_setown' p941 (ipoo Prop p942 (dp943 g19 I0 sg189 (ipoo Func p944 (dp945 g186 S"set a property's owner" p946 sg213 g86 sg214 I0 sg10 Nsg215 g88 sg49 S'at_setown(self, ref, propname, owner)' p947 sg217 (S'prop = ref.getprop(propname)' p948 S'if prop: prop.owner = owner' p949 S'else: print "There is no property named", propname, "on", ref.name+\'.\'' p950 tp951 sg220 g86 sbsg43 I1 sg191 I1 sg10 NsbsS'opassword' p952 (ipoo Prop p953 (dp954 g19 I0 sg189 (ipoo Func p955 (dp956 g186 S'set password on another user' p957 sg213 g86 sg214 I0 sg10 Nsg215 g88 sg49 S'opassword(self,newpassword,onWhom)' p958 sg217 (S"setattr(onWhom,'password',md5.new(newpassword).digest())" p959 S'print onWhom.name + "\'s password changed to", newpassword' p960 tp961 sg220 g86 sbsg43 I1 sg191 I1 sg10 NsbsS'beam' p962 (ipoo Prop p963 (dp964 g19 I0 sg189 (ipoo Func p965 (dp966 g186 S'teleport an object to any location' p967 sg213 g86 sg214 I0 sg10 Nsg215 g88 sg49 S'beam(self,obj,where)' p968 sg217 (S'if type(where) != InstanceType:' p969 S'\011print "Invalid location."' p970 S'else:' p971 S'\011move(obj,where)' p972 S'\011print obj.name, "beamed to", where.name + "."' p973 S'\011if obj == self: self.do_cmd("look")' p974 tp975 sg220 g86 sbsg43 I1 sg191 I1 sg10 Nsbssg16 (dp976 g186 (ipoo Prop p977 (dp978 g19 I0 sg189 S'This room is $agent.home, so new users have their home here by default.' p979 sg43 I1 sg191 I1 sg10 g11 sbssg1 (dp980 g194 (ipoo Prop p981 (dp982 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbsg276 (ipoo Prop p983 (dp984 g19 I0 sg189 (ipoo Func p985 (dp986 g186 S'list contents after description' p987 sg213 g1 sg214 I1 sg10 Nsg215 g88 sg49 S'description(self,looker)' p988 sg217 (S'# first, get standard description' p989 S'desc = super(looker)' p990 S'# then add list of contents' p991 S'items = filter( lambda x:x.salient, self.contents() )' p992 S'if not items:' p993 S'\011desc = desc + "\\nThe " + self.name + " appears to be empty."' p994 S'else:' p995 S'\011desc = desc + "\\nThe " + self.name + " contains:\\n"' p996 S'\011for i in items:' p997 S'\011\011desc = desc + " " + i.name + \'\\n\'' p998 S'return desc' p999 tp1000 sg220 g1 sbsg43 I1 sg191 I1 sg10 NsbsS'getContent' p1001 (ipoo Prop p1002 (dp1003 g19 I0 sg189 (ipoo Func p1004 (dp1005 g186 S'get object from contents' p1006 sg213 g1 sg214 I0 sg10 g11 sg215 g88 sg49 S'getContent(self,itemName,who)' p1007 sg217 (S'cont = self.contents()' p1008 S'matches = filter(lambda x,a=itemName:x.name==a, cont)' p1009 S'if not matches:' p1010 S'\011matches = filter(lambda x,a=itemName:x.aliases and a in x.aliases,' p1011 S'\011\011\011cont)' p1012 S'if not matches:' p1013 S'\011print "Get WHAT from the", self.name+"?!?"' p1014 S'else:' p1015 S'\011what = matches[0]' p1016 S'\011move( what, who )' p1017 S'\011show( "%1I %1:(gets) %2i from %3i.", {1:who, 2:what, 3:self} )' p1018 tp1019 sg220 g1 sbsg43 I1 sg191 I1 sg10 g11 sbsS'put' p1020 (ipoo Prop p1021 (dp1022 g19 I0 sg189 (ipoo Func p1023 (dp1024 g186 S'put object into contents' p1025 sg213 g1 sg214 I0 sg10 g11 sg215 g88 sg49 S'put(self,what,who)' p1026 sg217 (S'if what.location != who:' p1027 S'\011print "You don\'t seem to have the", what.name+"."' p1028 S'else:' p1029 S'\011move(what,self)' p1030 S'\011show( "%1I %1:(puts) %2i into %3i.", {1:who, 2:what, 3:self} )' p1031 tp1032 sg220 g1 sbsg43 I1 sg191 I1 sg10 g11 sbssg71 (dp1033 sg173 (dp1034 S'invoke' p1035 (ipoo Prop p1036 (dp1037 g19 I0 sg189 (ipoo Func p1038 (dp1039 g186 S'move caller to .dest' p1040 sg213 g11 sg214 I1 sg10 g11 sg215 g88 sg49 S'invoke(self,invoker=None)' p1041 sg217 (S'if not invoker: invoker = user' p1042 S'if not self.dest:' p1043 S'\011print self.name,"leads nowhere."' p1044 S'\011return' p1045 S'oldroom = invoker.location' p1046 S'self.dest.broadcast(invoker.name+" enters the room.")' p1047 S'move(invoker,self.dest)' p1048 S'if self.name != "exit" and self.name != "out":' p1049 S'\011oldroom.broadcast(invoker.name+" exits "+self.name+".")' p1050 S'else:' p1051 S'\011oldroom.broadcast(invoker.name+" exits.")' p1052 S"if hasattr(invoker,'do_cmd'): invoker.do_cmd('look')" p1053 tp1054 sg220 g11 sbsg43 I1 sg191 I1 sg10 g11 sbsg365 (ipoo Prop p1055 (dp1056 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbsg289 (ipoo Prop p1057 (dp1058 g19 I0 sg189 I0 sg43 I1 sg191 I1 sg10 g11 sbsS'dest' p1059 (ipoo Prop p1060 (dp1061 g19 I0 sg189 Nsg43 I1 sg191 I1 sg10 g11 sbssg23 (dp1062 g186 (ipoo Prop p1063 (dp1064 g19 I0 sg189 S'This object contains the main directories and the universe of rooms in the system.' p1065 sg43 I1 sg191 I1 sg10 g11 sbsg194 (ipoo Prop p1066 (dp1067 g19 I0 sg189 I1 sg43 I1 sg191 I1 sg10 g11 sbssg33 (dp1068 s(dp1069 g20 (lp1070 g16 asg146 (lp1071 g1 asg11 (lp1072 sg101 (lp1073 sg27 (lp1074 sg30 (lp1075 g27 ag107 asg89 (lp1076 g105 ag103 ag101 ag86 asg167 (lp1077 sg36 (lp1078 g92 ag33 ag167 asg39 (lp1079 sg103 (lp1080 sg161 (lp1081 g173 asg179 (lp1082 sg105 (lp1083 sg155 (lp1084 sg92 (lp1085 g89 asg107 (lp1086 sg68 (lp1087 sg86 (lp1088 sg16 (lp1089 g11 asg1 (lp1090 sg71 (lp1091 g68 asg173 (lp1092 sg23 (lp1093 g20 ag36 asg33 (lp1094 g71 ag161 ag146 ag155 ag30 as(dp1095 g39 (dp1096 S'enter' p1097 ((ipooparse CmdDef p1098 (dp1099 g10 g11 sS'pat' p1100 S'enter <this>' p1101 sS'funcdef' p1102 S'enter(caller)' p1103 sbtp1104 sS'up' p1105 ((ipooparse CmdDef p1106 (dp1107 g10 g11 sg1100 S'up' p1108 sg1102 S'up(caller)' p1109 sbtp1110 ssg86 (dp1111 S'@setown' p1112 ((ipooparse CmdDef p1113 (dp1114 g10 g11 sg1102 S'at_setown(%1,%2,%3)' p1115 sg1100 S'@setown <obj>.<str> = <obj>' p1116 sb(ipooparse CmdDef p1117 (dp1118 g10 g11 sg1102 S'at_setown(%1,%2,%3)' p1119 sg1100 S'@setown <obj>.<str> to <obj>' p1120 sb(ipooparse CmdDef p1121 (dp1122 g10 g11 sg1102 S'at_setown(%1,%2,None)' p1123 sg1100 S'@setown <obj>.<str> = None' p1124 sb(ipooparse CmdDef p1125 (dp1126 g10 g11 sg1102 S'at_setown(%1,%2,None)' p1127 sg1100 S'@setown <obj>.<str> to None' p1128 sbtp1129 sS'beam' p1130 ((ipooparse CmdDef p1131 (dp1132 g10 g11 sg1102 S'beam(%1,%2)' p1133 sg1100 S'beam <obj> to <obj>' p1134 sbtp1135 sS'find' p1136 ((ipooparse CmdDef p1137 (dp1138 g10 g11 sg1100 S'find <str>' p1139 sg1102 S'find(%1)' p1140 sbtp1141 sS'@newuser' p1142 ((ipooparse CmdDef p1143 (dp1144 g10 g11 sg1100 S'@newuser <obj> as <str>' p1145 sg1102 S'newuser(%1,%2)' p1146 sbtp1147 sS'@opassword' p1148 ((ipooparse CmdDef p1149 (dp1150 g10 g11 sg1100 S'@opassword <str> on <obj>' p1151 sg1102 S'opassword(%1,%2)' p1152 sb(ipooparse CmdDef p1153 (dp1154 g10 g11 sg1100 S'@opassword <str> for <obj>' p1155 sg1102 S'opassword(%1,%2)' p1156 sbtp1157 sS'@movprop' p1158 ((ipooparse CmdDef p1159 (dp1160 g10 g11 sg1100 S'@movprop <obj>.<propname> to <obj>' p1161 sg1102 S'movprop(%1,%2,%3)' p1162 sbtp1163 ssg103 (dp1164 S'@dir' p1165 ((ipooparse CmdDef p1166 (dp1167 g10 g11 sg1100 S'@dir <obj>' p1168 sg1102 S'dir(%1)' p1169 sbtp1170 sS'@recycle' p1171 ((ipooparse CmdDef p1172 (dp1173 g10 g11 sg1100 S'@recycle <obj>' p1174 sg1102 S'recycle(%1)' p1175 sbtp1176 sS'@ex' p1177 ((ipooparse CmdDef p1178 (dp1179 g10 g11 sg1100 S'@ex <obj>' p1180 sg1102 S'exprops(%1)' p1181 sbtp1182 sS'@list' p1183 ((ipooparse CmdDef p1184 (dp1185 g10 g11 sg1100 S'@list <obj>.<propname>' p1186 sg1102 S'list(%1,%2)' p1187 sb(ipooparse CmdDef p1188 (dp1189 g10 g11 sg1100 S'@list <obj>.<propname> <int>' p1190 sg1102 S'list(%1,%2,%3,%3)' p1191 sb(ipooparse CmdDef p1192 (dp1193 g10 g11 sg1100 S'@list <obj>.<propname> <int>-' p1194 sg1102 S'list(%1,%2,%3)' p1195 sb(ipooparse CmdDef p1196 (dp1197 g10 g11 sg1100 S'@list <obj>.<propname> -<int>' p1198 sg1102 S'list(%1,%2,1,%3)' p1199 sb(ipooparse CmdDef p1200 (dp1201 g10 g11 sg1100 S'@list <obj>.<propname> <int>-<int>' p1202 sg1102 S'list(%1,%2,%3,%4)' p1203 sbtp1204 sS'@dig' p1205 ((ipooparse CmdDef p1206 (dp1207 g10 g11 sg1100 S'@dig <str> to <str>' p1208 sg1102 S'dig(%1,%2)' p1209 sb(ipooparse CmdDef p1210 (dp1211 g10 g11 sg1100 S'@dig <str> to <obj>' p1212 sg1102 S'dig(%1,%2)' p1213 sbtp1214 sS'@create' p1215 ((ipooparse CmdDef p1216 (dp1217 g10 g11 sg1102 S'create(%1,%2)' p1218 sg1100 S'@create <obj> as <str>' p1219 sbtp1220 sS'@edit' p1221 ((ipooparse CmdDef p1222 (dp1223 g10 g11 sg1100 S'@edit <obj>.<propname>' p1224 sg1102 S'edit(%1,%2)' p1225 sbtp1226 sS'@set' p1227 ((ipooparse CmdDef p1228 (dp1229 g10 g11 sg1102 S'at_set(%1,%2,%3)' p1230 sg1100 S'@set <obj>.<propname> = <val>' p1231 sb(ipooparse CmdDef p1232 (dp1233 g10 g11 sg1102 S'at_set(%1,%2,%3)' p1234 sg1100 S'@set <obj>.<propname> to <val>' p1235 sb(ipooparse CmdDef p1236 (dp1237 g10 g11 sg1102 S'at_set(%1,%2,%3)' p1238 sg1100 S'@set <obj>.<propname>=<val>' p1239 sbtp1240 sS'@delprop' p1241 ((ipooparse CmdDef p1242 (dp1243 g10 g11 sg1100 S'@delprop <obj>.<propname>' p1244 sg1102 S'delprop(%1,%2)' p1245 sbtp1246 sS'@setperm' p1247 ((ipooparse CmdDef p1248 (dp1249 g10 g11 sg1102 S'setperm(%1,%2,%3)' p1250 sg1100 S'@setperm <obj>.<propname> to <str>' p1251 sb(ipooparse CmdDef p1252 (dp1253 g10 g11 sg1102 S'setperm(%1,%2,%3)' p1254 sg1100 S'@setperm <obj>.<propname> = <str>' p1255 sbtp1256 sS'@renprop' p1257 ((ipooparse CmdDef p1258 (dp1259 g10 g11 sg1100 S'@renprop <obj>.<propname> to <propname>' p1260 sg1102 S'renprop(%1,%2,%3)' p1261 sbtp1262 ssg101 (dp1263 S'@delcmd' p1264 ((ipooparse CmdDef p1265 (dp1266 g10 g11 sg1100 S'@delcmd <obj>.<str>' p1267 sg1102 S'delcmd(%1,%2)' p1268 sbtp1269 sS'@list' p1270 ((ipooparse CmdDef p1271 (dp1272 g10 g11 sg1100 S'@list <obj>.<propname>' p1273 sg1102 S'list(%1,%2)' p1274 sb(ipooparse CmdDef p1275 (dp1276 g10 g11 sg1100 S'@list <obj>.<propname> <int>' p1277 sg1102 S'list(%1,%2,%3,%3)' p1278 sb(ipooparse CmdDef p1279 (dp1280 g10 g11 sg1100 S'@list <obj>.<propname> <int>-' p1281 sg1102 S'list(%1,%2,%3)' p1282 sb(ipooparse CmdDef p1283 (dp1284 g10 g11 sg1100 S'@list <obj>.<propname> -<int>' p1285 sg1102 S'list(%1,%2,1,%3)' p1286 sb(ipooparse CmdDef p1287 (dp1288 g10 g11 sg1100 S'@list <obj>.<propname> <int>-<int>' p1289 sg1102 S'list(%1,%2,%3,%4)' p1290 sbtp1291 sS'@cmd' p1292 ((ipooparse CmdDef p1293 (dp1294 g10 g11 sg1102 S'at_cmd(%1,%2,%3)' p1295 sg1100 S'@cmd <obj>.<str> calls <funcdef>' p1296 sbtp1297 sS'@newfunc' p1298 ((ipooparse CmdDef p1299 (dp1300 g10 g11 sg1102 S'newfunc(caller,%1,%2)' p1301 sg1100 S'@newfunc <obj>.<funcdef>' p1302 sb(ipooparse CmdDef p1303 (dp1304 g10 g11 sg1102 S'newfunc(caller,caller,%1)' p1305 sg1100 S'@newfunc <funcdef>' p1306 sb(ipooparse CmdDef p1307 (dp1308 g10 g11 sg1102 S'newfunc(caller,%2,%1)' p1309 sg1100 S'@newfunc <funcdef> on <obj>' p1310 sbtp1311 ssg1 (dp1312 S'get' p1313 ((ipooparse CmdDef p1314 (dp1315 g10 g11 sg1100 S'get <str> from <this>' p1316 sg1102 S'getContent(%1,caller)' p1317 sb(ipooparse CmdDef p1318 (dp1319 g10 g11 sg1100 S'get <str> out of <this>' p1320 sg1102 S'getContent(%1,caller)' p1321 sb(ipooparse CmdDef p1322 (dp1323 g10 g11 sg1100 S'get <str> in <this>' p1324 sg1102 S'getContent(%1,caller)' p1325 sbtp1326 sS'put' p1327 ((ipooparse CmdDef p1328 (dp1329 g10 g11 sg1100 S'put <obj> into <this>' p1330 sg1102 S'put(%1,caller)' p1331 sb(ipooparse CmdDef p1332 (dp1333 g10 g11 sg1100 S'put <obj> in <this>' p1334 sg1102 S'put(%1,caller)' p1335 sbtp1336 ssg173 (dp1337 S'go' p1338 ((ipooparse CmdDef p1339 (dp1340 g10 g11 sg1100 S'go <this>' p1341 sg1102 S'invoke()' p1342 sbtp1343 sS'<this>' p1344 ((ipooparse CmdDef p1345 (dp1346 g10 g11 sg1100 S'<this>' p1347 sg1102 S'invoke()' p1348 sbtp1349 ssg105 (dp1350 S'@who' p1351 ((ipooparse CmdDef p1352 (dp1353 g10 g11 sg1100 S'@who' p1354 sg1102 S'who()' p1355 sbtp1356 sS'look' p1357 ((ipooparse CmdDef p1358 (dp1359 g10 g11 sg1102 S'look(None)' p1360 sg1100 S'look' p1361 sb(ipooparse CmdDef p1362 (dp1363 g10 g11 sg1102 S'look(%1)' p1364 sg1100 S'look <obj>' p1365 sb(ipooparse CmdDef p1366 (dp1367 g10 g11 sg1102 S'look(%1)' p1368 sg1100 S'look at <obj>' p1369 sbtp1370 sS'who' p1371 ((ipooparse CmdDef p1372 (dp1373 g10 g11 sg1100 S'who' p1374 sg1102 S'who()' p1375 sbtp1376 sS'inv' p1377 ((ipooparse CmdDef p1378 (dp1379 g10 g11 sg1100 S'inv' p1380 sg1102 S'inventory()' p1381 sbtp1382 sS'i' p1383 ((ipooparse CmdDef p1384 (dp1385 g10 g11 sg1100 S'i' p1386 sg1102 S'inventory()' p1387 sbtp1388 sS'inventory' p1389 ((ipooparse CmdDef p1390 (dp1391 g10 g11 sg1100 S'inventory' p1392 sg1102 S'inventory()' p1393 sbtp1394 sS'@password' p1395 ((ipooparse CmdDef p1396 (dp1397 g10 g11 sg1100 S'@password <str>' p1398 sg1102 S'passwd(%1)' p1399 sbtp1400 sS'help' p1401 ((ipooparse CmdDef p1402 (dp1403 g10 g11 sg1100 S'help' p1404 sg1102 S'printHelp()' p1405 sb(ipooparse CmdDef p1406 (dp1407 g10 g11 sg1100 S'help <obj>' p1408 sg1102 S'printHelp(%1)' p1409 sb(ipooparse CmdDef p1410 (dp1411 g10 g11 sg1100 S'help <str>' p1412 sg1102 S'printHelp(%1)' p1413 sbtp1414 ssg107 (dp1415 S'emote' p1416 ((ipooparse CmdDef p1417 (dp1418 g10 g11 sg1100 S'emote <str>' p1419 sg1102 S'emote(%1)' p1420 sbtp1421 sS'@page' p1422 ((ipooparse CmdDef p1423 (dp1424 g10 g11 sg1100 S'@page <str> with <str>' p1425 sg1102 S'page(%1,%2)' p1426 sb(ipooparse CmdDef p1427 (dp1428 g10 g11 sg1100 S'@page <str> = <str>' p1429 sg1102 S'page(%1,%2)' p1430 sb(ipooparse CmdDef p1431 (dp1432 g10 g11 sg1100 S'@page <str>=<str>' p1433 sg1102 S'page(%1,%2)' p1434 sbtp1435 sS'drop' p1436 ((ipooparse CmdDef p1437 (dp1438 g10 g11 sg1100 S'drop <obj>' p1439 sg1102 S'drop(%1)' p1440 sbtp1441 sS'@home' p1442 ((ipooparse CmdDef p1443 (dp1444 g10 g11 sg1102 S'at_home()' p1445 sg1100 S'@home' p1446 sbtp1447 sS'get' p1448 ((ipooparse CmdDef p1449 (dp1450 g10 g11 sg1100 S'get <obj>' p1451 sg1102 S'get(%1)' p1452 sbtp1453 sS'@sethome' p1454 ((ipooparse CmdDef p1455 (dp1456 g10 g11 sg1100 S'@sethome' p1457 sg1102 S'sethome()' p1458 sbtp1459 sS'take' p1460 ((ipooparse CmdDef p1461 (dp1462 g10 g11 sg1100 S'take <obj>' p1463 sg1102 S'get(%1)' p1464 sbtp1465 sS'say' p1466 ((ipooparse CmdDef p1467 (dp1468 g10 g11 sg1102 S'say(%1)' p1469 sg1100 S'say <str>' p1470 sbtp1471 sS'give' p1472 ((ipooparse CmdDef p1473 (dp1474 g10 g11 sg1100 S'give <int> to <obj>' p1475 sg1102 S'give(%1,%2)' p1476 sb(ipooparse CmdDef p1477 (dp1478 g10 g11 sg1100 S'give <obj> <int>' p1479 sg1102 S'give(%2,%1)' p1480 sbtp1481 ssI90200 tp1482 .