Control objects don't use the normal verbs of their class, because they need to provide functionality base on the class they are controlling.
However, we don't want every verb available on the base object to be available on the control object (you can't go through a control object for an exit, for example) and more importantly, the verbs availble on the control object must not be available on the controlled object (we don't want to let just anybody link an exit, for example).
So, here's how you extend the control functionality of control objects made for a class you've created. It's actually fairly simple.
First, create the verbs as normal, but instead of using
addVerb
, use addControlVerb
.
Second, and this is very important, make sure that the verb methods for control verbs are not public.
Thirdly, instead of using self
when referring to the object
being controlled, use @controlled
.