// ****************************************************************************
//
// Logic 18: Hidden Waterfall Cave
//
// ****************************************************************************

#include "defines.txt"

if (new_room) {
  load.pic(room_no);
  draw.pic(room_no);
  discard.pic(room_no);
  set.horizon(37);

  animate.obj(o1);          //Purple slime
  load.view(purple_slime);
  set.view(o1,purple_slime);
  position(o1,59,103);
  ignore.objs(o1);
  set.priority(o1,4);
  if (!has("purple slime")){
      draw(o1);
      }

  if (se_in_cave) {              //Slime Eater
      animate.obj(o2);
      load.view(slime_eater);
      set.view(o2, slime_eater);
      position(o2, 59, 103);
      draw(o2);
      }

  load.sound(66);
  sound(66, sound_flag);


  reset(done_flag);
  position(ego,62,152);
  draw(ego);
  show.pic();


}

distance(ego, o2, range);

if (said("look")) {
  print("This is a strange hidden cave.");
  print("Time and the spray from the falling water have gnawed this cave into the wall of the cliff.");
  if (!has("purple slime")) {
       print("There's some kind of strange slime on the ground!");
       }
  else {
       print("There's some sticky purple slime growing up out of the rock.  If you could get rid of that, this would be a great place to hang out and read.");
      }
  if (se_in_cave) {
      print("Oh, that's one happy, little slime eater.");
      }
  }


if (said("look","slime")) {
    if (has("purple slime")) {
       show.obj(purple_slime);
       }
    else {
       print("You see some evil-looking purple slime.");
       }
    }

if (said("look","slime eater")) {
    if (has("slime eater")) {
        show.obj(slime_eater);
        }
    else {
        if (se_in_cave) {
            print("The slime eater is feeding on the constant diet of purple slime.");
            }
        else {
            print("You see no slime eaters.");
            }
        }
    }

if (said("get","slime")) {
    distance(ego,o1,range);
    if (range<30){
        if (!has("purple slime")) {
           get("purple slime");
           print("You put the purple slime in your pocket.");
           print("Ewww!");
           erase(o1);
           score++;
           }
        else {
           print("There's not enough here.  Maybe it will grow back, later.");
           }
        }
    else {
        print("Your arms are too short.");
        }
    }

if ((said("drop","slime eater") ||
     said("throw","slime eater")) &&
     !se_in_cave) {
         drop("slime eater");
         print("You let the slime eater loose on a buffet of purple slime.  The little creatures wiggles its antennae in appreciation.");
         score+=3;
         set(se_in_cave);
         new.room(18);
         }


if (range < 10 &&
    !done_flag) {
        print("Ew...  I wonder if there's a way to clean up all this slime?");
        set(done_flag);
        }

if (ego_edge_code == bottom_edge) {   // ego touching bottom edge of screen
  new.room(17);
}

if (sound_flag) {
    sound(66, sound_flag);
    }

return();