Changeset 250

Show
Ignore:
Timestamp:
12/30/05 09:12:14 (3 years ago)
Author:
ged
Message:

- Committing what I have in case I get hit by a bus. (No really this time.)

Location:
trunk
Files:
12 added
2 removed
20 modified

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        11test.log 
         2.glimpse* 
  • trunk/acceptance/epic4.rb

    r202 r250  
    11#!/usr/bin/env ruby 
    22# 
    3 #   FaerieMUD - The Hidden Path - Epic 4: Events 
     3#   FaerieMUD - The Hidden Path - Epic 4: Action 
    44# 
    55# == Authors 
     
    3232require "#$basedir/utils" 
    3333require "fm" 
    34 require "linguistics" 
    35  
    36 include UtilityFunctions 
    37 Linguistics::use( :en ) 
     34require 'fm/mixins' 
     35require 'fm/linguistics' 
     36 
    3837 
    3938### Clocks can 'tick' 
    4039class TickVerb < FaerieMUD::Verb 
    41     def happen( instigator, origin=nil ) 
     40    def invoke( instigator, origin=nil ) 
    4241        origin ||= instigator 
    4342        return FaerieMUD::AuditoryEvent::new( 
    4443            :instigator => instigator, 
    4544            :origin => origin, 
    46             :verb => self 
     45            :verb => self, 
     46            :noticability => 0.05 
    4747            ) 
    4848    end 
     
    5151### ...and also 'chime' 
    5252class ChimeVerb < FaerieMUD::Verb 
    53     def happen( instigator, origin=nil ) 
     53    def invoke( instigator, origin=nil ) 
    5454        origin ||= instigator 
    5555        return FaerieMUD::AuditoryEvent::new( 
    5656            :instigator => instigator, 
    5757            :origin => origin, 
    58             :verb => self 
     58            :verb => self, 
     59            :noticability => 0.25 
    5960            ) 
    6061    end 
     
    102103        @tickCount += 1 
    103104        self.log.debug "Tick %d" % [@tickCount] 
    104         events = @verbs[:tick].happen( self ) 
     105        events = @verbs[:tick].invoke( self ) 
    105106        self.disperseEvents( events ) 
    106107        self.chime if (@tickCount % 10).zero? 
     
    111112    def chime 
    112113        self.log.debug "Chime!" 
    113         events = @verbs[:chime].happen( self ) 
     114        events = @verbs[:chime].invoke( self ) 
    114115        self.disperseEvents( events ) 
    115116    end 
     
    123124    # the overridden method. Ventriloquism doesn't count. =:P 
    124125 
    125     def happen( speaker, language, words ) 
     126    def invoke( speaker, language, words ) 
    126127        return FaerieMUD::SpeechEvent::new( 
    127128            :instigator => speaker, 
     
    129130            :verb => self, 
    130131            :language => language, 
    131             :words => words 
     132            :words => words, 
     133            :noticability => 0.65 
    132134            ) 
    133135    end 
     
    179181        end 
    180182         
    181         return @sayVerb.happen( self, :trade, msg ) 
     183        return @sayVerb.invoke( self, :trade, msg ) 
    182184    end 
    183185end 
     
    187189### environment to $defout. 
    188190class Observer < FaerieMUD::Locus 
     191 
     192    include FaerieMUD::Linguistics 
    189193 
    190194    ### Handle events that are sensed through auditory perception 
     
    206210    ### Create a sentence to describe an event. 
    207211    def describeEvent( ev ) 
    208         sentence = [] 
    209  
    210         # Subject 
    211         sentence << objectToNounPhrase( ev.instigator ) 
    212  
    213         # Verb 
    214         sentence << conjugateVerb( ev.verb ) 
    215  
    216         # Direct object if any 
    217         if ev.target 
    218             sentence << objectToNounPhrase( ev.target ) 
    219         end 
    220  
    221         if ev.origin != ev.instigator 
    222             sentence << "in %s" % objectToNounPhrase( ev.origin ) 
    223         end 
    224  
    225         return sentence.join( " " ) 
    226     end 
    227  
    228     ### Create a noun phrase from the given +obj+. 
    229     def objectToNounPhrase( obj ) 
    230         simplename = obj.class.name.sub( /.*::/, '' ).downcase 
    231         simplename.en.a 
    232     end 
    233  
    234  
    235     ### This is a really simplistic version of what should really happen.  
    236     ### Ideally, verbs will be able to respond with the appropriate word form of 
    237     ### themselves. However, the NLG engine should be able to pervert the canonical 
    238     ### form to achieve tainted or ecstatic views, etc. 
    239  
    240     ### Conjugate the given +verb+ (a FaerieMUD::Verb object) and return it. 
    241     def conjugateVerb( verb ) 
    242         if /(\w+)Verb/.match( verb.class.name ) 
    243             $1.downcase 
    244         else 
    245             verb.class.name.downcase 
    246         end 
    247     end 
    248  
     212        $deferr.puts ev.inspect 
     213 
     214        prep_phrase = "in %s" % objectToNounPhrase( ev.origin ) if ev.origin != ev.instigator 
     215        sentence = Sentence.new( ev.instigator, ev.verb, ev.target, prep_phrase ) 
     216 
     217        return sentence.to_s 
     218    end 
    249219 
    250220end 
  • trunk/docs

    • Property svn:ignore set to
      html
  • trunk/docs/FaerieMUD Design Diagrams.graffle

    r245 r250  
    9696                        <integer>2</integer> 
    9797                        <key>Text</key> 
    98                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     98                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    9999{\fonttbl\f0\fnil\fcharset77 LucidaGrande-Bold;} 
    100100{\colortbl;\red255\green255\blue255;} 
     
    251251    </array> 
    252252    <key>ModificationDate</key> 
    253     <string>2005-10-22 21:09:48 -0400</string> 
     253    <string>2005-12-14 16:12:53 -0800</string> 
    254254    <key>Modifier</key> 
    255255    <string>Michael Granger</string> 
     
    353353                    <dict> 
    354354                        <key>Text</key> 
    355                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     355                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    356356{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExt;} 
    357357{\colortbl;\red255\green255\blue255;} 
     
    496496                            <dict> 
    497497                                <key>Text</key> 
    498                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     498                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    499499{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    500500{\colortbl;\red255\green255\blue255;} 
     
    648648                            <dict> 
    649649                                <key>Text</key> 
    650                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     650                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    651651{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    652652{\colortbl;\red255\green255\blue255;} 
     
    712712                            <dict> 
    713713                                <key>Text</key> 
    714                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     714                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    715715{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    716716{\colortbl;\red255\green255\blue255;} 
     
    776776                            <dict> 
    777777                                <key>Text</key> 
    778                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     778                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    779779{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    780780{\colortbl;\red255\green255\blue255;} 
     
    924924                            <dict> 
    925925                                <key>Text</key> 
    926                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     926                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    927927{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    928928{\colortbl;\red255\green255\blue255;} 
     
    988988                            <dict> 
    989989                                <key>Text</key> 
    990                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     990                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    991991{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    992992{\colortbl;\red255\green255\blue255;} 
     
    16691669                            <dict> 
    16701670                                <key>Text</key> 
    1671                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     1671                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    16721672{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    16731673{\colortbl;\red255\green255\blue255;} 
     
    17331733                            <dict> 
    17341734                                <key>Text</key> 
    1735                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     1735                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    17361736{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    17371737{\colortbl;\red255\green255\blue255;} 
     
    17971797                            <dict> 
    17981798                                <key>Text</key> 
    1799                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     1799                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    18001800{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    18011801{\colortbl;\red255\green255\blue255;} 
     
    18611861                            <dict> 
    18621862                                <key>Text</key> 
    1863                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     1863                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    18641864{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    18651865{\colortbl;\red255\green255\blue255;} 
     
    19251925                            <dict> 
    19261926                                <key>Text</key> 
    1927                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     1927                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    19281928{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    19291929{\colortbl;\red255\green255\blue255;} 
     
    19891989                            <dict> 
    19901990                                <key>Text</key> 
    1991                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     1991                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    19921992{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    19931993{\colortbl;\red255\green255\blue255;} 
     
    20532053                            <dict> 
    20542054                                <key>Text</key> 
    2055                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2055                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    20562056{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    20572057{\colortbl;\red255\green255\blue255;} 
     
    21172117                            <dict> 
    21182118                                <key>Text</key> 
    2119                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2119                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    21202120{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    21212121{\colortbl;\red255\green255\blue255;} 
     
    21812181                            <dict> 
    21822182                                <key>Text</key> 
    2183                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2183                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    21842184{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    21852185{\colortbl;\red255\green255\blue255;} 
     
    22452245                            <dict> 
    22462246                                <key>Text</key> 
    2247                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2247                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    22482248{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    22492249{\colortbl;\red255\green255\blue255;} 
     
    23092309                            <dict> 
    23102310                                <key>Text</key> 
    2311                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2311                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    23122312{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    23132313{\colortbl;\red255\green255\blue255;} 
     
    23732373                            <dict> 
    23742374                                <key>Text</key> 
    2375                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2375                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    23762376{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    23772377{\colortbl;\red255\green255\blue255;} 
     
    24372437                            <dict> 
    24382438                                <key>Text</key> 
    2439                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2439                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    24402440{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    24412441{\colortbl;\red255\green255\blue255;} 
     
    25012501                            <dict> 
    25022502                                <key>Text</key> 
    2503                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2503                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    25042504{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCond;} 
    25052505{\colortbl;\red255\green255\blue255;} 
     
    25722572                            <dict> 
    25732573                                <key>Text</key> 
    2574                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2574                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    25752575{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    25762576{\colortbl;\red255\green255\blue255;} 
     
    26782678                            <dict> 
    26792679                                <key>Text</key> 
    2680                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2680                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    26812681{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    26822682{\colortbl;\red255\green255\blue255;} 
     
    27392739                            <dict> 
    27402740                                <key>Text</key> 
    2741                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2741                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    27422742{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldCondObl;} 
    27432743{\colortbl;\red255\green255\blue255;} 
     
    29132913                    <dict> 
    29142914                        <key>Text</key> 
    2915                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2915                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    29162916{\fonttbl\f0\fnil\fcharset77 LucidaGrande;} 
    29172917{\colortbl;\red255\green255\blue255;} 
     
    29762976                    <dict> 
    29772977                        <key>Text</key> 
    2978                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     2978                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    29792979{\fonttbl\f0\fnil\fcharset77 LucidaGrande;} 
    29802980{\colortbl;\red255\green255\blue255;} 
     
    30383038                    <dict> 
    30393039                        <key>Text</key> 
    3040                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3040                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    30413041{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    30423042{\colortbl;\red255\green255\blue255;} 
     
    32263226                            <dict> 
    32273227                                <key>Text</key> 
    3228                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3228                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    32293229{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    32303230{\colortbl;\red255\green255\blue255;} 
     
    32713271                                <integer>0</integer> 
    32723272                                <key>Text</key> 
    3273                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3273                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    32743274{\fonttbl\f0\fnil\fcharset77 TektonPro-Regular;} 
    32753275{\colortbl;\red255\green255\blue255;} 
     
    33193319                                <integer>0</integer> 
    33203320                                <key>Text</key> 
    3321                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3321                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    33223322{\fonttbl\f0\fnil\fcharset77 TektonPro-Regular;} 
    33233323{\colortbl;\red255\green255\blue255;} 
     
    34923492                    <dict> 
    34933493                        <key>Text</key> 
    3494                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3494                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    34953495{\fonttbl\f0\fnil\fcharset77 LucidaGrande;} 
    34963496{\colortbl;\red255\green255\blue255;} 
     
    35503550                    <dict> 
    35513551                        <key>Text</key> 
    3552                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3552                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    35533553{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    35543554{\colortbl;\red255\green255\blue255;} 
     
    37313731                    <dict> 
    37323732                        <key>Text</key> 
    3733                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3733                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    37343734{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    37353735{\colortbl;\red255\green255\blue255;} 
     
    37583758                    <dict> 
    37593759                        <key>Text</key> 
    3760                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3760                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    37613761{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    37623762{\colortbl;\red255\green255\blue255;} 
     
    37853785                    <dict> 
    37863786                        <key>Text</key> 
    3787                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3787                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    37883788{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    37893789{\colortbl;\red255\green255\blue255;} 
     
    38123812                    <dict> 
    38133813                        <key>Text</key> 
    3814                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3814                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    38153815{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExtObl;} 
    38163816{\colortbl;\red255\green255\blue255;} 
     
    38583858                            <dict> 
    38593859                                <key>Text</key> 
    3860                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3860                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    38613861{\fonttbl\f0\fnil\fcharset77 TektonPro-Bold;} 
    38623862{\colortbl;\red255\green255\blue255;} 
     
    39033903                                <integer>0</integer> 
    39043904                                <key>Text</key> 
    3905                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3905                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    39063906{\fonttbl\f0\fnil\fcharset77 TektonPro-Regular;} 
    39073907{\colortbl;\red255\green255\blue255;} 
     
    39483948                                <integer>0</integer> 
    39493949                                <key>Text</key> 
    3950                                 <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     3950                                <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    39513951{\fonttbl\f0\fnil\fcharset77 TektonPro-Regular;} 
    39523952{\colortbl;\red255\green255\blue255;} 
     
    41144114                    <dict> 
    41154115                        <key>Text</key> 
    4116                         <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110 
     4116                        <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf230 
    41174117{\fonttbl\f0\fnil\fcharset77 TektonPro-BoldExt;} 
    41184118{\colortbl;\red255\green255\blue255;} 
     
    41974197                    <dict> 
    41984198                        <key>Text</key> 
    4199