-+-+-+-+-+-+-+-+ START OF PART 84 -+-+-+-+-+-+-+-+
X            msg_print('He says, "I''ll see you back in town..."')
X          else
X            msg_print('Better watch your back...');
X          msg_print('You feel somewhat damaged.');
X          begin
X            take_hit(damroll('1d10'),'Dirty Harry');
X            prt_chp
X          end;
X        end;
X     8: begin
X          msg_print('You are hit on the noggin by a falling chunk of stone.'
V);
X`09  if (randint(2) = 1) then
X`09    begin
X              i1 := randint(max_skills);
X              skill_list`5Bi1`5D.learned   := false;
X              msg_print('Your head hurts.  You feel like you may have forgot
Vten something.');
X              msg_print('A voice says "Psst, hey you... Check your books."')
V;
X`09    end
X`09  else
X`09    take_hit(damroll('1d15'),'a falling rock');
X        end;
X     9: begin
X          msg_print('You feel your soul plummet to the depths of hell.');
X          py.misc.max_lev := py.misc.max_lev + randint(py.misc.lev);
X`09  if (py.misc.max_lev > townlist`5Btown_num`5D.max_depth) then
X`09    py.misc.max_lev := townlist`5Btown_num`5D.max_depth;
X        end;
X    10: begin
X          msg_print(' ');
X          msg_print('Something strange just happened.');
X          msg_print('But we''re not telling...');
X          if (py.misc.sex = 'Female') then
X`09    Begin
X`09      py.misc.sex := 'Male';
X              case randint(7) of
X                1: py.misc.name := 'Herve Villichez';
X`09`092: py.misc.name := 'The Third Amigo';
X`09`093: py.misc.name := 'Rasputin';
X`09`094: py.misc.name := 'Rassilon';
X`09`095: py.misc.name := 'Dent Arthur Dent';
X`09`096: py.misc.name := 'Ford Prefect';
X`09`097: py.misc.name := 'Slartibartfast';
X              end;
X`09    End
X          else
X`09    Begin
X`09      py.misc.sex := 'Female';
X              case randint(7) of
X`09`091: py.misc.name := 'Elena Redlips';
X`09`092: py.misc.name := 'Tricia McMillan';
X`09`093: py.misc.name := 'Ginger Rogers';
X`09`094: py.misc.name := 'Barbarella';
X`09`095: py.misc.name := 'Dale Arden';
X`09`096: py.misc.name := 'Elvira, Mistress of the dark';
X`09`097: py.misc.name := 'Misery Chastain';
X              end;
X`09    End;
X        END;
X
X    11: if (randint(100) > 20) then
X          was_wierd := false
X`09else
X`09  BEGIN
X`09    msg_print('Suddenly and without warning, you are enveloped in an');
X`09    msg_print('Energy Vortex!!!!!');
X`09    with py.stat do
X`09      Begin
X`09`09scramble`5B1`5D := str;`09`7Bscramble the player's stats. `7D
X`09    `09scramble`5B2`5D := dex;`09`7Bbut reset the new currents to`7D
X`09`09scramble`5B3`5D := con;`09`7Bbe restored.            --jeb`7D
X`09`09scramble`5B4`5D := int;
X`09`09scramble`5B5`5D := wis;  scramble`5B6`5D := chr;
X`09`09for i1 := 1 to 6 do
X`09`09  begin
X`09`09    i2 := randint(6);
X`09`09    i3 := scramble`5Bi1`5D;
X`09`09    scramble`5Bi1`5D := scramble`5Bi2`5D;
X`09`09    scramble`5Bi2`5D := i3;
X`09`09  end;`09`20
X`09        str := scramble`5B1`5D;       int := scramble`5B2`5D;
X`09        wis := scramble`5B3`5D;       dex := scramble`5B4`5D;
X`09        con := scramble`5B5`5D;       chr := scramble`5B6`5D;
X`09`09cstr := str;`09`09  cdex := dex;
X`09`09ccon := con;`09`09  cint := int;
X`09`09cwis := wis;`09`09  cchr := chr;
X              End;
X`09    prt_stat_block;
X`09  END;
X    12: Begin
X`09  msg_print('You go momentarily insane.');
X`09  for i1 := 1 to 15 do
X`09    begin
X`09      move_char(8);`09`7Bmake the player run in circles.`7D
X`09      move_char(8);`09`7Bhee hee hee...           --jeb `7D
X`09      move_char(9);  move_char(3);  move_char(2);
X`09      move_char(2);  move_char(1);  move_char(1);
X`09      move_char(randint(9));
X`09    end; `09
X`09End;`09`09
X    13: Begin`20
X`09  msg_print('You completely lose your grip on reality.');`20
X`09  msg_print('');
X`09  i3 := py.misc.lev;
X`09  with py.flags do
X`09    begin
X  `09      image := i3+100;
X`09      fast := i3+50;
X`09      confused := i3+10;
X`09      afraid := i3+8;
X`09      blind := i3+6;
X`09      poisoned := i3+4;
X`09      paralysis := i3;
X`09    end; `20
X`09End;
X    14: Begin
X          msg_print('You suddenly remember your old nickname!');
X`09  msg_print('');
X`09  with py.misc do
X`09    case randint(16) of
X`09      1:  race := 'Greedy';
X`09      2:  race := 'Boring';
X`09      3:  race := 'Wild';
X`09      4:  race := 'Friendly';
X`09      5:  race := 'Sleazy';
X`09      6:  race := 'Lucky';
X`09      7:  race := 'Muffin';
X`09      8:  race := 'Foolish';
X`09      9:  if (py.misc.sex = 'Female') then
X`09`09    race := 'Gorgeous'
X`09`09  else
X`09`09    race := 'Studly';
X`09     10:  race := 'Potato-Head';
X`09     11:  race := 'Dizzy';
X`09     12:  race := 'Unbearable';
X`09     13:  race := 'Pond Scum';
X`09     14:  race := 'Pizza-Face';
X`09     15:  race := 'Party-Animal';
X`09     16:  BEGIN
X`09            race := 'Weiner';
X`09`09    msg_print('Oh I wish I was an Oscar Meyer Weiner...');
X`09`09  END;
X`09    end;`09
X`09End;
X     15: Begin
X`09   msg_print('Nickels from heaven!');
X`09   for i1 := 1 to (100*py.misc.lev) do
X`09     begin
X`09       py.misc.au := py.misc.au + randint(3);
X`09       prt_gold;
X`09     end;
X`09 End;
X     16: Begin      `7Bdanny's goons`7D
X           if (payment_count < 10) then
X`09     was_wierd := false
X`09   else
X`09     begin
X               clear(1,1);
X    prt('Suddenly, from behind, a big pair of Danny Dollar''s thugs',1,1);
X    prt('jump you!  "Danny says yer behind on yer payments," the first',2,1)
V;
X    prt('thug says.  "Danny don''t like late payments," his buddy says.',3,1
V);
X    prt('Then, the first thug pins your arms from behind, and blows',4,1);
X    prt('cigar smoke in your ear while the other slugs you in the gut',5,1);
X    prt('*really* hard, a lot of times.  They take all your money, and',6,1)
V;
X    prt('leave you puking your guts out on the ground.',7,1);
X               principal := principal - (py.misc.au div 2);
X`09       if (principal < 0) then principal := 0;
X`09       if (principal = 0) then payment_count := 0;
X               py.misc.au := 0;
X`09       py.misc.chp := py.misc.chp/2;
X`09       de_statp(py.stat.con);
X`09       if (py.stat.ccon > py.stat.con) then py.stat.ccon :=
X`09         py.stat.con;
X`09       py.flags.paralysis := 15;
X`09       py.flags.food := 250;
X`09       pause(24);
X`09       draw_cave;
X`09     end;
X`09 End; `20
X     17: if (dun_level < 1) then
X`09   was_wierd := false
X`09 else
X`09 begin
X           msg_print('Suddenly, the earth rumbles...');
X`09   msg_print('A giant hole opens underneath you!');
X`09   make_light(char_row,char_col,5,false); `7Bbig dark hole around player`
V7D
X`09   msg_print('It''s a SINKHOLE!!!');
X`09   msg_print('You are swirling around in the mud!');
X`09   centery := char_row - panel_row_prt;
X`09   centerx := char_col - panel_col_prt;
X`09   y := centery;
X`09   x := centerx;
X`09   for i1 := 1 to 360 do
X`09     begin
X`09       put_buffer(' ',y,x); `09`09    `7Berase @ from the screen  `7D
X`09       r := 5.0 - (1.0*i1) / 72.0;          `7Bradius goes from 5 to 0  `
V7D
X`09       theta := (5.0*i1)/57.2957795;        `7B5 degree increments      `
V7D
X`09       y := centery + trunc(r*sin(theta));  `7Bsome basic trig calcs.   `
V7D
X`09       x := centerx + trunc(1.4*r*cos(theta));
X`09       sleep(0);
X`09       put_buffer('@',y,x);  `09`09    `7Bput @ at new place       `7D
X`09       sleep(0);
X`09     end;
X           put_buffer(' ',y,x);`20
X`09   dun_level := dun_level + randint(5);
X`09   if (dun_level > townlist`5Btown_num`5D.max_depth) then
X`09     dun_level := townlist`5Btown_num`5D.max_depth;
X`09   moria_flag := true;  `09`09   `09   `7Bgenerate new level`7D
X`09   msg_print('You land with a really hard thud.');
X`09   take_hit(damroll('5d10'),'a sinkhole');
X`09 end;
X     18: begin
X          msg_print(' ');
X          msg_print('You trip over a small rock, and discover');
X          msg_print('some money lying underneath.');
X`09  msg_print(' ');
X          if (randint(100) > 5) then
X            i1 := py.misc.lev * 5
X          else
X            i1 := 1000+randint(1000);
X          py.misc.au := py.misc.au + i1;
X`09  msg_print('');`09  `09 `20
X`09  prt_num('It''s worth $',i1,1,1);
X          prt_gold;
X        end;
X
X`7B     : if (unleashed_doom) then (Unleash doom code is still buggy -RLG)
X           was_wierd := false
X `09else
X`09  begin
X`09    unleashed_doom := true;
X`09    msg_print('');
X`09    msg_print('You hear a loud clap of thunder');
X`09    msg_print('and a sickening feeling grows in your stomach.');
X`09  end;          `7D
X
X      otherwise ;
X  end;
X  wierd_type := 0;
Xuntil((not force_wierd) or was_wierd);
X  if (not was_wierd) then
X    case randint(3) of`20
X      1: msg_print('You just avoided something strange.');
X      2: msg_print('That was a close call!');
X      3: msg_print('You are _sooo_ lucky!');
X    end;`09
XEND;
$ CALL UNPACK [.INC]WIERD.INC;1 879156824
$ create 'f'
X `7B Print Moria credits `7D
X`5Bpsect(misc1$code)`5D    procedure game_version;
XBEGIN
Xclear(1,1);
Xprt('  BOSS : Beyond Moria',1,1);
Xprt('Version 0.1  : 11/13/90',2,1);
Xprt('Version 1.0  : 05/01/91',3,1);
Xprt('Version 2.0  : 03/01/92',4,1);
Xprt('Robert L. Gulledge                 Jason E. Black',5,1);
Xprt('raoul@u.washington.edu             cloister@u.washington.edu',6,1);
Xprt('Univ. of Washington                Univ. of Washington',7,1);
Xprt('Moria Modules :',8,1);
Xprt('     V1.0  Dungeon Generator      - RAK',9,1);
Xprt('           Character Generator    - RAK & JWT',10,1);
Xprt('           Moria Module           - RAK',11,1);
Xprt('           Miscellaneous          - RAK & JWT',12,1);
Xprt('     V2.0  Town Level & Misc      - RAK',13,1);
Xprt('     V3.0  Internal Help & Misc   - RAK',14,1);
Xprt('     V4.0  Source Release Version - RAK',15,1);
Xprt('Robert Alan Koeneke               Jimmey Wayne Todd Jr.',17,1);
Xprt('Student/University of Oklahoma    Student/University of Oklahoma',18,1)
V;
Xprt('119 Crystal Bend                  1912 Tiffany Dr.',19,1);
Xprt('Norman, OK 73069                  Norman, OK  73071',20,1);
Xprt('(405)-321-2925                    (405) 360-6792',21,1);
X        pause(24);
X        draw_cave;
X      end;
X`20
X`20
X        `7B Light up the dungeon                                  -RAK-   `7
VD
X`5Bpsect(wizard$code)`5D  procedure wizard_light;
X    var
X        i1,i2,i3,i4     : integer;
X        flag            : boolean;
X    begin
X      if (cave`5Bchar_row,char_col`5D.pl) then
X        flag := false
X      else
X        flag := true;
X      for i1 := 1 to cur_height do
X        for i2 := 1 to cur_width do
X          if (cave`5Bi1,i2`5D.fval in floor_set) then
X            for i3 := i1-1 to i1+1 do
X              for i4 := i2-1 to i2+1 do
X                with cave`5Bi3,i4`5D do
X                  begin
X                    pl := flag;
X                    if (not(flag)) then
X                      fm := false;
X                  end;
X      prt_map;
X    end;
X`20
X`7BActivates either print_monsters  or  print_objects`7D
X`5Bpsect(wizard$code)`5D  procedure print_stuff_to_file;
X
X  BEGIN
X    If (get_com('Print to File:  (M)onsters or (O)bjects ?',command)) then
X      case command of
X        'o','O'  :  print_objects;
X        'm','M'  :  print_monsters;
X        otherwise;
X      end;`09
X  END;
X`20
X`20
X`7B Wizard routine for gaining on stats `7D
X`5Bpsect(wizard$code)`5D  procedure change_character;
X    var
X        tmp_val                 : integer;
X        tmp_str                 : vtype;
X    begin
X      with py.stat do
X        begin
X          prt('(3 - 50) Strength     = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -999;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 2) and (tmp_val < 51)) then
X            begin
X              str  := tmp_val;
X              cstr := tmp_val;
X              prt_strength;
X              prt_max_weight;
X            end;
X          prt('(3 - 50) Intelligence = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -999;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 2) and (tmp_val < 51)) then
X            begin
X              int  := tmp_val;
X              cint := tmp_val;
X              prt_intelligence;
X            end;
X          prt('(3 - 50) Wisdom       = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -999;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 2) and (tmp_val < 51)) then
X            begin
X              wis  := tmp_val;
X              cwis := tmp_val;
X              prt_wisdom;
X            end;
X          prt('(3 - 50) Dexterity    = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -999;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 2) and (tmp_val < 51)) then
X            begin
X              dex  := tmp_val;
X              cdex := tmp_val;
X              prt_dexterity;
X            end;
X          prt('(3 - 50) Constitution = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -999;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 2) and (tmp_val < 51)) then
X            begin
X              con  := tmp_val;
X              ccon := tmp_val;
X              prt_constitution;
X            end;
X          prt('(3 - 50) Charisma     = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -999;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 2) and (tmp_val < 51)) then
X            begin
X              chr  := tmp_val;
X              cchr := tmp_val;
X              prt_charisma;
X            end;
X        end;
X      with py.misc do
X        begin
X          prt('(1 - 32767) Hit points = ',1,1);
X          get_string(tmp_str,1,26,10);
X          tmp_val := -1;
X          readv(tmp_str,tmp_val,error:=continue);
X          if ((tmp_val > 0) and (tmp_val < 32768)) then
X            begin
X              mhp  := tmp_val;
X              chp  := tmp_val;
X              prt_mhp;
X              prt_chp;
X            end;
X     if ( (py.misc.tclass <> 'Ninja') and
X          (py.misc.tclass <> 'Wrestler') ) then
X       begin
+-+-+-+-+-+-+-+-  END  OF PART 84 +-+-+-+-+-+-+-+-
