external next up previous contents index
Next: Help on Feature Object Up: Issues in MOO Programming Previous: Issues in MOO Programming



Stolen from MOOtiny (thanx Jeni), but don't believe it works at TECFAMOO, yes this section is also under construction ....

Features are objects that provide you with commands not covered by the
ordinary player objects.  The advantage of using features is that you 
can mix and match the things you like; whereas if you like a command 
that's defined on a player class, you have to also get all the commands
it defines, and all the commands its ancestors define.

@features         -- lists your features
@add-feature      -- adds a feature to your list
@remove-feature   -- removes a feature from your list
@prefer           -- allows you to use one verb in preference to others

Features are often the first thing a programmer programs, because they're
fun and easy to do.  However, they are not seen as valuable assets
to the moo community for the most part.  The top-level generic feature
is $feature.

Verbs on features cannot adjust properties on the player, but they are
useful for scanning, surveying, and producing tons of spam.  They have
to be +x (use @chmod to do this), because they are called by other

Note to programmers: In order to be available for general use as a 
feature, an object must have a verb or property named "feature_ok" 
which returns a true value.  When 'help <fo>' is used, the .help_msg
and the verb documentation of all verbs in the .feature_verbs property
on the fo are given.

When a feature is added to a player's features list, feature:feature_add 
is called, if it exists, with the player in question as its argument.
Likewise, when a feature is removed, feature:feature_remove is called.

Commands (don't work at \tecfamoo I think):
@feature_ok        -- sets the .feature_ok property on the fo to true.
@set_feature_verbs -- sets up a list of feature verbs.

Daniel K. Schneider
Thu Apr 17 12:43:52 MET DST 1997