-+-+-+-+-+-+-+-+ START OF PART 46 -+-+-+-+-+-+-+-+ X`09`09`09 else if (wpn_type < 96) then X`09`09`09`09 Ego_sword(x) X`09`09`09 else`20 X`09`09`09`09 begin X`09`09`09`09 Magic_sword(x); X`09`09`09`09 Ego_sword(x); X`09`09`09`09 end X`09`09`09 end`20 X`09`09 else if (magik(cursed)) then X`09`09 begin X`09`09`09tohit := -m_bonus(1,55,level); X`09`09`09todam := -m_bonus(1,55,level); X`09`09`09flags := uor(cursed_worn_bit,flags); X`09`09`09cost := 0; X`09`09 end X`09`09 end X`09 end; X`7B Bows, crossbows, and slings `7D X`09 bow_crossbow_or_sling : X`09`09 begin X`09`09 if magik(chance) then X`09`09 begin X `09`09 tohit := m_bonus(1,30,level); X`09`09 if magik(special) then`20 X`09`09`09 begin X `09`09`09 flags2 := uor(flags2,sharp_worn_bit); X`09`09`09 tohit := tohit + 5; X`09`09`09 cost := cost + 300000; X`09`09`09 name := name + ' of Criticals'; X`09`09`09 end; X`09`09 end X`09`09 else if (magik(cursed)) then X`09`09 begin X`09`09`09tohit := -m_bonus(1,50,level); X`09`09`09flags := uor(cursed_worn_bit,flags); X`09`09`09cost := 0; `20 X`09`09 end; X`09`09 end; X`7B Digging tools `7D X`09 pick_or_shovel : X`09`09 begin X`09`09 if magik(chance) then X`09`09 case randint(3) of X`09`09`091,2:begin`7B25`7D X`09`09`09 p1 := m_bonus(2,25,level); X`09`09`09 cost := cost + p1*10000; X`09`09`09 end; X`09`09`093 : begin X`09`09`09 p1 := -m_bonus(1,30,level); X`09`09`09 cost := 0; X`09`09`09 flags := uor(cursed_worn_bit,flags); X`09`09`09 end; X`09`09 end; X`09`09 end; X`7B Gloves and Gauntlets `7D X`09 gloves_and_gauntlets : X`09`09 begin 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 if ((subval = 5) and (randint(10)=1)) then X`09`09`09`09begin X`09`09`09`09 name := name + ' of the Hive'; X`09`09`09`09 flags := uor(flags,dexterity_worn_bit); X`09`09`09`09 p1 := 2; X`09`09`09`09 cost := cost + 50000; X`09`09`09`09end X`09`09`09 else X`09`09`09 case randint(5) of X`09`09`09 1 :begin X`09`09`09`09 flags := uor(free_action_worn_bit,flags); X`09`09`09`09 name := name + ' of Free Action'; X`09`09`09`09 cost := cost + 100000; X`09`09`09`09end; X`09`09`09 2 :begin X`09`09`09`09 tohit := 1 + randint(3); X`09`09`09`09 todam := 1 + randint(3); X`09`09`09`09 name := name + ' of Slaying'; X`09`09`09`09 cost := cost + (tohit+todam)*25000; X`09`09`09`09end; X`09`09`09 3 : begin X`09`09`09`09 flags2 := uor(flags2,disarm_worn_bit); X`09`09`09`09 flags := uor(flags,Feather_fall_worn_bit+ X`09`09`09`09`09`09See_invisible_worn_bit); X`09`09`09`09 p1 := m_bonus(5,50,level); X`09`09`09`09 cost := cost + 20000 + p1*5; X`09`09`09`09 name := name + ' of Thievery (%P1)'; X`09`09`09`09end; X`09`09`09 4,5 : begin X`09`09`09`09 flags := uor(flags,Slow_digestion_worn_bit+ X`09`09`09`09`09`09`09Strength_worn_bit); X`09`09`09`09 p1 := randint(4); X`09`09`09`09 name := name + ' of Ogre Power'; X`09`09`09`09 cost := cost + 150000; 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`09if (magik(special)) then X`09`09`09 case randint(3) of X`09`09`09 1 : begin X`09`09`09`09 flags := uor(flags,cursed_worn_bit+ X`09`09`09`09`09`09 dexterity_worn_bit); X`09`09`09`09 name := name + ' of Clumsiness'; X`09`09`09`09 p1 := 1; X`09`09`09`09end; X`09`09`09 2 : begin X`09`09`09`09 flags := uor(flags,cursed_worn_bit+ X`09`09`09`09`09`09 strength_worn_bit); X`09`09`09`09 name := name + ' of Weakness'; X`09`09`09`09 p1 := 1; X`09`09`09`09end; X`09`09`09 3 : begin X`09`09`09`09 flags := uor(flags,cursed_worn_bit+ X`09`09`09`09`09`09 intelligence_worn_bit); X`09`09`09`09 name := name + ' of Ogre Intelligence'; 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(cursed_worn_bit,flags); X`09`09`09cost := 0; X`09`09 end X`09`09 end; X`7B Boots `7D X`09 boots : X`09`09 begin 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(16) of X`09`09`09 1 : begin X`09`09`09`09 flags := uor(speed_worn_bit,flags); X`09`09`09`09 name := name + ' of Speed'; X`09`09`09`09 p1 := 1; X`09`09`09`09 cost := cost + 500000; X`09`09`09`09end; X`09`09 2..5 : begin X`09`09`09`09 flags := uor(stealth_worn_bit,flags); X`09`09`09`09 name := name + ' of Stealth'; X`09`09`09`09 cost := cost + 50000; X`09`09`09`09end; X`09`09 otherwise begin X`09`09`09`09if ((subval = 4) and (randint(6)=1))then X`09`09`09`09begin X`09`09`09`09 flags := uor(charisma_worn_bit+ X`09`09`09`09`09`09feather_fall_worn_bit+ X`09`09`09`09`09`09see_invisible_worn_bit+ X`09`09`09`09`09`09free_action_worn_bit,flags); X`09`09`09`09 flags2 := uor(magic_proof_worn_bit,flags2); X`09`09`09`09 p1 := 3; X`09`09`09`09 name := name + ' of Dryadkind'; X`09`09`09`09 cost := 1 `7Bsee magi item`7D; X`09`09`09`09end X`09`09`09`09else X`09`09`09`09begin X`09`09`09`09 flags := uor(feather_fall_worn_bit,flags); X`09`09`09`09 name := name + ' of Slow descent'; X`09`09`09`09 cost := cost + 25000; 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(flags,cursed_worn_bit+ X`09`09`09`09`09`09 speed_worn_bit); 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(flags,cursed_worn_bit+ X`09`09`09`09`09`09 aggravation_worn_bit); 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(flags,cursed_worn_bit); 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 end; X`7B Helms `7D X`09 helm : X`09`09 begin 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`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(Intelligence_worn_bit,flags); X`09`09`09`09 name := name + ' of Intelligence'; X`09`09`09`09 cost := cost + p1*50000; 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(wisdom_worn_bit,flags); X`09`09`09`09 name := name + ' of Wisdom'; X`09`09`09`09 cost := cost + p1*50000; 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(infra_vision_worn_bit,flags); X`09`09`09`09 name := name + ' of Infra-Vision'; X`09`09`09`09 cost := cost + p1*25000; X`09`09`09`09 end; X`09`09`09 end; X`09`09 6,7,8,9,10 : 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(flags,free_action_worn_bit+ X`09`09`09`09`09`09`09 constitution_worn_bit+ X`09`09`09`09`09`09`09 strength_worn_bit+ X`09`09`09`09`09`09`09 dexterity_worn_bit); X`09`09`09`09 name := name + ' of Might'; X`09`09`09`09 cost := cost + 100000 + p1*50000; 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(flags,wisdom_worn_bit+ X`09`09`09`09`09`09`09 charisma_worn_bit); X`09`09`09`09 name := name + ' of Lordliness'; X`09`09`09`09 cost := cost + 100000 + p1*50000; 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(flags,free_action_worn_bit+ X`09`09`09`09`09`09`09 strength_worn_bit+ X`09`09`09`09`09`09`09 constitution_worn_bit+ X`09`09`09`09`09`09`09 dexterity_worn_bit); X`09`09`09`09 name := name + ' of the Magi'; X`09`09`09`09 cost := cost + 300000 + p1*50000; 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(flags,charisma_worn_bit); X`09`09`09`09 name := name + ' of Beauty'; X`09`09`09`09 cost := cost + 75000; 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(flags,see_invisible_worn_bit+ X`09`09`09`09`09`09`09 searching_worn_bit); X`09`09`09`09 name := name + ' of Seeing'; X`09`09`09`09 cost := cost + 100000 + p1*10000; X`09`09`09`09 end; X`09`09`09`096 : begin X`09`09`09`09 flags := uor(flags,regeneration_worn_bit); X`09`09`09`09 name := name + ' of Regeneration'; X`09`09`09`09 cost := cost + 150000; X`09`09`09`09 end; X`09`09`0911 : `09begin X`09`09`09`09 name := name + ' of Hobbitkind'; X`09`09`09`09 flags := uor(flags,Infra_vision_worn_bit+ X`09`09`09`09`09`09see_invisible_worn_bit+ X`09`09`09`09`09`09free_action_worn_bit+ X`09`09`09`09`09`09searching_worn_bit); X`09`09`09`09 cost := cost + 170000; X`09`09`09`09 p1 := 5; X`09`09`09`09end; 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(cursed_worn_bit,flags); X`09`09`09cost := 0; X`09`09`09if (magik(special)) then X`09`09`09 case randint(15) of X`09`09`09 1,2 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(intelligence_worn_bit,flags); X`09`09`09`09 name := name + ' of Stupidity'; X`09`09`09`09end; X`09`09`09 3,4 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(flags,wisdom_worn_bit); X`09`09`09`09 name := name + ' of Dullness'; X`09`09`09`09end; X`09`09`09 5,6 : begin X`09`09`09`09 flags := uor(blindness_worn_bit,flags); X`09`09`09`09 name := name + ' of Blindness'; X`09`09`09`09end; X`09`09`09 7,8 : begin X`09`09`09`09 flags := uor(timidness_worn_bit,flags); X`09`09`09`09 name := name + ' of Timidness'; X`09`09`09`09end; X`09`09`09 9,10 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(strength_worn_bit,flags); X`09`09`09`09 name := name + ' of Weakness'; X`09`09`09`09end; X`09`09`09 11,12 : begin X`09`09`09`09 flags := uor(teleportation_worn_bit,flags); X`09`09`09`09 name := name + ' of Teleportation'; X`09`09`09`09end; X`09`09`09 13,14 : begin X`09`09`09`09 p1 := -1; X`09`09`09`09 flags := uor(charisma_worn_bit,flags); X`09`09`09`09 name := name + ' of Ugliness'; X`09`09`09`09end; X`09`09`09 15 : begin X`09`09`09`09p1 := -5; X`09`09`09`09name := name + ' of **TOTAL DOOM**'; X`09`09`09`09flags := uor(flags,cursed_worn_bit+ X`09`09`09`09`09`09strength_worn_bit+ X`09`09`09`09`09`09dexterity_worn_bit+ X`09`09`09`09`09`09Constitution_worn_bit+ X`09`09`09`09`09`09Intelligence_worn_bit+ X`09`09`09`09`09`09wisdom_worn_bit+ X`09`09`09`09`09`09charisma_worn_bit+ X`09`09`09`09`09`09stealth_worn_bit+ X`09`09`09`09`09`09aggravation_worn_bit+ X`09`09`09`09`09`09teleportation_worn_bit+ X`09`09`09`09`09`09blindness_worn_bit+ X`09`09`09`09`09`09timidness_worn_bit); X`09`09`09`09flags2 := uor(flags2,hunger_worn_bit+ X`09`09`09`09`09`09known_cursed_bit); 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`7Bgirdles, belts and buckles`7D X`09 belt : X`09`09 begin 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`09`091 : begin`20 X`09`09`09 flags2 := uor(increase_carry_worn_bit,flags2); X`09`09`09 case randint(16) of X`09`09`09`091 : if (randint(3) = 1) then X`09`09`09 begin X`09`09`09`09 p1 := 7; X`09`09`09`09 flags := uor(resist_lightning_worn_bit+ X`09`09`09`09`09`09resist_fire_worn_bit+ X`09`09`09`09`09`09resist_cold_worn_bit+ X`09`09`09`09`09`09resist_acid_worn_bit+ X`09`09`09`09`09`09regeneration_worn_bit+ X`09`09`09`09`09`09free_action_worn_bit,flags); X`09`09`09`09 flags2:=uor(magic_proof_worn_bit,flags2); X`09`09`09`09 name := name + ' of Titan Strength'; X`09`09`09`09 cost := cost + 7500000; X`09`09`09`09 end X`09`09`09`09 else X`09`09`09`09 begin X`09`09`09`09 p1 := 6; X`09`09`09`09 flags := uor(resist_lightning_worn_bit+ X`09`09`09`09`09`09resist_acid_worn_bit,flags); X`09`09`09`09 flags2:=uor(magic_proof_worn_bit,flags2); X`09`09`09`09 name := name+ ' of Storm Giant Strength'; X`09`09`09`09 cost := cost + 3500000; X`09`09`09`09 end; X`09`09`09`092 : begin X`09`09`09`09 p1 := 5; X`09`09`09`09 flags := uor(resist_lightning_worn_bit+ X`09`09`09`09`09`09resist_acid_worn_bit,flags); X`09`09`09`09 name := name+ ' of Cloud Giant Strength'; X`09`09`09`09 cost := cost + 2000000; X`09`09`09`09 end; X`09`09`09`093,4 : begin X`09`09`09`09 p1 := 4; X`09`09`09`09 flags := uor(resist_fire_worn_bit,flags); X`09`09`09`09 name := name + ' of Fire Giant Strength'; X`09`09`09`09 cost := cost + 1750000; X`09`09`09`09 end; X`09`09`09`095,6,7 : begin X`09`09`09`09 p1 := 3; X`09`09`09`09 flags := uor(resist_cold_worn_bit,flags); X`09`09`09`09 name := name+ ' of Frost Giant Strength'; X`09`09`09`09 cost := cost + 1250000; X`09`09`09`09 end; X`09`09`09`098,9,10,11 : begin X`09`09`09`09 p1 := 2; X`09`09`09`09 name := name+ ' of Stone Giant Strength'; X`09`09`09`09 cost := cost + 800000; X`09`09`09`09 end; X`09`09`09`0912,13,14,15,16 : begin X`09`09`09`09 p1 := 1; X`09`09`09`09 name := name + ' of Hill Giant Strength'; X`09`09`09`09 cost := cost + 600000; X`09`09`09`09 end; X`09`09`09`09 end; X`09`09`09`09 tohit := p1;`20 X`09`09`09`09 todam := p1; X`09`09`09`09end; X X`09`09 10,11 : case randint(2) of X`09`09`09`091 : begin X`09`09`09`09 toac := toac + randint(5); X`09`09`09`09 flags2 := uor(magic_proof_worn_bit,flags2); X`09`09`09`09 name := name + ' of Deflection'; X`09`09`09`09 cost := cost + toac*20000; X`09`09`09`09 end; X`09`09`09`092 : begin X`09`09`09`09 flags := uor(flags,sustain_stat_worn_bit+ +-+-+-+-+-+-+-+- END OF PART 46 +-+-+-+-+-+-+-+-