/
CDC-1.2b/
CDC-1.2b/src/
parent $frob_class
parent $thing
object $thing_class

var $root dbref 'thing_class
var $root child_index 0
var $root fertile 1
var $root manager $thing_class
var $root owned [$thing_class]
var $root owners [$]
var $root writable []
var $root readable ['parameters, 'methods, 'code]
var $root inited 1
var $located location $nowhere
var $located obvious 1
var $described prose #[]
var $has_verbs verbs #[]
var $gendered gender $gender_neuter
var $named name ['uniq, "thing_class"]
var $named name_aliases []

method name
    arg [args];
    
    if (args && (type(args[1]) == 'dictionary))
        return (> ._name(@args) <);
    return (> pass(@args) <);
.

method namef
    arg [args];
    
    if (args && (type(args[1]) == 'dictionary))
        return (> ._namef(@args) <);
    return (> pass(@args) <);
.

method short_description
    arg [args];
    
    if (args && (type(args[1]) == 'dictionary))
        return (> ._description(@args) <);
    return (> pass(@args) <);
.

method long_description
    arg [args];
    
    if (args && (type(args[1]) == 'dictionary))
        return (> ._description(@args) <);
    return (> pass(@args) <);
.

method prose
    arg [args];
    var dict;
    
    if (args && (type(args[1]) == 'dictionary))
        return (> ._prose(@args) <);
    return (> pass(@args) <);
.

method _namef
    arg dict, [args];
    
    return (> ._name(dict, args) <);
.

method _prose
    arg dict, [args];
    
    (> .perms(sender(), 'this) <);
    return (| dict['prose] |) || "You see nothing special.";
.

method _name
    arg dict, [args];
    var name, article;
    
    (> .perms(sender(), 'this) <);
    article = [@args, 'indef][1];
    name = (| dict['name] |) || [.name(), 'prop, [.name_aliases()]];
    switch (name[2]) {
        case 'none:
            return (> .name(article) <);
        case 'uniq:
            if (article == 'indef)
                return (($string.a_or_an(name[1])) + " ") + (name[1]);
            else
                return "the " + (name[1]);
        default:
            return name[1];
    }
.

method _description
    arg dict, [args];
    
    (> .perms(sender(), 'this) <);
    return [._name(dict), @._prose(dict)];
.