#include "boot.clh"
object CONTAINER
parents THING;
name = "Generic Container";
verb "put place insert" : "in into" = put_in;
verb "get remove take" : "from in" = remove_from;
verb "l*ook" : "in into inside" = look_in;
method init
if (this == CONTAINER)
this.add_owner(WIZARD);
endif
pass();
endmethod /* init */
method accept
return pass(args[1]) to LOCATED_OBJ;
endmethod
method put_in
var what;
if (!this.match(args[4]))
return 1;
endif
what = player.match_contents(args[2]);
if (!what)
player.tell("You don't have that.");
elseif (what.moveto(this)) /* SSPOT */
player.tell("You put " + what.name + " into " + this.name + ".");
else
player.tell("You can't put " + what.name + " into " + this.name
+ ".");
endif
endmethod /* put_in */
method remove_from /* verb */
var what;
if (!this.match(args[4]))
return 1;
endif
what = this.match_contents(args[2]); /* SSPOT */
if (!what)
player.tell("That object is not inside " + this.name + ".");
elseif (what.moveto(player))
player.tell("You remove " + what.name + " from " + this.name + ".");
else
player.tell("You can't remove that.");
endif
endmethod /* remove_from verb */
method look /* verb */
var thing;
pass() to DESCRIBED_OBJ;
if (this.contents)
player.tell("Containing:");
for thing in (this.contents)
player.tell(" " + thing.name);
endfor
endif
endmethod /* look */
method look_in
var thing;
if (!this.match(args[4]))
return 1;
endif
if (contents)
player.tell("Inside " + name + " you see:");
for thing in (contents)
player.tell(" " + thing.name);
endfor
else
player.tell("You see nothing inside " + name + ".");
endif
endmethod /* look_in */
endobject /* CONTAINER */