~divmod-dev/divmod.org/no-addperson-2190

« back to all changes in this revision

Viewing changes to Imaginary/imagination/social.py

  • Committer: exarkun
  • Date: 2006-02-26 02:37:39 UTC
  • Revision ID: svn-v4:866e43f7-fbfc-0310-8f2a-ec88d1da2979:trunk:4991
Merge move-pottery-to-trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from zope.interface import implements
 
2
from imagination.simulacrum import IHearer
 
3
from imagination.event import broadcastEvent
 
4
from imagination.actions import NoTargetAction
 
5
from imagination.text import english
 
6
from imagination.facets import Facet
 
7
 
 
8
class Say(NoTargetAction):
 
9
    def __init__(self, actor, speech):
 
10
        NoTargetAction.__init__(self, actor)
 
11
        self.speech = speech
 
12
 
 
13
    def doAction(self):
 
14
        broadcastEvent(self.actor,
 
15
                       ('You say, "', self.speech, '"'),
 
16
                       (self.actor, ' says, "', self.speech, '"'),
 
17
                       iface=IHearer)
 
18
 
 
19
class SocialParser(english.Subparser):
 
20
 
 
21
    def parse_say(self, player, text):
 
22
        return [Say(player, text)]
 
23
 
 
24
english.registerSubparser(SocialParser())
 
25
 
 
26
class Speaker(Facet):
 
27
    implements(ISayActor)