-+-+-+-+-+-+-+-+ START OF PART 77 -+-+-+-+-+-+-+-+ X end; X toac := -m_bonus(1,40,power); X p1 := -m_bonus(1,10,power); X flags := uor(%X'80000000',flags); X cost := 0; X end X end; X 30 : begin `7B Boots `7D X if (magik(chance)) then X begin X toac := toac + m_bonus(1,20,power); X if (magik(special)) then X case randint(12) of X 1 : begin X flags := uor(%X'00001000',flags); X name := name + ' of Speed'; X p1 := 1; X cost := cost + 5000; X end; X 2,3,4,5 : begin X flags := uor(%X'00000100',flags); X name := name + ' of Stealth'; X cost := cost + 500; X end; X otherwise begin X flags := uor(%X'04000000',flags); X name := name + ' of Slow decent'; X cost := cost + 250; X end X end X end X else if (magik(cursed)) then X begin X case randint(3) of X 1 : begin X flags := uor(%X'80001000',flags); X name := name + ' of Slowness'; X p1 := -1; X end; X 2 : begin X flags := uor(%X'80000200',flags); X name := name + ' of Noise'; X end; X 3 : begin X flags := uor(%X'80000000',flags); X name := name + ' of Great Mass'; X weight := weight*5; X end; X end; X cost := 0; X ac := -m_bonus(2,45,power); X end; X end; X 33 : begin `7B Helms `7D X if (magik(chance)) then X begin X toac := toac + m_bonus(1,20,power); X if (magik(special)) then X case subval of`20 X 1,2,3,4,5 : case randint(3) of X 1 : begin X p1 := randint(2); X flags := uor(%X'00000008',flags); X name := name + ' (%P1) of Intelligence V'; X cost := cost + p1*500; X end; X 2 : begin X p1 := randint(2); X flags := uor(%X'00000010',flags); X name := name + ' (%P1) of Wisdom'; X cost := cost + p1*500; X end; X 3 : begin X p1 := 1 + randint(4); X flags := uor(%X'40000000',flags); X name := name + ' (%P1) of Infra-Vision V'; X cost := cost + p1*250; X end; X end; X 6,7,8 : case randint(6) of `7B Crowns `7D X 1 : begin X p1 := randint(3); X`09`09`09`09 `7BSTR,CON,DEX,Free Action`7D X flags := uor(%X'00800007',flags); X name := name + ' (%P1) of Might'; X cost := cost + 1000 + p1*500; X end; X 2 : begin X p1 := randint(3); X flags := uor(%X'00000030',flags); X name := name + ' (%P1) of Lordliness'; X`09`09`09`09 toac := toac + randint(10); X cost := cost + 1000 + p1*500; X end; X 3 : begin X p1 := randint(3); X flags := uor(%X'01380008',flags); X name := name + ' (%P1) of Jarwangia'; X cost := cost + 3000 + p1*500; X end; X 4 : begin X p1 := randint(3); X flags := uor(%X'00000020',flags); X name := name + ' (%P1) of Beauty'; X cost := cost + 750; X end; X 5 : begin X p1 := 1 + randint(4); X flags := uor(%X'01000040',flags); X name := name + ' (%P1) of Seeing'; X cost := cost + 1000 + p1*100; X end; X 6 : begin X flags := uor(%X'00000800',flags); X name := name + ' of Regeneration'; X cost := cost + 1500; X end; X end; X end; X end X else if (magik(cursed)) then X begin X toac := -m_bonus(1,45,power); X flags := uor(%X'80000000',flags); X cost := 0; X if (magik(special)) then X case randint(7) of X 1 : begin X p1 := -1; X flags := uor(%X'00000008',flags); X name := name + ' of Stupidity'; X end; X 2 : begin X p1 := -1; X flags := uor(%X'00000010',flags); X name := name + ' of Dullness'; X end; X 3 : begin X flags := uor(%X'08000000',flags); X name := name + ' of Blindness'; X end; X 4 : begin X flags := uor(%X'10000000',flags); X name := name + ' of Timidness'; X end; X 5 : begin X p1 := -1; X flags := uor(%X'00000001',flags); X name := name + ' of Weakness'; X end; X 6 : begin X flags := uor(%X'00000400',flags); X name := name + ' of Teleportation'; X end; X 7 : begin X p1 := -1; X flags := uor(%X'00000020',flags); X name := name + ' of Ugliness'; X end; X end; X p1 := p1*randint(5); X end; X end; X 45 : begin `7B Rings `7D X case subval of X 1,2,3,4,5,6 : if (magik(cursed)) then X begin X p1 := -m_bonus(1,20,power); X flags := uor(%X'80000000',flags); X cost := -cost; X end X else X begin X p1 := m_bonus(1,10,power); X cost := cost + p1*100; X end; X 7 : if (magik(cursed)) then `7BSpeed`7D X begin X p1 := -randint(3); X flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X end X else X`09`09`09`09 begin X p1 := m_bonus(1,30,power); X`09`09`09`09 cost := cost + p1*p1*10000; X`09`09`09`09 end; X 8 : begin X p1 := m_bonus(1,20,power); X cost := cost + p1*100; X end; X 22 : begin `7B Increase damage `7D X todam := todam + m_bonus(1,20,power); X if (magik(cursed)) then X begin X todam := -todam; X flags := uor(%X'80000000',flags); X cost := -cost; X end X end; X 23 : begin `7B Increase To-Hit `7D X tohit := tohit + m_bonus(1,20,power); X cost := cost + tohit*100; X if (magik(cursed)) then X begin X tohit := -tohit; X flags := uor(%X'80000000',flags); X cost := -cost; X end X end; X 24 : begin `7B Protection `7D X toac := toac + m_bonus(1,20,power); X if (magik(cursed)) then X begin X toac := -toac; X flags := uor(%X'80000000',flags); X cost := -cost; X end X end; X 33 : begin `7B Slaying `7D X tohit := tohit + m_bonus(1,25,power); X todam := todam + m_bonus(1,25,power); X if (magik(cursed)) then X begin X tohit := -tohit; X todam := -todam; X flags := uor(%X'80000000',flags); X cost := -cost; X end X end; X otherwise ; X end; X end; X 40 : begin `7B Amulets `7D X`09`09 if (magik(cursed)) then X begin X p1 := -m_bonus(1,20,power); X flags := uor(%X'80000000',flags); X cost := -cost; X end X else X begin X p1 := m_bonus(1,10,power); X cost := cost + p1*100; X end; X end; X X `7B Light sources -- Subval should be even for store, odd for dungeon X Dungeon found ones will be partially charged `7D X 15 : begin `7B Lamps and torches`7D X if ((subval mod 2) = 1) then X p1 := randint(p1); X end; X 65 : begin `7B Ray Guns `7D X case subval of X 1,2 : p1 := randint(9) + 6; X 3 : p1 := randint(5) + 6; X 4 : p1 := randint(8) + 6; X 5 : p1 := randint(4) + 3; X 6 : p1 := randint(8) + 6; X 7,8 : p1 := randint(20) + 12; X 9,10 : p1 := randint(11) + 6; X 11 : p1 := randint(10) + 12; X 12 : p1 := randint(3) + 3; X 13,14 : p1 := randint(9) + 6; X 15,16 : p1 := randint(5) + 3; X 17,18 : p1 := randint(5) + 5; X 19,20,21 : p1 := randint(8) + 4; X 22 : p1 := randint(24) + 12; X 23,24,25,26 : p1 := randint(9) + 5; X otherwise p1 := randint(10) + 2; X end X end; X 55 : begin `7B Devices `7D X case subval of X 1 : p1 := randint(20) + 12; X 2 : p1 := randint(8) + 6; X 3 : p1 := randint(5) + 6; X 4 : p1 := randint(20) + 12; X 5 : p1 := randint(15) + 6; X 6,7 : p1 := randint(4) + 4; X`09 8,9,10 : p1 := randint(3) + 1; X 11 : p1 := randint(5) + 6; X 12 : p1 := randint(10) + 12; X 13,14,15 : p1 := randint(5) + 6; X 16 : p1 := randint(10) + 12; X 17 : p1 := randint(3) + 4; X 18,19 : p1 := randint(5) + 6; +-+-+-+-+-+-+-+- END OF PART 77 +-+-+-+-+-+-+-+-