-+-+-+-+-+-+-+-+ START OF PART 32 -+-+-+-+-+-+-+-+ X flags := uor(%X'00000020',flags); X name := name + ' 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 + ' 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,level); 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,level); X flags := uor(%X'80000000',flags); X cost := -cost; X end X else X begin X p1 := m_bonus(1,10,level); X cost := cost + p1*100; X end; X 7 : if (magik(cursed)) then X begin X p1 := -randint(3); X flags := uor(%X'80000000',flags); X cost := -cost; X end X else X p1 := 1; X 8 : begin X p1 := 5*m_bonus(1,20,level); X cost := cost + p1*100; X end; X 22 : begin `7B Increase damage `7D X todam := m_bonus(1,20,level); X cost := cost + todam*100; 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 := m_bonus(1,20,level); X cost := cost + todam*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 := m_bonus(1,20,level); X cost := cost + todam*100; 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 todam := m_bonus(1,25,level); X tohit := m_bonus(1,25,level); X cost := cost + (tohit+todam)*100; 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 case subval of X 1,2,3,4,5,6 : if (magik(cursed)) then X begin X p1 := -m_bonus(1,20,level); X flags := uor(%X'80000000',flags); X cost := -cost; X end X else X begin X p1 := m_bonus(1,10,level); X cost := cost + p1*100; X end; X 7 : begin X p1 := 5*m_bonus(1,25,level); X if (magik(cursed)) then X begin X p1 := -p1; X cost := -cost; X flags := uor(%X'80000000',flags); X end X else X cost := cost + 100*p1; X end; X otherwise ; X end; X end; X`7B 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 Wands `7D X case subval of X 1 : p1 := randint(10) + 6; X 2 : p1 := randint(8) + 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 : p1 := randint(20) + 12; X 8 : p1 := randint(20) + 12; X 9 : p1 := randint(10) + 6; X 10 : p1 := randint(12) + 6; X 11 : p1 := randint(10) + 12; X 12 : p1 := randint(3) + 3; X 13 : p1 := randint(8) + 6; X 14 : p1 := randint(10) + 6; X 15 : p1 := randint(5) + 3; X 16 : p1 := randint(5) + 3; X 17 : p1 := randint(5) + 6; X 18 : p1 := randint(5) + 4; X 19 : p1 := randint(8) + 4; X 20 : p1 := randint(8) + 4; X 21 : p1 := randint(8) + 4; X 22 : p1 := randint(24) + 12; X 23 : p1 := randint(8) + 4; X 24 : p1 := randint(10) + 6; X otherwise ; X end X end; X 55 : begin `7B Staves `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 : p1 := randint(4) + 5; X 7 : p1 := randint(5) + 3; X 8 : p1 := randint(3) + 1; X 9 : p1 := randint(3) + 1; X 10 : p1 := randint(3) + 1; X 11 : p1 := randint(5) + 6; X 12 : p1 := randint(10) + 12; X 13 : p1 := randint(5) + 6; X 14 : p1 := randint(5) + 6; X 15 : p1 := randint(5) + 6; X 16 : p1 := randint(10) + 12; X 17 : p1 := randint(3) + 4; X 18 : p1 := randint(5) + 6; X 19 : p1 := randint(5) + 6; X 20 : p1 := randint(3) + 4; X 21 : p1 := randint(10) + 12; X 22 : p1 := randint(3) + 4; X 23 : p1 := randint(3) + 4; X 24 : p1 := randint(3) + 1; X 25 : p1 := randint(10) + 6; X otherwise ; X end X end; X 32 : begin `7B Cloaks `7D X if (magik(chance)) then X begin X if (magik(special)) then X case randint(2) of X 1 : begin X name := name + ' of Protection'; X toac := m_bonus(2,40,level); X cost := cost + 250 + toac*100; X end; X 2 : begin X toac := m_bonus(1,20,level); X p1 := randint(3); X flags := uor(%X'00000100',flags); X name := name + ' of Stealth (%P1)'; X cost := cost + p1*500 + toac*100; X end; X end X else X begin X toac := m_bonus(1,20,level); X cost := cost + toac+100; X end; X end `20 X else if (magik(cursed)) then X case randint(3) of X 1 : begin X flags := uor(%X'80000200',flags); X name := name + ' of Irritation'; X ac := 0; X toac := -m_bonus(1,10,level); X tohit := -m_bonus(1,10,level); X todam := -m_bonus(1,10,level); X cost := 0; X end; X 2 : begin X flags := uor(%X'80000000',flags); X name := name + ' of Vulnerability'; X ac := 0; X toac := -m_bonus(10,100,level+50); X cost := 0; X end; X 3 : begin X flags := uor(%X'80000000',flags); X name := name + ' of Enveloping'; X toac := -m_bonus(1,10,level); X tohit := -m_bonus(2,40,level+10); X todam := -m_bonus(2,40,level+10); X cost := 0; X end; X end; X end; X 2 : begin `7B Chests `7D X case (randint(level)+4) of X 1 : begin X name := name + '`5E (Empty)'; X end; X 2 : begin X flags := uor(%X'00000001',flags); X name := name + '`5E (Locked)'; X end; X 3,4 : begin X flags := uor(%X'00000011',flags); +-+-+-+-+-+-+-+- END OF PART 32 +-+-+-+-+-+-+-+-