-+-+-+-+-+-+-+-+ START OF PART 31 -+-+-+-+-+-+-+-+ X`09`09`09`09 p1 := 1; X`09`09`09`09end; X`09`09`09 end; X`09`09`09toac := -m_bonus(1,40,level); X`09`09`09p1 := -m_bonus(1,10,level); X`09`09`09flags := uor(%X'80000000',flags); X`09`09`09cost := 0; X`09`09 end X`09`09 end; X`09 30 : begin `7B Boots `7D X`09`09 if (magik(chance)) then X`09`09 begin X`09`09`09toac := m_bonus(1,20,level); X`09`09`09if (magik(special)) then X`09`09`09 case randint(12) of X`09`09`09 1 : begin X`09`09`09`09 flags := uor(%X'00001000',flags); X`09`09`09`09 name := name + ' of Speed'; X`09`09`09`09 p1 := 1; X`09`09`09`09 cost := cost + 5000; X`09`09`09`09end; X`09`09 2,3,4,5 : begin X`09`09`09`09 flags := uor(%X'00000100',flags); X`09`09`09`09 name := name + ' of Stealth'; X`09`09`09`09 cost := cost + 500; X`09`09`09`09end; X`09`09 otherwise begin X`09`09`09`09 flags := uor(%X'04000000',flags); X`09`09`09`09 name := name + ' of Slow descent'; X`09`09`09`09 cost := cost + 250; X`09`09`09`09end X`09`09`09 end X`09`09 end X`09`09 else if (magik(cursed)) then X`09`09 begin X`09`09`09case randint(3) of X`09`09`09 1 : begin X`09`09`09`09flags := uor(%X'80001000',flags); X`09`09`09`09name := name + ' of Slowness'; X`09`09`09`09p1 := -1; X`09`09`09 end; X`09`09`09 2 : begin X`09`09`09`09flags := uor(%X'80000200',flags); X`09`09`09`09name := name + ' of Noise'; X`09`09`09 end; X`09`09`09 3 : begin X`09`09`09`09flags := uor(%X'80000000',flags); X`09`09`09`09name := name + ' of Great Mass'; X`09`09`09`09weight := weight*5; X`09`09`09 end; X`09`09`09end; X`09`09`09cost := 0; X`09`09`09ac := -m_bonus(2,45,level); X`09`09 end; X`09`09 end; X`09 33 : begin `7B Helms `7D X`09`09 if (magik(chance)) then X`09`09 begin X`09`09`09toac := m_bonus(1,20,level); X`09`09`09if (magik(special)) then X`09`09`09 case subval of X`09`091,2,3,4,5 : case randint(3) of X`09`09`09`091 : begin X`09`09`09`09 p1 := randint(2); X`09`09`09`09 flags := uor(%X'00000008',flags); X`09`09`09`09 name := name + ' of Intelligence'; X`09`09`09`09 cost := cost + p1*500; X`09`09`09`09 end; X`09`09`09`092 : begin X`09`09`09`09 p1 := randint(2); X`09`09`09`09 flags := uor(%X'00000010',flags); X`09`09`09`09 name := name + ' of Wisdom'; X`09`09`09`09 cost := cost + p1*500; X`09`09`09`09 end; X`09`09`09`093 : begin X`09`09`09`09 p1 := 1 + randint(4); X`09`09`09`09 flags := uor(%X'40000000',flags); X`09`09`09`09 name := name + ' of Infra-Vision'; X`09`09`09`09 cost := cost + p1*250; X`09`09`09`09 end; X`09`09`09 end; X`09`096,7,8 : case randint(6) of X`09`09`09`091 : begin X`09`09`09`09 p1 := randint(3); X`09`09`09`09 flags := uor(%X'00800007',flags); X`09`09`09`09 name := name + ' of Might'; X`09`09`09`09 cost := cost + 1000 + p1*500; X`09`09`09`09 end; X`09`09`09`092 : begin X`09`09`09`09 p1 := randint(3); X`09`09`09`09 flags := uor(%X'00000030',flags); X`09`09`09`09 name := name + ' of Lordliness'; X`09`09`09`09 cost := cost + 1000 + p1*500; X`09`09`09`09 end; X`09`09`09`093 : begin X`09`09`09`09 p1 := randint(3); X`09`09`09`09 flags := uor(%X'01380008',flags); X`09`09`09`09 name := name + ' of the Magi'; X`09`09`09`09 cost := cost + 3000 + p1*500; X`09`09`09`09 end; X`09`09`09`094 : begin X`09`09`09`09 p1 := randint(3); X`09`09`09`09 flags := uor(%X'00000020',flags); X`09`09`09`09 name := name + ' of Beauty'; X`09`09`09`09 cost := cost + 750; X`09`09`09`09 end; X`09`09`09`095 : begin X`09`09`09`09 p1 := 1 + randint(4); X`09`09`09`09 flags := uor(%X'01000040',flags); X`09`09`09`09 name := name + ' of Seeing'; X`09`09`09`09 cost := cost + 1000 + p1*100; X`09`09`09`09 end; X`09`09`09`096 : begin X`09`09`09`09 flags := uor(%X'00000800',flags); X`09`09`09`09 name := name + ' of Regeneration'; X`09`09`09`09 cost := cost + 1500; X`09`09`09`09 end; X`09`09`09 end; X`09`09`09 end; X`09`09 end X`09`09 else if (magik(cursed)) then X`09`09 begin X`09`09`09toac := -m_bonus(1,45,level); X`09`09`09flags := uor(%X'80000000',flags); X`09`09`09cost := 0; X`09`09`09if (magik(special)) then X`09`09`09 case randint(7) of X`09`09`09 1 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(%X'00000008',flags); X`09`09`09`09 name := name + ' of Stupidity'; X`09`09`09`09end; X`09`09`09 2 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(%X'00000010',flags); X`09`09`09`09 name := name + ' of Dullness'; X`09`09`09`09end; X`09`09`09 3 : begin X`09`09`09`09 flags := uor(%X'08000000',flags); X`09`09`09`09 name := name + ' of Blindness'; X`09`09`09`09end; X`09`09`09 4 : begin X`09`09`09`09 flags := uor(%X'10000000',flags); X`09`09`09`09 name := name + ' of Timidness'; X`09`09`09`09end; X`09`09`09 5 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(%X'00000001',flags); X`09`09`09`09 name := name + ' of Weakness'; X`09`09`09`09end; X`09`09`09 6 : begin X`09`09`09`09 flags := uor(%X'00000400',flags); X`09`09`09`09 name := name + ' of Teleportation'; X`09`09`09`09end; X`09`09`09 7 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(%X'00000020',flags); X`09`09`09`09 name := name + ' of Ugliness'; X`09`09`09`09end; X`09`09`09 end; X`09`09`09p1 := p1*randint(5); X`09`09 end; X`09`09 end; X`09 45 : begin `7B Rings `7D X`09`09 case subval of X`09`091,2,3,4,5,6 : if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 p1 := -m_bonus(1,20,level); X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09else X`09`09`09`09 begin X`09`09`09`09 p1 := m_bonus(1,10,level); X`09`09`09`09 cost := cost + p1*100; X`09`09`09`09 end; X`09`09`09 7 : if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 p1 := -randint(3); X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09else X`09`09`09`09 p1 := 1; X`09`09`09 8 : begin X`09`09`09`09 p1 := 5*m_bonus(1,20,level); X`09`09`09`09 cost := cost + p1*100; X`09`09`09`09end; X`09`09`09 22 : begin `7B Increase damage `7D X`09`09`09`09 todam := m_bonus(1,20,level); X`09`09`09`09 cost := cost + todam*100; X`09`09`09`09 if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 todam := -todam; X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09end; X`09`09`09 23 : begin `7B Increase To-Hit `7D X`09`09`09`09 tohit := m_bonus(1,20,level); X`09`09`09`09 cost := cost + todam*100; X`09`09`09`09 if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 tohit := -tohit; X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09end; X`09`09`09 24 : begin `7B Protection `7D X`09`09`09`09 toac := m_bonus(1,20,level); X`09`09`09`09 cost := cost + todam*100; X`09`09`09`09 if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 toac := -toac; X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09end; X`09`09`09 33 : begin `7B Slaying `7D X`09`09`09`09 todam := m_bonus(1,25,level); X`09`09`09`09 tohit := m_bonus(1,25,level); X`09`09`09`09 cost := cost + (tohit+todam)*100; X`09`09`09`09 if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 tohit := -tohit; X`09`09`09`09 todam := -todam; X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09end; X`09`09`09 otherwise ; X`09`09`09 end; X`09`09 end; X`09 40 : begin `7B Amulets `7D X`09`09 case subval of X`09`091,2,3,4,5,6 : if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 p1 := -m_bonus(1,20,level); X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 cost := -cost; X`09`09`09`09 end X`09`09`09`09else X`09`09`09`09 begin X`09`09`09`09 p1 := m_bonus(1,10,level); X`09`09`09`09 cost := cost + p1*100; X`09`09`09`09 end; X`09`09`09 7 : begin X`09`09`09`09 p1 := 5*m_bonus(1,25,level); X`09`09`09`09 if (magik(cursed)) then X`09`09`09`09 begin X`09`09`09`09 p1 := -p1; X`09`09`09`09 cost := -cost; X`09`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09`09 end X`09`09`09`09 else X`09`09`09`09 cost := cost + 100*p1; X`09`09`09`09end; X`09`09`09 otherwise ; X`09`09`09 end; X`09`09 end; X`09`09`09`7B Subval should be even for store, odd for dungeon`7D X`09`09`09`7B Dungeon found ones will be partially charged `7D X`09 15 : begin `7B Lamps and torches`7D X`09`09 if ((subval mod 2) = 1) then X`09`09 p1 := randint(p1); X`09`09 end; X`09 65 : begin `7B Wands `7D X`09`09 case subval of X`09`09`091 : p1 := randint(10) + 6; X`09`09`092 : p1 := randint(8) + 6; X`09`09`093 : p1 := randint(5) + 6; X`09`09`094 : p1 := randint(8) + 6; X`09`09`095 : p1 := randint(4) + 3; X`09`09`096 : p1 := randint(8) + 6; X`09`09`097 : p1 := randint(20) + 12; X`09`09`098 : p1 := randint(20) + 12; X`09`09`099 : p1 := randint(10) + 6; X`09`09`0910 : p1 := randint(12) + 6; X`09`09`0911 : p1 := randint(10) + 12; X`09`09`0912 : p1 := randint(3) + 3; X`09`09`0913 : p1 := randint(8) + 6; X`09`09`0914 : p1 := randint(10) + 6; X`09`09`0915 : p1 := randint(5) + 3; X`09`09`0916 : p1 := randint(5) + 3; X`09`09`0917 : p1 := randint(5) + 6; X`09`09`0918 : p1 := randint(5) + 4; X`09`09`0919 : p1 := randint(8) + 4; X`09`09`0920 : p1 := randint(6) + 2; X`09`09`0921 : p1 := randint(4) + 2; X`09`09`0922 : p1 := randint(8) + 6; X`09`09`0923 : p1 := randint(5) + 2; X`09`09`0924 : p1 := randint(12) + 12; X`09`09`09otherwise ; X`09`09 end X`09`09 end; X`09 55 : begin `7B Staffs `7D X`09`09 case subval of X`09`09`091 : p1 := randint(20) + 12; X`09`09`092 : p1 := randint(8) + 6; X`09`09`093 : p1 := randint(5) + 6; X`09`09`094 : p1 := randint(20) + 12; X`09`09`095 : p1 := randint(15) + 6; X`09`09`096 : p1 := randint(4) + 5; X`09`09`097 : p1 := randint(5) + 3; X`09`09`098 : p1 := randint(3) + 1; X`09`09`099 : p1 := randint(3) + 1; X`09`09`0910 : p1 := randint(3) + 1; X`09`09`0911 : p1 := randint(5) + 6; X`09`09`0912 : p1 := randint(10) + 12; X`09`09`0913 : p1 := randint(5) + 6; X`09`09`0914 : p1 := randint(5) + 6; X`09`09`0915 : p1 := randint(5) + 6; X`09`09`0916 : p1 := randint(10) + 12; X`09`09`0917 : p1 := randint(3) + 4; X`09`09`0918 : p1 := randint(5) + 6; X`09`09`0919 : p1 := randint(5) + 6; X`09`09`0920 : p1 := randint(3) + 4; X`09`09`0921 : p1 := randint(10) + 12; X`09`09`0922 : p1 := randint(3) + 4; X`09`09`0923 : p1 := randint(3) + 4; X`09`09`0924 : p1 := randint(3) + 1; X`09`09`0925 : p1 := randint(10) + 6; X`09`09`09otherwise ; X`09`09 end X`09`09 end; X`09 32 : begin `7B Cloaks `7D X`09`09 if (magik(chance)) then X`09`09 begin X`09`09`09if (magik(special)) then X`09`09`09 case randint(2) of X`09`091 : begin X`09`09`09`09 name := name + ' of Protection'; X`09`09`09`09 toac := m_bonus(2,40,level); X`09`09`09`09 cost := cost + 250 + toac*100; X`09`09`09`09end; X`09`092 : begin X`09`09`09`09 toac := m_bonus(1,20,level); X`09`09`09`09 p1 := randint(3); X`09`09`09`09 flags := uor(%X'00000100',flags); X`09`09`09`09 name := name + ' of Stealth (%P1)'; X`09`09`09`09 cost := cost + p1*500 + toac*100; X`09`09`09`09end; X`09`09`09 end X`09`09`09else X`09`09`09 begin X`09`09`09 toac := m_bonus(1,20,level); X`09`09`09 cost := cost + toac+100; X`09`09`09 end; X`09`09 end X`09`09 else if (magik(cursed)) then X`09`09 case randint(3) of X`09`09`091 : begin X`09`09`09 flags := uor(%X'80000200',flags); X`09`09`09 name := name + ' of Irritation'; X`09`09`09 ac := 0; X`09`09`09 toac := -m_bonus(1,10,level); X`09`09`09 tohit := -m_bonus(1,10,level); X`09`09`09 todam := -m_bonus(1,10,level); X`09`09`09 cost := 0; X`09`09`09 end; X`09`09`092 : begin X`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09 name := name + ' of Vulnerability'; X`09`09`09 ac := 0; X`09`09`09 toac := -m_bonus(10,100,level+50); X`09`09`09 cost := 0; X`09`09`09 end; X`09`09`093 : begin X`09`09`09 flags := uor(%X'80000000',flags); X`09`09`09 name := name + ' of Enveloping'; X`09`09`09 toac := -m_bonus(1,10,level); X`09`09`09 tohit := -m_bonus(2,40,level+10); X`09`09`09 todam := -m_bonus(2,40,level+10); X`09`09`09 cost := 0; X`09`09`09 end; X`09`09 end; X`09`09 end; X`09 2 : begin `7B Chests `7D X`09`09 case (randint(level)+4) of X`09`09 1 : begin X`09`09`09`09 name := name + '`5E (Empty)'; X`09`09`09`09 end; X`09`09 2 : begin X`09`09`09`09 flags := uor(%X'00000001',flags); X`09`09`09`09 name := name + '`5E (Locked)'; X`09`09`09`09 end; X`09`09 3,4 : begin X`09`09`09`09 flags := uor(%X'00000011',flags); X`09`09`09`09 name := name + '`5E (Poison Needle)'; X`09`09`09`09 end; X`09`09 5,6 : begin X`09`09`09`09 flags := uor(%X'00000021',flags); X`09`09`09`09 name := name + '`5E (Poison Needle)'; X`09`09`09`09 end; X`09`09 7,8,9 : begin X`09`09`09`09 flags := uor(%X'00000041',flags); X`09`09`09`09 name := name + '`5E (Gas Trap)'; X`09`09`09`09 end; X`09`09 10,11 : begin X`09`09`09`09 flags := uor(%X'00000081',flags); X`09`09`09`09 name := name + '`5E (Explosion Device)'; X`09`09`09`09 end; X`09`09 12,13,14 : begin X`09`09`09`09 flags := uor(%X'00000101',flags); X`09`09`09`09 name := name + '`5E (Summoning Runes)'; X`09`09`09`09 end; X`09`09 15,16,17 : begin X`09`09`09`09 flags := uor(%X'00000071',flags); X`09`09`09`09 name := name + '`5E (Multiple Traps)'; X`09`09`09`09 end; X`09`09 otherwise begin X`09`09`09`09 flags := uor(%X'00000181',flags); X`09`09`09`09 name := name + '`5E (Multiple Traps)'; +-+-+-+-+-+-+-+- END OF PART 31 +-+-+-+-+-+-+-+-