Changeset 243

Show
Ignore:
Timestamp:
10/31/05 07:33:59 (3 years ago)
Author:
ged
Message:

- Made personas a loadable module
- Added a trait snapshot to FaerieMUD::ComposedObject? to facilitate use of

multiple traits for a single task.

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/experiments/personas.rb

    r240 r243  
    44# FaerieMUD personas. 
    55#  
    6 # Time-stamp: <10-Jul-2005 17:21:23 ged> 
     6# Time-stamp: <31-Oct-2005 10:14:10 ged> 
    77# 
    88 
     
    2121    Characters = {} 
    2222 
     23    gerd = FaerieMUD::Character::new 
     24 
     25    gerd.name = "Gerd" 
     26    gerd.body.statistic.element = 46 
     27    gerd.soul.statistic.element = 33 
     28    gerd.mind.statistic.element = 89 
     29     
     30    Characters[ :gerd ] = gerd 
     31 
     32 
     33    meriwym = FaerieMUD::Character::new 
     34 
     35    meriwym.name = "Meriwym" 
     36    meriwym.body.statistic.element = 13 
     37    meriwym.mind.statistic.element = 73 
     38    meriwym.soul.statistic.element = 98 
     39 
     40    Characters[ :meriwym ] = meriwym 
     41 
     42 
     43    ############### 
     44    module_function 
     45    ############### 
     46 
     47    ### Given a FaerieMUD::Character object +char+, returns a String which 
     48    ### succinctly describes her in a human-readable way. 
    2349    def prettyPrintCharacter( char ) 
    2450        lines = [] 
     
    4975            [ char.stamina, char.willpower, char.magistry ] 
    5076 
    51         puts lines.join("\n") 
    52     end 
    53  
    54  
    55     begin 
    56         gerd = FaerieMUD::Character::new 
    57  
    58         gerd.name = "Gerd" 
    59         gerd.body.statistic.element = 46 
    60         gerd.soul.statistic.element = 33 
    61         gerd.mind.statistic.element = 89 
    62  
    63         Characters[ :gerd ] = gerd 
     77        puts lines.join("\n") + "\n\n" 
    6478    end 
    6579 
     
    6781end # FaerieMUD::Personas 
    6882 
    69 require 'pp' 
    7083 
    71 include FaerieMUD::Personas 
    72 Characters.values.each do |char| 
    73     prettyPrintCharacter( char ) 
     84if $0 == __FILE__ 
     85    require 'pp' 
     86 
     87    include FaerieMUD::Personas 
     88    Characters.values.each do |char| 
     89        prettyPrintCharacter( char ) 
     90    end 
    7491end 
    7592 
     93 
  • trunk/lib/fm/composedobject.rb

    r235 r243  
    490490 
    491491 
     492    ### Return a snapshot of the current values of the ComposedObject's traits, 
     493    ### keyed by name. 
     494    def traits 
     495        rval = {} 
     496 
     497        self.class.traitMap.keys.each do |trait| 
     498            rval[ trait ] = self.send( trait ) 
     499        end 
     500 
     501        return rval 
     502    end 
     503 
     504 
    492505end # class FaerieMUD::ComposedObject 
    493506 
  • trunk/lib/fm/developmentalobject.rb

    r235 r243  
    4444 
    4545    EdgeCases = FaerieMUD::PeriodicObject::Element::Table[1..-1]. 
    46         collect {|row| 
    47             row.last 
    48         } 
     46        collect {|row| row.last } 
    4947 
    5048