// ****************************************************************************
//
// Logic 63: Enter the Shock Room
//
// ****************************************************************************

#include "defines.txt"

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


// Check what room the player came from and position them on the
// screen accordingly here, e.g:
 if (prev_room_no == 57) {
   position(ego,110,85);
 }

 if (prev_room_no == 108) {
    position(ego, 80, 80);
    }

 if (prev_room_no == 64) {
   position(ego,49,87);
   }

 if (!has("slime eater") &&
     !se_in_cave) {
    animate.obj(o1);
    load.view(slime_eater);
    set.view(o1,slime_eater);
    position(o1,80,80);
    wander(o1);
    draw(o1);
    }

  animate.obj(o2);         //door
  load.view(133);
  set.view(o2,133);
  position(o2,45,95);
  ignore.objs(o2);
  set.priority(o2,4);
  set.cel(o2,0);
  stop.cycling(o2);
  draw(o2);

  reset(done_flag);
  reset(more_done_flag);

  draw(ego);
  show.pic();
}


if (said("look")) {
  print("This is the entrance to the feared Shock Room.");
  if (!has("slime eater") &&
      !se_in_cave) {
          print("Oh look, it's a little slime eater.");
          }

}

if (said("look","purple slime")) {
    if (done_flag) {
        print("There's a big glob of purple slime on the floor.");
        }
    else {
        if (has("purple slime")) {
            show.obj(purple_slime);
            }
        else {
            print("You don't have any.");
            }
        }
     }

if (said("get","purple slime")) {
    if (has("purple slime")) {
        print("Don't worry, you have plenty more where that came from.");
        }
    else {
        print("You can't get that here.");
        }
    }


if ((said("use","purple slime") ||
     said("drop","purple slime") ||
     said("put","purple slime","floor") ||
     said("give","purple slime","slime eater") ||
     said("give","slime eater","purple slime")) &&
     !done_flag) {
     if (!has("slime eater") &&
         !se_in_cave) {
        if (has("purple slime")) {

            animate.obj(o3);
            load.view(purple_slime);
            set.view(o3,purple_slime);
            position.v(o3,new_ego_x,new_ego_y);
            ignore.objs(o3);
            set.priority(o3,4);
            draw(o3);

            set(done_flag);
            }
        else {
            print("Uh, no, see, you have no slime to give away");
            }
          }
    else {
         print("Now, child, you already got that little purple cootie.  There's no need to make a mess.");
         }
        }

if (done_flag) {
      get.posn(o3,temp_x,temp_y);
      move.obj.v(o1,temp_x,temp_y,2,more_done_flag);
      reset(done_flag);
      }

if (more_done_flag) {
    distance(ego, o1, range);

    if ((said("get","slime eater") ||
         said("get","creature") ||
         said("get","thing"))) {
        if (range <=10) {
            get("slime eater");
            get("purple slime");
            print("You pick up the little cootie and the remnants of your purple slime.");
            print("Just to be sure, you put them in separate pockets.");
            erase(o1);
            erase(o3);
            reset(more_done_flag);
            }
        else {
            print("If you really want it, you're actually going to have to touch it.");
            }
        }

    if ((said("look","slime eater") ||
         said("look","creature") ||
         said("look","thing"))) {
        print("The little cootie is dining on the viscous purple stuff.");
        }
    }

if ((said("get","slime eater") ||
     said("get","creature") ||
     said("get","thing"))) {
    print("No, it's moving too fast...  you'll have to get it to stay in one place.");
    }

if ((said("look","slime eater") ||
     said("look","creature") ||
     said("look","thing"))) {
    if (!has("slime eater") &&
        !se_in_cave) {
    print("Slime eaters live on a diet of purple slime.  The poor, little guy sure looks hungry.");
        }
    else {
        show.obj(slime_eater);
        }
    }


if (ego_touching_signal_line) {
    new.room(57);
    }

if ((said("open","door") ||
     said("use","door"))) {
    if (obj.in.box(ego,44,70,64,104)) {
        erase(ego);
        universe = 2;
        cycle.time(o2,universe);
        end.of.loop(o2, penultimate_done_flag);
    }
    else {
        print("The door is over THERE...");
        }
   }

if (penultimate_done_flag) {
    reset(penultimate_done_flag);
    new.room(64);
    }

return();