// ****************************************************************************
//
// Logic 28:  Fishing Game
//
// ****************************************************************************

#include "defines.txt"

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

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

  if (prev_room_no == 27) {
      mode = baited;
      position(ego,80,40);
      //new.room(28);
      ego_dir = 5;
      }

  load.view(102);
  set.view(ego,102);
  set(never_animate_ego);
  fix.loop(ego);

  prevent.input();
  draw(ego);

  if ((!has("blowfish") ||
       !has("blowfish venom"))) {
  animate.obj(o1);  //Blowfish
  load.view(blow_fish);
  set.view(o1,blow_fish);
  ignore.objs(o1);
  position(o1,12,140);
  draw(o1);
  }

  animate.obj(o2); //Some predatory fish
    load.view(20);
    set.view(o2,20);
    wander(o2);
    universe=2;
    step.size(o2,universe);
    ignore.objs(o2);

    animate.obj(o3);
    set.view(o3,20);
    wander(o3);
    universe=2;
    step.size(o3,universe);
    ignore.objs(o3);

    animate.obj(o4);
    set.view(o4,20);
    wander(o4);
    universe=2;
    step.size(o4,universe);
    ignore.objs(o4);

    animate.obj(o6);
    set.view(o6,20);
    wander(o6);
    universe=2;
    step.size(o6,universe);
    ignore.objs(o6);

    animate.obj(o5); //bone shark
    load.view(21);
    set.view(o5,21);
    wander(o5);
    universe=2;
    step.size(o5,universe);
    ignore.objs(o5);


   position(o2,80,80);
   position(o3,120,80);
   position(o4,40,80);
   position(o5,40,120);
   position(o6,120,120);


  draw(o2);
  draw(o3);
  draw(o4);
  draw(o5);
  draw(o6);

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

  ignore.blocks(ego);

  show.pic();
}

distance(ego,o1,range); //distance from the blowfish
distance(ego,o2,temp_x2); //distance from predatory fish
distance(ego,o3,temp_x3); //distance from predatory fish
distance(ego,o4,temp_y2); //distance from predatory fish
distance(ego,o5,temp_y3); //distance from bone shark
distance(ego,o6,block_x); //distance from predatory fish

get.posn(o1,temp_x,temp_y); //position of blowfish

if (said("look")) {
  print("Through the clear, blue water you see many fish and aquatic plant-life.");
}

if (mode == baited) {

   if (range <= 10) { //blowfish bites
       mode=blowfish;
       erase(o1);
   }

   if ((temp_x2 <= 10 ||
        temp_x3 <= 10 ||
        temp_y2 <= 10 ||
        block_x <= 10)) { //predatory fish bites
       mode=empty;
       }
 }


if (mode == blowfish) {
   universe=1;
   step.size(ego,universe);
   random(0,6,universe);
    if (universe==0) {
    follow.ego(o5,1,done_flag);
    }
    if (universe>=1) {
    wander(o5);
    }

    if (temp_y3 <=10) {
        mode=empty;
        }
    }

if (temp_x<=12) {     //blowfish swimming pattern
    universe=3;
    set.dir(o1,universe);
    }
if (temp_x>=138) {
    universe=7;
    set.dir(o1,universe);
    }

if (done_flag) {
    wander(o5);
    }

if (ego_edge_code==horizon_edge) {  // Hook surfaces

  if (mode==blowfish) {
      get("blowfish");
      score++;
      }

  observe.blocks(ego);

  load.view(0);
  set.view(ego,0);
  start.cycling(ego);
  release.loop(ego);
  reset(never_animate_ego);
  new.room(27);
}

  set.loop.v(ego,mode);

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

return();