#include "boot.clh"
object THING
parents LOCATED_OBJ, DESCRIBED_OBJ;
name = "Generic Thing";
obj home;
verb "get take" = get;
verb "drop throw" = drop;
method location
return #-1;
endmethod
method init
ignore E_METHODNF;
if (this == THING)
this.add_owner(WIZARD);
else
if (player.home)
home = player.home;
else
home = player;
endif
pass();
this.moveto(player);
endif
endmethod /* init */
method id
return pass() to DESCRIBED_OBJ;
endmethod
method accept
return 0; /* THING's aren't containers */
endmethod
method get
var result;
if (args[1] != "all" && !this.match(args[2]))
return 1;
elseif (location == player)
result = "You already have that!";
elseif (location != player.location)
result = "I don't see that here.";
elseif (this.moveto(player))
result = "Taken.";
player.location.announce(player.name + " takes " + this.name + ".",
{player});
else
result = "You can't get that.";
endif
if (args[1] == "all")
player.tell(name + ": " + result);
else
player.tell(result);
endif
endmethod /* get */
method drop
var result;
if (args[1] != "all" && !this.match(args[2]))
return 1;
elseif (location != player)
result = "You don't have that!";
elseif (this.moveto(player.location))
result = "Dropped.";
player.location.announce(player.name + " drops " + this.name + ".",
{player});
else
result = "You can't drop that.";
endif
if (args[1] == "all")
player.tell(name + ": " + result);
else
player.tell(result);
endif
endmethod /* drop */
endobject /* THING */