-+-+-+-+-+-+-+-+ START OF PART 52 -+-+-+-+-+-+-+-+ X`09`09new_row,new_col : integer; X begin X`09new_row := y + dy_of`5Bdir`5D; X`09new_col := x + dx_of`5Bdir`5D; X`09move := false; X`09if ((new_row >= 1) and (new_row <= cur_height)) then X`09 if ((new_col >= 1) and (new_col <= cur_width)) then X`09 begin X`09 y := new_row; X`09 x := new_col; X`09 move := true; X`09 end X end; X X X`09`7B Saving throws for player character... `09`09-RAK-`09`7D X`5Bglobal,psect(moria$code)`5D function player_saves(adjust : integer) : boo Vlean; X`09begin X`09 player_saves := (randint(100) <= py.misc.save + adjust) AND X`09`09(randint(20) <> 1) X`09end; X X`5Bglobal,psect(moria$code)`5D function player_spell_saves : boolean; X`09begin X`09 player_spell_saves := player_saves(py.misc.lev + 5 * spell_adj(ws)) X`09end; X X`09`7B Init players with some belongings`09`09`09-RAK-`09`7D X`5Bglobal,psect(setup$code)`5D procedure char_inven_init; X var X`09i1,i2,dummy : integer; X begin X`09inventory_list := nil; X`09for i1 := equipment_min to equip_max-1 do X`09 equipment`5Bi1`5D.tval := 0; X`09for i1 := 1 to 5 do X`09 begin X`09 i2 := player_init`5Bpy.misc.pclass,i1`5D; X`09 inven_temp`5E.data := inventory_init`5Bi2`5D; X`09 inven_carry; X`09 end; X end; X X`5Bglobal,psect(moria$code)`5D procedure find_monster_name( X`09`09var m_name`09: vtype; X`09`09ptr`09`09: integer; X`09`09begin_sentence`09: boolean); X var X`09i2`09: integer; X begin X`09i2 := m_list`5Bptr`5D.mptr; X`09`09`7B Does the player know what he's fighting? `7D X`09if (((uand(%X'10000',c_list`5Bi2`5D.cmove) <> 0) and X`09 (not(py.flags.see_inv))) or (py.flags.blind > 0) or X`09 (not(m_list`5Bptr`5D.ml))) then X`09 if begin_sentence then X`09 m_name := 'It' X`09 else X`09 m_name := 'it' X`09else X`09 if begin_sentence then X`09 m_name := 'The ' + c_list`5Bi2`5D.name X`09 else X`09 m_name := 'the ' + c_list`5Bi2`5D.name; X end; X X X`09`7B Check for kicking people out of the game`09`09-DMF-`09`7D X `5Bglobal,psect(moria$code)`5D procedure check_kickout_time(num,check V : integer); X`09begin X`09 if ((num mod check) = 1) then X`09 if (check_kickout) then X`09 begin X`09 find_flag := false; X`09 msg_print('A new version of IMORIA is being installed.'); X`09 msg_print('After your character is saved, wait a few minutes,'); X`09 msg_print('And then try to run the game.'); X`09 msg_print(''); X`09 repeat X`09`09 py.flags.dead := false; X`09 save_char(true); X`09 until(false); X`09 end; X`09end; XEnd. $ CALL UNPACK MISC.PAS;1 1817867553 $ create 'f' X `7B Use a monk's mental discipline. . . . -RAD- `7 VD X`5Bpsect(misc2$code)`5D procedure discipline; X var X i2,dir : integer; X i1,item_ptr : treas_ptr; X choice,chance : integer; X dumy,y_dumy,x_dumy : integer; X redraw,flag : boolean; X ident : boolean; X begin X`09redraw := false; X reset_flag := true; X if (py.flags.confused > 0) then X msg_print('You are too confused to concentrate....') X else if (py.flags.image > 0) then X msg_print('Colors and images run through your head, distracting yo Vu.') X`09else X`09 begin X`09 flag := false; X`09 for i2 := 1 to 40 do X`09 if (magic_spell`5Bpy.misc.pclass,i2`5D.learned) then flag := true; X`09 if (flag) then X`09 begin X`09 inven_temp`5E.data := monk_book; X`09 if (cast_spell('Use which discipline?',inven_temp, X`09`09`09`09`09choice,chance,redraw)) then X`09`09 with magic_spell`5Bpy.misc.pclass,choice`5D do X`09`09 begin X`09`09 reset_flag := false; X`09`09 if (randint(100) < chance) then X`09`09 msg_print('You lost your concentration!') X`09`09 else X`09`09 begin X`09`09`09 y_dumy := char_row; X`09`09`09 x_dumy := char_col; X`09`7B Disciplines....`7D X`09case choice of X`7B Self-Healing `7D X 1 : hp_player(damroll('4d4'),'a magic spell.');`20 X`7B Courage `7D`20 X 2 : cure_me(py.flags.afraid); X`7B Slow Poison `7D`20 X 3 : slow_poison; X`7B Negate Hunger `7D`20 X 4 : begin X`09`09 py.flags.food := player_food_full + 4000; `09 X`09`09 py.flags.status := uand(%X'FFFFFFFC',py.flags.status); X`09`09 prt_hunger; X`09`09 msg_print('You are full.'); X`09`09end; X`7B Sense Enemies `7D X 5 : detect_creatures(c_creature); X`7B Self-Healing II `7D `20 X 6 : hp_player(damroll('8d4'),'a prayer.'); X`7B Night Vision `7D X 7 : py.flags.tim_infra := py.flags.tim_infra + randint(25) + 25; X`7B Poison Immunity `7D X 8 : cure_me(py.flags.poisoned); X`7B See Invisible `7D`20 X 9 : detect_inv2(randint(24)+24); X`7B Advanced Self-Healing `7D`20 X 10 : hp_player(damroll('16d4'),'a prayer.');`20 X`7B Resist Petrification `7D X 11 : py.flags.resist_petri := py.flags.resist_petri + randint(15) V + 10; X`7B Stealth `7D X 12 : py.flags.temp_stealth := py.flags.temp_stealth+randint(15)+1 V0; X`7B Free Action `7D`20 X 13 : py.flags.free_time := py.flags.free_time + (randint(10) + py V.misc.lev);`20 X`7B Improved Speed `7D X 14 : with py.flags do X fast := fast + randint(20) + py.misc.lev; X`09 otherwise ; X`09end; X`09`7B End of Disciplines...`7D X`09`09`09 if (not(reset_flag)) then`20 X`09`09`09 with py.misc do X`09`09`09 begin X`09`09`09 exp := exp + sexp; X`09`09`09 prt_experience; X`09`09`09 sexp := 0; X`09`09`09 end; X`09`09 end; X`09`09 with py.misc do X`09`09 if (not(reset_flag)) then X`09`09`09 begin X`09`09`09 if (smana > cmana) then X`09`09`09 begin X`09`09`09 msg_print('You are distracted by the effort!'); X`09`09`09 py.flags.paralysis := X`09`09`09`09 randint(5*trunc(smana-cmana)); X`09`09`09 cmana := 0; X`09`09`09 end X`09`09`09 else X`09`09`09 cmana := cmana - smana; X`09`09`09 prt_mana; X`09`09`09 end; X`09`09 end X`09`09else X`09`09 erase_line(1,1); X`09 end X`09 else X`09 msg_print('You don''t know any disciplines!'); X`09 end; X end; $ CALL UNPACK MONK.INC;1 359883148 $ create 'f' X--- 001 --- X10 X1 XTown Wizard X0010C000 X00009F52 X3000 X25000 X50 X1 Xp X20d8 X1 1 3d3 X0`20 X20 X--- 002 --- X10 X1 XTown Guard X0010C000 X00000000 X3000 X25000 X25 X1 Xp X20d8 X1 1 4d4`7C1 1 4d4 X0`20 X0 X--- 003 --- X4 X1 XYoung Child X14124342 X00000000 X2034 X50 X10 X1 Xp X1d2 X1 6 0d0 X0`20 X0 X--- 004 --- X20 X20 XGoldfish X00004054 X00000000 X00F0 X0 X5 X1 Xf X0d0 X1 32 0d0 X0`20 X0 X--- 005 --- X20 X10 XRhode Island Red X00000348 X00000000 X20F0 X10 X5 X2 Xc X1d1 X1 34 0d0`7C1 37 0d0 X0`20 X0 X--- 006 --- X20 X10 XQuack! Quack! Duck X00004348 X00000000 X20F0 X10 X5 X2 Xd X1d1 X1 33 0d0 X0`20 X0 X--- 007 --- X20 X10 XMongrel Dog X00004348 X00000000 X20F0 X10 X5 X2 Xd X1d1 X1 35 0d0 X0`20 X0 X--- 008 --- X20 X10 XStray Kitten X00004348 X00000000 X20F0 X10 X5 X2 Xk X1d1 X1 36 0d0 X0`20 X0 X--- 009 --- X20 X20 XMoo Cow X00004348 X00000000 X20F0 X10 X10 X1 XB X3d8 X1 26 0d0 X0`20 X0 X--- 010 --- X20 X25 XRaging Bull X00080348 X00000000 X20F0 X50 X0 X2 XB X4d8 X1 25 1d6 X0`20 X0 X--- 011 --- X4 X1 XFilthy Street Urchin X00120342 X00000000 X2034 X400 X0 X1 Xp X1d4 X1 14 0d0`7C12 5 0d0 X0`20 X0 X--- 012 --- X6 X1 XBlubbering Idiot X00124342 X00000000 X2030 X0 X10 X1 Xp X1d2 X1 18 0d0 X0`20 X0 X--- 013 --- X10 X1 XPitiful Looking Beggar X00124342 X00000000 X2030 X400 X10 X1 Xp X1d4 X1 14 0d0 X0`20 X0 X--- 014 --- X10 X1 XMangy Looking Leper X00124342 X00000000 X2030 X500 X10 X1 Xp X1d1 X1 14 0d0 X0`20 X0 X--- 015 --- X10 X8 XSquint Eyed Rogue X07120340 X00000000 X2034 X999 X0 X1 Xp X2d8 X1 1 1d6`7C13 5 0d0 X0`20 X0 X--- 016 --- X10 X1 XSinging, Happy Drunk X0612434E X00000000 X2030 X0 X10 X1 Xp X2d3 X1 14 0d0 X0`20 X0 X--- 017 --- X10 X20 XMean Looking Mercenary X0B120342 X00000000 X2034 X25000 X0 X1 Xp X5d8 X1 1 1d10 X0`20 X0 X--- 018 --- X10 X30 XBattle Scarred Veteran X0B120342 X00000000 X2030 X25000 X0 X1 Xp X7d8 X1 1 2d6 X0`20 X0 X--- 019 --- X6 X5 XBrown Spider X00200204 X00000000 X0030 X8 X2 X1 Xx X3d4 X1 2 1d3 X1`20 X0 X--- 020 --- X2 X1 XFalse Stairwell X00000041 X00000028 X0000 X0 X2 X1 X< X5d4 X10 5 0d0 X1`20 X0 X--- 021 --- X2 X1 XGrey Mushroom patch X00000041 X00000000 X10A0 X0 X1 X1 X, X1d2 X3 13 1d4 X1`20 X0 X--- 022 --- X8 X12 XGiant Yellow Centipede X00000040 X00000000 X0002 X300 X2 X1 Xc X2d6 X1 2 1d3`7C1 4 1d3 X1`20 X0 X--- 023 --- X7 X10 XGiant White Centipede X00000042 X00000000 X0002 X400 X2 X1 Xc X3d5 X1 2 1d2`7C1 4 1d2 X1`20 X0 X--- 024 --- X12 X7 XWhite Icky-Thing X00000144 X00000000 X0022 X100 X2 X1 Xi X3d5 X1 5 1d2 X1`20 X0 X--- 025 --- X12 X6 XClear Icky-Thing X00010140 X00000000 X0022 X100 X1 X1 Xi X2d5 X1 5 1d2 X1`20 X0 X--- 026 --- X8 X4 XGiant White Mouse X00200202 X00000000 X2070 X200 X1 X1 Xr X1d3 X1 2 1d2 X1`20 X0 X--- 027 --- X4 X35 XLarge Brown Snake X00000142 X00000000 X00B0 X999 X3 X0 XR X4d6 X1 2 1d3`7C1 16 1d4 X1`20 X0 X--- 028 --- X4 X30 XLarge White Snake X00000144 X00000000 X00B0 X999 X2 X1 XR X3d6 X1 2 1d1 X1`20 X0 X--- 029 --- X20 X16 XKobold X07020200 X00000000 X2032 X100 X5 X1 Xk X3d7 X1 1 1d6 X1`20 X0 X--- 030 --- X6 X1 XWhite Worm mass X00200148 X00000000 X01B0 X1 X2 X0 Xw X4d4 X14 12 1d2 X1`20 X0 X--- 031 --- X2 X6 XFloating Eye X00800001 X0001000D X2102 X100 X1 X1 Xe X3d6 X11 7 0d0 X1`20 X0 X--- 032 --- X5 X5 XLeech X00300211 X00000000 X0070 X1000 X2 X2 Xl X1d1 X1 30 2d2 X1`20 X0 X--- 033 --- X6 X5 XBlack Spider X00200204 X00000000 X0030 X10 X3 X1 Xx X2d3 X6 2 1d3`7C1 2 1d4 X2`20 X0 X--- 034 --- X2 X1 XShrieker Mushroom patch X00000001 X00000000 X10A0 X0 X1 X1 X, X1d1 X20 10 0d0 X2`20 X0 X--- 035 --- X10 X4 XBlubbering Icky-Thing X0B180144 X00000000 X0022 X100 X8 X1 Xi X5d8 X14 12 1d4`7C22 12 0d0 X2`20 X0 X--- 036 --- X5 X4 XMetallic Green Centipede X00000144 X00000000 X0000 X100 X3 X1 Xc X4d4 X1 12 1d1 X2`20 X0 X--- 037 --- X1 X1 XGlowing Chartreuse Potion X00000041 X00000000 X11F2 X0 X2 X1 X! X7d4 X1 2 1d3`7C1 3 1d3 X2`20 X0 X--- 038 --- X20 X16 XJester X07020200 X0000040C X2070 X50 X6 X1 Xp X7d4 X1 1 1d5`7C11 23 1d2 X2`20 X0 X--- 039 --- X20 X16 XNovice Warrior X07020200 X00000000 X2070 X50 X6 X1 Xp X9d4 X1 1 1d7 X2`20 X0 X--- 040 --- X20 X12 XNovice Rogue X07020200 X00000000 X2070 X50 X6 X1 Xp X8d4 X1 1 1d6`7C12 5 0d0 X2`20 X0 X--- 041 --- X20 X10 XNovice Priest X07020200 X0000108C X2070 X100 X7 X1 Xp X7d4 X1 1 1d5 X2`20 X0 X--- 042 --- X20 X6 XNovice Mage X07020200 X0000089C X2070 X50 X7 X1 Xp X6d4 X1 1 1d4 X2`20 X0 X--- 043 --- X2 X1 XYellow Mushroom patch X00000041 X00000000 X10A0 X0 X2 X1 X, X1d1 X4 13 1d6 X2`20 X0 X--- 044 --- X2 X1 XWhite Jelly X0B000041 X00000000 X01A0 X999 X10 X1 XJ X8d8 X14 5 1d2 X2`20 X0 X--- 045 --- X14 X8 XGiant Green Frog X00001212 X00000000 X0082 X300 X6 X2 Xa X2d8 X1 2 1d3 X2`20 X0 X--- 046 --- X14 X20 XGiant Black Ant X00000142 X00000000 X0002 X400 X8 X1 Xc X3d6 X1 2 1d4 X2`20 X0 X--- 047 --- X16 X16 XWhite Harpy X00800304 X00000000 X2036 X100 X5 X1 Xh X2d5 X1 3 1d1`7C1 3 1d1`7C1 2 1d2 X2`20 X0 X--- 048 --- X18 X14 XBlue Yeek X07020240 X00000000 X2030 X100 X4 X1 Xy X2d6 X1 1 1d5 X2`20 X0 X--- 049 --- X7 X3 XGreen Worm mass X00200148 X00000000 X01B0 X100 X3 X0 Xw X6d4 X9 12 1d3 X2`20 X0 X--- 050 --- X5 X38 XLarge Black Snake X00000142 X00000000 X00B0 X750 X9 X0 XR X4d8 X1 2 1d4`7C1 16 1d6 X2`20 X0 X--- 051 --- X4 X10 XGiant Kelp X00600013 X00000000 X1030 X0 X3 X1 Xw X2d4 X1 29 1d8 X2`20 X0 X--- 052 --- X6 X10 XRed Spider X00200208 X00000000 X0012 X15 X4 X1 Xx X3d3 X5 2 2d3 X3`20 X0 X--- 053 --- X8 X15 XPoltergeist X0F95030E X0000001F X100C X750 X6 X3 XG X2d5 X4 1 1d1 X3`20 X0 X--- 054 --- X6 X6 XMetallic Blue Centipede X00000144 X00000000 X0000 X150 X7 X2 Xc X4d5 X1 12 1d2 X3`20 X0 X--- 055 --- X1 X1 XScroll Titled "taf naed" X00000041 X00000000 X1010 X0 X7 X1 X? X10d8 X1 1 3d2 X3`20 X0 X--- 056 --- X6 X5 XGiant White Lice X00200148 X00000000 X01F0 X100 X1 X2 Xl X1d1 X1 2 1d1 X3`20 X0 X--- 057 --- X16 X40 XBlack Naga X07100302 X00000000 X20E6 X1200 X20 X1 Xn X6d8 X1 16 1d8 X3`20 X0 X--- 058 --- X2 X1 XSpotted Mushroom patch X00000041 X00000000 X10A0 X0 X3 X1 X, X1d1 X14 13 2d4 X3`20 X0 X--- 059 --- X2 X1 XYellow Jelly X0B000041 X0001000F X01A0 X999 X12 X1 XJ X10d8 X14 5 1d3 X3`20 X0 X--- 060 --- X16 X8 XScruffy looking Hobbit X05020200 X00000000 X2070 X100 X4 X1 Xp X3d5 X1 1 1d4`7C12 5 0d0 X3`20 X0 X--- 061 --- X8 X12 XHuge Brown Bat X00800308 X00000000 X2160 X400 X4 X3 Xb X2d6 X1 2 1d2 X3`20 X0 X--- 062 --- X8 X16 XGiant White Ant X00000140 X00000000 X0002 X800 X7 X1 Xc X3d6 X1 2 1d4 X3`20 X0 +-+-+-+-+-+-+-+- END OF PART 52 +-+-+-+-+-+-+-+-