Johnathon's room (#1365)

(an instance of Generic Post-Apocalypse Room made by Johnathon)

     This room looks as if it has been taken over recently. Peeling and
     faded floral wallpaper is mostly covered by hanging folds of black cloth,
     on which a half finished fire mural is being painted. Cans of paint
     lie on the floor next to the mural. A camp bed has been set in the
     corner of the room, and a pile of ( black ) clothes is dumped at the
     foot of it. A trestle table holds a primus and a cardboard box of
     tins etc.
     A door leads onto the street, but it is barracaded shut. Stairs lead down.

You notice some details:
      Lots of tin cans of various types.
      Several cans of paint, mostly red and yellow, currently being used to paint a mural on the black cloth.
      Several meters of black cloth hanging from nails in the floor and ceiling. There is a mural being painted on it.
      A pile of black jeans and T-shirts. Several socks are nestin here as well. Prominent is a black canvas jacket with lots of pockets.
      A camp bed with an new sleeping bag on it. The sleeping bag has a shop security tag on it, and look to have been slept in recently.
      A new primus stove. There is a bottle of fluid for it and some matches.
      The stove is a primus.
      A large and rugged cardboard box full of food. Keep off !

You see Johnathon here.

EXITS:
      [ down ] Johnathon's basement.



VERB SOURCE CODE:

l*ook:
if ((length(args) > 0) && $string_utils:match_stringlist(args[1], {"mural", "cloth"}))
    player:tell(this:mural_msg());
    figures = "";
    found_one = 0;
    for item in (connected_players())
        if ((item != player) && (item.location != this))
            figures = (item.name + " ") + figures;
            found_one = 1;
        endif
    endfor
    if (found_one)
        player:tell(this:figures_msg());
        player:tell(figures);
    endif
else
    if (length(args) > 0)
        for item in (connected_players())
            if ((args[1] == item.name) && (item.location != player.location))
                dobj = item;
                player:tell($string_utils:pronoun_sub(this.torments[random(length(this.torments))]));
                return;
            endif
        endfor
    endif
    pass(@args);
endif
.


mural_msg figures_msg:
return $string_utils:pronoun_sub(this.(verb));
.


touch:
if (length(args) < 1)
    player:tell("Touch which figure ?");
else
    for item in (connected_players())
        if (((item != player) && (item.name == args[1])) && (item.location != player.location))
            old_loc = player.location;
            player:tell("You feel dizzy, then very hot. You feel a falling sensation.");
            player:tell("You fall though a vortex of flame....");
            player.location:announce(player.name, " rashly touches the mural, and 
is drawn in...");
            player:moveto(item.location);
            if (player.location == old_loc)
                player:tell("...back to where you were.");
            else
                player.location:announce(player.name, " suddenly falls from the sky 
in a ball of flame. Fortunately, the flame dissipates quickly.");
            endif
            return;
        endif
    endfor
    player:tell("You touch the tapestry, but nothing special happens.");
endif
.



PROPERTY DATA:
      mural_msg
      figures_msg
      torments