#include "common.clh"
#include "boot.clh"

object EASTERN_ROOM
    parents ROOM;

    name = "Eastern Room";
    desc = "You hear the chime of the sitar and realize you are in the most excellent Eastern Room.";
    exits = { EXIT_WEST };

    method init
	this.add_owner(WIZARD);
    endmethod
endobject

object EXIT_WEST
    parents EXIT;

    method init
	name = "w;west";
	leave = "You saunter west.";
	oleave = "%n saunters west.";
	oarrive = "%n comes in from the east.";
	source = EASTERN_ROOM;
	dest = WESTERN_ROOM;
	this.add_owner(WIZARD);
    endmethod
endobject

object HAMMOCK
    parents	ROOM, CONTAINER;

    str		outside_desc;		/* what people see from outside */

    verb "enter go hammock" = enter_verb;
    verb "out back exit leave" = exit_verb;

    method init
	name = "In The Hammock";
	desc = "You're nestled snugly a big, warm hammock.  There is comfy material surrounding you on all sides, through which you still make out what's going on outside.";
	outside_desc = "It's all warm and cozy-looking.";
	pass() to THING;
	this.add_owner(WIZARD);
	this.moveto(EASTERN_ROOM);
    endmethod

    method enter_verb
	if (args[1] != "hammock" && !this.match(args[2]))
	    return 1;
	elseif (player.location != location)
	    return 1;
	elseif (!player.moveto(this, "You enter the hammock.",
		"%n clambers into the hammock.", "", "%n enters the hammock."))
	    player.tell("You can't enter the hammock.");
	endif
    endmethod

    method exit_verb
	if (player.location != this)
	    return 1;
	elseif (!player.moveto(location, "You leave the comfy hammock.",
	    "%n clambers out of the hammock.", "",
	    "%n clambers out of the hammock, blinking in the bright light."));
	    player.tell("You can't leave!");
	endif
    endmethod

    method sdesc
	return "You see a warm, comfy hammock here.";
    endmethod

    method match
	return pass(args[1]) to THING;
    endmethod

    method look
	if (player.location == this)
	    pass() to ROOM;
	elseif (outside_desc)
	    player.tell(outside_desc);
	else
	    player.tell("You see nothing special.");
	endif
    endmethod

    method tell
	  /* echo all room msgs to hammock's contents */
	this.announce("Outside:  " + args[1]);
    endmethod
endobject