-+-+-+-+-+-+-+-+ START OF PART 60 -+-+-+-+-+-+-+-+ X('a *very* steep staircase leading way, way down',108,'>',%X'00000000', X0,0,4,0,0,0,0,0,0,'1d1',0)); X`20 X`20 X`7B Sets for easy testing `7D X floor_set := `5B1,2,4,5,6,7`5D; wall_set := `5B10,11,12`5D; X pwall_set := `5B10,11,12,15`5D; corr_set := `5B4,5`5D; X trap_set := `5B101,102,109,110,111,120`5D; X light_set := `5B102,103,104,105,107,108,109,110,111`5D; $ CALL UNPACK [.INC]OBJECTS.INC;1 844122276 $ create 'f' X`7B Potions for the quaffing `7D X`5Bpsect(misc2$code)`5D procedure quaff; X var X i1 `09 `09 : unsigned; X`09i2,i3,i4,i5,i7 : integer; X`09item_val,nhp,nst : integer; X out_val`09`09 : vtype; X redraw,ident`09 : boolean; X begin X reset_flag := true; X if (inven_ctr > 0) then X begin X if (find_range(`5B75,76`5D,i2,i3)) then X begin X redraw := false; X if (get_item(item_val,'Quaff which potion?',redraw,i2,i3)) th Ven X with inventory`5Bitem_val`5D do X begin X if (redraw) then draw_cave; X reset_flag := false; X i1 := flags; X ident := false; X while (i1 > 0) do X begin X i2 := bit_pos(i1); X if (tval = 76) then i2 := i2 + 32; X`7B Potions `7D X case (i2) of X 1 : with py.stat do X`09`09 Begin X`09`09 if (tohit > 0) then `7BIncrease Strength x (tohit) `7D X`09 for i7 := 1 to tohit do X`09`09`09begin `20 X cstr := in_statp(cstr); X ident := true; X if (cstr > str) then X str := cstr; X case (randint(3)) of X 1 : msg_print('Wow! What bulging muscles!'); X 2 : msg_print('Damn! You''re getting buff!'); X 3 : msg_print('I bet you pump iron in your spare V time.'); X end; X`09`09`09end X`09`09 else if (tohit < 0) then `7BLose Strength`7D X`09`09 for i7 := 1 to abs(tohit) do X`09`09 begin`09 `20 X`09`09 ident := lose_str; X`09`09`09 case randint(3) of X`09`09`09 1 : msg_print('Your burden feels heavier.'); X`09`09`09 2 : msg_print('Your muscles shrivel up.'); X`09`09`09 3 : msg_print('You resemble a 98 pound weakling.'); X`09`09`09 end; X`09`09 end; X prt_strength; X prt_max_weight; X End; X 2 : if (py.flags.diseased = 0) then X`09`09 begin X py.stat.cstr := py.stat.str; X msg_print('You feel warm all over.'); X prt_strength; X prt_max_weight; X ident := true; X`09`09 end X`09`09else msg_print('Your disease nullifies the potion!'); X 3 : with py.stat do X Begin X`09`09 if (tohit > 0) then `7B Inc. Intellegence x (tohit) `7D X`09`09 for i7 := 1 to tohit do X`09`09 begin X`09`09`09 ident := true; X cint := in_statp(cint); X if (cint > py.stat.int) then X py.stat.int := cint; X msg_print('Imagine how it would feel if your brain V started growing.'); X`09`09`09end X`09`09 else if (tohit < 0) then `7BDec. Int`7D X`09`09 for i7 := 1 to abs(tohit) do X`09`09 begin X`09`09`09 case (randint(3)) of X`09`09`09 1: msg_print('This is your brain on drugs.'); X`09`09`09 2: msg_print('You accidentally snort this acidic potion up your V nose.'); X`09`09`09 3: msg_print('You hear something rattle in your head.'); X`09`09`09 end; X`09`09 end; X prt_intelligence; X End; X 4 : if (py.flags.diseased = 0) then X`09`09 begin X py.stat.cint := py.stat.int; X msg_print('Your brain throbs for a moment'); X prt_intelligence; X ident := true; X`09`09 end X`09`09else msg_print('Your disease nullifies the potion!'); X 5 : with py.stat do X Begin X`09`09 if (tohit > 0) then `7BIncrease Wisdom x (tohit) `7D X`09`09 for i7 := 1 to tohit do X`09`09 begin X`09`09`09 ident := true; X`09`09`09 cwis := in_statp(cwis); X`09`09`09 if (cwis > wis) then X`09`09`09 wis := cwis; X`09`09`09 case (randint(3)) of X`09`09 1 : msg_print('You suddenly have a profound thought!'); X`09`09 2 : msg_print('You feel closer to the Buddah consciousness'); X`09`09 3 : msg_print('Wisdom becomes you, brave adventurer.'); X`09`09`09 end; X`09`09`09end X`09`09 else if (tohit < 0) then `7BDec. Wis`7D X`09`09 for i7 := 1 to abs(tohit) do X`09`09 begin X`09`09`09 ident := lose_wis; X`09`09`09 msg_print('The Buddah slips from your mind''s eye.'); X`09`09`09end; X prt_wisdom; X End; X 6 :`09 if (py.flags.diseased = 0) then X`09`09 begin X py.stat.cwis := py.stat.wis; X`09`09 case (randint(3)) of X`09`09 1: msg_print('The Buddah forgives you.'); X`09`09 2: msg_print('You feel the Buddah return to you.'); X`09`09 3: msg_print('You realize how foolish you''ve been.'); X`09`09 end; X prt_wisdom; X ident := true; X`09`09 end X`09`09 else msg_print('Your disease nullifies the potion!'); X 7 : with py.stat do X Begin X if (tohit > 0) then `7BIncrease Dex `7D X`09`09 for i7 := 1 to tohit do X`09`09 begin X`09`09`09 ident := true; X`09`09 cdex := in_statp(cdex); X`09`09`09 if (cdex > dex) then X`09`09`09 dex := cdex; X`09`09`09 case (randint(4)) of X`09`09`09 1 : msg_print('You grow some new fingers.'); X`09`09`09 2 : msg_print('You feel more limber!'); X`09`09`09 3 : if (dex > 17) then X`09`09`09 msg_print('You are suddenly able to juggle.') X`09`09`09 else X`09`09`09`09 msg_print('You feel nearly able to juggle.'); X`09`09`09 4 : begin X msg_print('You grow another limb.'); X`09`09`09 msg_print('But I''m not sure what to call it.'); X`09`09`09 end; X end; X`09`09`09end X`09`09 else if (tohit < 0) then `7BDec. Dex`7D `20 X`09`09 for i7 := 1 to abs(tohit) do X`09`09 begin X`09`09`09 case (randint(3)) of X`09`09`09 1: msg_print('You feel your joints stiffen.'); X`09`09`09 2: msg_print('Butterfingers!'); X`09`09`09 3: msg_print('Your fingers tie in knots.'); X`09`09`09 end; X`09`09`09 ident := lose_dex; X`09`09`09end; X prt_dexterity; X End; X 8 : if (py.flags.diseased = 0) then X`09`09 begin X py.stat.cdex := py.stat.dex; X msg_print('You feel at ease with your body.'); X prt_dexterity; X ident := true; X`09`09 end X`09`09 else msg_print('Your disease nullifies the potion!'); X 9 : with py.misc do X Begin X if (tohit > 0) then `7BIncrease Con `7D X`09`09 for i7 := 1 to tohit do X`09`09 begin X`09`09`09 ident := true; X`09`09`09 py.stat.ccon := in_statp(py.stat.ccon); X`09`09`09 if (py.stat.ccon > py.stat.con) then X`09`09`09 py.stat.con := py.stat.ccon; X`09`09`09 case (randint(3)) of X`09`09`09 1: msg_print('You feel like you''ve just inhaled a vial of amiy Vl nitrate.'); X`09`09`09 2: msg_print('You feel _really_ healthy.'); X`09`09`09 3: msg_print('Your constitution just went up.'); X`09`09`09 end; X`09`09`09end X`09`09 else if (tohit < 0) then `7BDecrease Con`7D `20 X`09`09 for i7 := 1 to abs(tohit) do X`09`09 begin X`09`09`09 ident := lose_con; X`09`09`09 msg_print('..........'); X`09`09`09end; X prt_constitution; X End; X 10 : if (py.flags.diseased = 0) then X`09 begin`20 X py.stat.ccon := py.stat.con; X msg_print('You feel your grip on life strengthen.'); X prt_constitution; X ident := true; X end X`09`09else msg_print('Your disease nullifies the potion!'); X 11 : with py.stat do X Begin X`09`09 if (tohit > 0) then `7BIncrease Charisma x (tohit) `7D X`09`09 for i7 := 1 to tohit do X`09`09 begin X`09`09`09 ident := true; X`09`09`09 cchr := in_statp(cchr); X`09`09`09 if (cchr > chr) then X`09`09`09 chr := cchr; X case (randint(3)) of X`09`09`09 1 : msg_print('Gee, ain''t you cute!'); X`09`09`09 2 : msg_print('Ooh! What a face!'); X`09`09`09 3 : msg_print('Quick! Where''s my camera?'); X`09`09`09 end; X`09`09`09end X`09`09 else if (tohit < 0) then `7BDecrease Chr`7D `20 X`09`09 for i7 := 1 to abs(tohit) do X`09`09 begin X`09`09`09 ident := lose_chr; X`09`09`09 msg_print('Bleah! Sourpuss!'); X`09`09`09end; X prt_charisma; X End; X 12 : if (py.flags.diseased = 0) then X`09`09 begin X py.stat.cchr := py.stat.chr; X msg_print('You feel your looks returning.'); X prt_charisma; X ident := true; X end X`09`09else msg_print('Your disease nullifies the potion!'); X`7BHealing`7D 13 : ident := hp_player(damroll('2d7'),'a potion.'); X 14 : ident := hp_player(damroll('4d7'),'a potion.'); X 15 : ident := hp_player(damroll('6d7'),'a potion.'); X 16 : ident := hp_player(1000,'a potion.'); X 17 : ; X 18 : with py.misc do X begin X i5 := (exp div 2) + 10; X if (i5 > 100000) then i5 := 100000; X exp := exp + i5; X msg_print('You feel more experienced.'); X prt_experience; X ident := true; X end; X 19 : with py.flags do X if (not (py.flags.free_act)) then X begin X msg_print('Sheesh! Falling asleep on the job!'); X py.flags.paralysis:=py.flags.paralysis+randint(4)+4; X ident := true; X end; X 20 : with py.flags do X begin X msg_print('Your eyelids close and fuse shut!'); X blind := blind + randint(100) + 100; X ident := true; X end; X 21 : with py.flags do X begin X msg_print('Hey! This is good stuff! * Hick! *'); X confused := confused + randint(20) + 12; X ident := true; X end; X 22 : with py.flags do X begin X msg_print('You feel very sick.'); X poisoned := poisoned + randint(15) + 10; X ident := true; X end; X 23 : begin X py.flags.fast := py.flags.fast + randint(25) + 15; X ident := true; X end; X 24 : begin X py.flags.slow := py.flags.slow + randint(25) + 15; X ident := true; X end; X 25 : ident := detect_monsters; X 26 : msg_print('hm. nothing happened that you can see...'); X 27 : msg_print('hm. nothing happened that you can see...'); X 28 : msg_print('hm. nothing happened that you can see...'); X 29 : cure_blindness; X 30 : cure_confusion; X 31 : cure_poison; X`09 32 :; `7BCursed bit- do nothing`7D X 33 : with py.misc do X`09`09 begin X if (pskill in `5B1,2,7`5D) then X begin X ident := learn_spell(redraw); X if (redraw) then draw_cave; X end; X if (pskill in `5B3,4`5D) then X ident := learn_prayer; X if (pskill in `5B5,6`5D) then X begin X ident := learn_extra(redraw); X if (redraw) then draw_cave; X end; X`09`09 end; X 34 : begin X case (randint(5)) of X 1 : msg_print('You feel your memories fade.'); X 2 : msg_print('You cannot remember your mother''s name.' V); X 3 : msg_print('You cannot remember your second-grade tea Vcher''s name.'); X 4 : msg_print('You cannot remember your own name.'); X 5 : msg_print('You can''t remember anyone''s name.'); X end; X msg_print(''); X i4 := trunc(py.misc.exp/5.0); X lose_exp(randint(i4)+i4); X ident := true; X end; X 35 : with py.flags do X begin X poisoned := 0; X if (food > 150) then food := 150; X paralysis := 4; X msg_print('Does the phrase "spew chunks" mean anything to you?'); X ident := true; X end; X 36 : begin X py.flags.invuln := py.flags.invuln + 50; X msg_print('Your skin turns into a high tech, very'); X msg_print('hard polymerized laminate material.'); X py.misc.pac := py.misc.pac + 100; X py.misc.dis_ac := py.misc.dis_ac + 100; X prt_pac; X ident := true; X end; X 37 : begin X py.flags.hero := py.flags.hero + randint(25) + 25; X ident := true; X end; X 38 : begin X py.flags.shero := py.flags.shero + randint(25) + 25; X ident := true; X end; X 39 : ident := remove_fear; +-+-+-+-+-+-+-+- END OF PART 60 +-+-+-+-+-+-+-+-