# File: a_info.txt # This file is used to initialize the "lib/raw/a_info.raw" file, which # is used to initialize the "artifact" information for the Angband game. # Do not modify this file unless you know exactly what you are doing, # unless you wish to risk possible system crashes and broken savefiles. # After modifying this file, delete the "lib/raw/a_info.raw" file. # The artifact indexes are defined in "defines.h", and must not be # changed. # Artifacts 1-15 are "special", 16-63 are "armor", and 64-127 are # "weapons". # === Understanding a_info.txt === # N: serial number : item name # I: tval : sval : pval # W: depth : rarity : weight : cost # P: base armor class : base damage : plus to-hit : plus to-dam : plus # to-ac # F: flag | flag |etc # 'N' indicates the beginning of an entry. The serial number must # increase for each new item and artifact activations depend on the # serial number. # 'I' is for basic information. The tval is for the type of item, the # sval identifies the subtype and the pval indicates the amount of # effect the item has, if applicable. # 'W' is for extra information. Depth is the depth the object is # normally found at, rarity determines how common the object is, # weight is in tenth-pounds and cost is the item's value. # 'P' is for power information. The items base armor class, its base # damage and pluses to-hit, to-dam and to-ac. # 'F' is for flags. These are fairly self-explanatory. As many F: # lines may be used as are needed to specify all the flags and flags # are separated by the '|' symbol. # Version stamp (required) V:2.7.5 # The Phial of Galadriel N:1:of Galadriel I:39:4:1 W:20:1:10:2000 P:0:1d1:0:0:0 F:ACTIVATE | SENSE | INSTA_ART | LITE L:USE: msgf("The phial wells with clear light...") L:USE: lite_area(damroll(2, 15), 3) L:USE: object.timeout = rand_range(10, 20) L:DESC: return "illumination every 10-20 turns" # The Star of Elendil N:2:of Elendil I:39:5:1 W:52:25:5:5000 P:0:1d1:0:0:0 F:ACTIVATE | SEE_INVIS | HOLD_LIFE | INSTA_ART | SPEED | LITE L:USE: msgf("The star shines brightly...") L:USE: map_area() L:USE: lite_area(damroll(2, 15), 3) L:USE: object.timeout = rand_range(50, 100) L:DESC: return "magic mapping and illumination every 50-100 turns" # The Arkenstone of Thrain -> JoJ # Was +2 WIS/DEX N:3:of Judgement I:39:6:3 W:80:50:5:15000 P:0:1d1:0:0:0 F:ACTIVATE | SEE_INVIS | HOLD_LIFE | RES_CONF | RES_CHAOS | F:INSTA_ART | SPEED | WIS | INT | LITE L:USE: msgf("The Jewel flashes bright red!") L:USE: wiz_lite() L:USE: msgf("The Jewel drains your vitality...") L:USE: take_hit(damroll(3, 8), "the Jewel of Judgement") L:USE: detect_traps(TRUE); detect_doors(); detect_stairs() L:USE: if (get_check("Activate recall? ") ~= nil) then word_of_recall() end L:USE: object.timeout = rand_range(20, 40) L:DESC: return "dangerous clairvoyance and recall every 20-40 turns" L:TIMED: if randint0(999) == 0 and bAnd(player.flags[2], TR2_NO_MAGIC) == 0 L:TIMED: and not player.tim_invuln then L:TIMED: msgf("The Jewel of Judgement drains life from you!") L:TIMED: take_hit(player.lev, "The Jewel of Judgement") L:TIMED: end L:SPOIL: return "Damages player randomly" # The Amulet of Carlammas N:4:of Carlammas I:40:10:2 W:80:10:3:5000 F:CON | HIDE_TYPE | ACTIVATE | RES_FIRE | INSTA_ART L:USE: msgf("The amulet lets out a shrill wail...") L:USE: inc_protevil(randint1(25) + 3 * player.lev) L:USE: object.timeout = rand_range(225, 450) L:DESC: return "protection from evil every 225-450 turns" # The Amulet of Ingwe N:5:of Ingwe I:40:11:3 W:95:30:3:15000 F:WIS | CHR | INFRA | HIDE_TYPE | F:SEE_INVIS | FREE_ACT | ACTIVATE | F:RES_ACID | RES_COLD | RES_ELEC | F:INSTA_ART L:USE: msgf("The amulet floods the area with goodness...") L:USE: dispel_evil(player.lev * 5) L:USE: object.timeout = rand_range(300, 600) L:DESC: return "dispel evil (level * 5) every 300-600 turns" # The Necklace of the Dwarves N:6:of the Dwarves I:40:12:3 W:100:50:3:20000 F:STR | CON | INFRA | HIDE_TYPE | F:SEE_INVIS | FREE_ACT | REGEN | LITE | INSTA_ART # The Incandescent Globe of Sawall N:7:of Sawall I:39:3:3 W:35:10:5:4000 P:0:1d1:0:0:0 F:INSTA_ART | INFRA | SH_FIRE | SH_ELEC | LITE # The Ring of Barahir -> Frakir N:8:'Frakir' I:45:32:1 W:80:25:2:7500 F:STR | INT | WIS | DEX | CON | CHR | STEALTH | HIDE_TYPE | F:RES_POIS | ACTIVATE | SEE_INVIS | SENSE | INSTA_ART L:USE: msgf("You order Frakir to strangle your opponent.") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: if drain_life(dir, 200) then object.timeout = rand_range(100, 200) end L:DESC: return "a strangling attack (200) every 100-200 turns" # The Ring of Tulkas N:9:of Tulkas I:45:33:4 W:100:50:2:17500 F:STR | DEX | CON | HIDE_TYPE | ACTIVATE | SPEED | INSTA_ART L:USE: msgf("The ring glows brightly...") L:USE: inc_fast(rand_range(75, 150)) L:USE: object.timeout = rand_range(150, 300) L:DESC: return "haste self (75-150) every 150-300 turns" # The Ring of Power (Narya) N:10:of Power (Narya) I:45:34:1 W:100:30:2:100000 P:0:1d1:10:10:0 F:STR | INT | WIS | DEX | CON | CHR | SPEED | HIDE_TYPE | F:ACTIVATE | FREE_ACT | SEE_INVIS | F:SLOW_DIGEST | REGEN | SUST_STR | SUST_DEX | IM_FIRE | F:INSTA_ART L:USE: msgf("The ring glows deep red...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_FIRE, dir, 250, 3) L:USE: object.timeout = rand_range(225, 450) L:DESC: return "fire ball (250, rad. 3) every 225-450 turns" # The Ring of Power (Nenya) N:11:of Power (Nenya) I:45:35:2 W:105:40:2:200000 P:0:1d1:11:11:0 F:STR | INT | WIS | DEX | CON | CHR | SPEED | HIDE_TYPE | F:ACTIVATE | HOLD_LIFE | FREE_ACT | SEE_INVIS | F:FEATHER | REGEN | SHOW_MODS | F:SUST_INT | SUST_WIS | IM_COLD | F:INSTA_ART L:USE: msgf("The ring glows bright white...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_COLD, dir, 400, 3) L:USE: object.timeout = rand_range(325, 650) L:DESC: return "frost ball (400, rad. 3) every 325-650 turns" L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" # The Ring of Power (Vilya) N:12:of Power (Vilya) I:45:36:3 W:105:50:2:300000 P:0:1d1:12:12:0 F:STR | INT | WIS | DEX | CON | CHR | SPEED | HIDE_TYPE | F:ACTIVATE | HOLD_LIFE | FREE_ACT | SEE_INVIS | F:FEATHER | SLOW_DIGEST | REGEN | F:SUST_INT | SUST_WIS | SUST_STR | SUST_DEX | IM_ELEC | F:INSTA_ART L:USE: msgf("The ring glows bright white...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_ELEC, dir, 500, 3) L:USE: object.timeout = rand_range(425, 850) L:DESC: return "lightning ball (500, rad. 3) every 425-850 turns" L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" # The Ring of Power (The One Ring) N:13:of Power (The One Ring) I:45:37:5 W:100:100:2:5000000 P:0:1d1:15:15:0 F:STR | INT | WIS | DEX | CON | CHR | SPEED | HIDE_TYPE | F:ACTIVATE | CURSED | HEAVY_CURSE | PERMA_CURSE | F:AGGRAVATE | DRAIN_EXP | SEE_INVIS | REGEN | TY_CURSE | F:IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | F:SUST_STR | SUST_DEX | SUST_CON | F:SUST_INT | SUST_WIS | SUST_CHR | F:INSTA_ART L:USE: msgf("The ring glows intensely black...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: ring_of_power(dir) L:USE: object.timeout = rand_range(450, 900) L:DESC: return "bizarre things every 450-900 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability & high resist" N:14:of Elemental Mastery I:45:50:4 W:105:50:2:30000 F:STR | INT | DEX | SPEED | STEALTH | HIDE_TYPE | F:RES_FIRE | RES_COLD | RES_ACID | RES_ELEC | RES_POIS | F:TELEPATHY | F:INSTA_ART | ACTIVATE L:USE: msgf("The ring glows in multiple colours...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_MISSILE, dir, 800, 3) L:USE: object.timeout = rand_range(250, 500) L:DESC: return "ball of the elements (800, rad. 3) every 250-500 turns" # Artifact 15 is unused # The Multi-Hued Dragon Scale Mail 'Razorback' # Was (-2) INT | WIS | STEALTH | HIDE_TYPE, (-3) to hit, 30 pounds (?) N:16:'Razorback' I:38:6:0 W:90:9:500:40000 P:30:2d4:-4:0:25 F:RES_FIRE | RES_COLD | RES_POIS | RES_LITE | RES_DARK | F:LITE | SEE_INVIS | AGGRAVATE | FREE_ACT | IM_ELEC | F:ACTIVATE | INSTA_ART L:USE: msgf("Your armor is surrounded by lightning...") L:USE: scatter_ball(damroll(5, 3), GF_ELEC, 1000, 3) L:USE: object.timeout = 100 L:DESC: return "star ball (1000) every 100 turns"; # The Power Dragon Scale Mail 'Bladeturner' # Was (-3) DEX | HIDE_TYPE, (-4) to hit, 50 pounds (?) N:17:'Bladeturner' I:38:30:0 W:95:3:600:50000 P:50:2d4:-8:0:35 F:HOLD_LIFE | REGEN | F:RES_ACID | RES_FIRE | RES_COLD | RES_ELEC | RES_POIS | FEATHER | F:RES_NETHER | RES_NEXUS | RES_CHAOS | RES_LITE | RES_DARK | F:RES_SHARDS | RES_SOUND | RES_DISEN | RES_BLIND | RES_CONF | F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | F:ACTIVATE | INSTA_ART L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: msgf("You breathe the elements.") L:USE: fire_ball(GF_MISSILE, dir, 1000, 4) L:USE: msgf("Your armor glows many colours...") L:USE: clear_afraid() L:USE: inc_shero(rand_range(50, 100)) L:USE: hp_player(30) L:USE: inc_blessed(rand_range(50, 100)) L:USE: inc_oppose_acid(rand_range(50, 100)) L:USE: inc_oppose_elec(rand_range(50, 100)) L:USE: inc_oppose_fire(rand_range(50, 100)) L:USE: inc_oppose_cold(rand_range(50, 100)) L:USE: inc_oppose_pois(rand_range(50, 100)) L:USE: object.timeout = 100 L:DESC: return "berserk, bless, resistance, and breathe elements (1000) every 100 turns" # The Robe of the Thaumaturgist N:18:of the Thaumaturgist I:36:2:4 W:18:11:20:10000 P:2:0d0:0:0:3 F:INT | STEALTH | FREE_ACT | RES_CONF | RES_BLIND | RES_NEXUS | HIDE_TYPE F:INSTA_ART # The Adamantite Plate Mail 'Soulkeeper' N:19:'Soulkeeper' I:37:30:2 W:100:9:420:30000 P:40:2d4:-4:0:20 F:CON | HOLD_LIFE | SUST_CON | F:RES_ACID | RES_COLD | RES_DARK | RES_NETHER | RES_NEXUS | RES_CHAOS | F:ACTIVATE | INSTA_ART L:USE: msgf("Your armor glows a bright white...") L:USE: msgf("You feel much better...") L:USE: hp_player(1000) L:USE: clear_cut() L:USE: object.timeout = 888 L:DESC: return "heal (1000) every 888 turns" # The Full Plate Armour of Isildur N:20:of Isildur I:37:15:1 W:52:3:300:15000 P:25:2d4:0:0:25 F:CON | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | F:RES_SOUND | RES_CONF | RES_NEXUS | INSTA_ART # The Metal Brigandine Armour of the Rohirrim N:21:of the Rohirrim I:37:9:2 W:52:3:200:13000 P:19:1d4:0:0:15 F:STR | DEX | HIDE_TYPE | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_CONF | RES_SOUND F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Mithril Chain Mail of Lohengrin -> the Crusader N:22:of the Crusader I:37:20:4 W:70:3:150:135000 P:28:1d4:-1:0:20 F:LUCK_10 | WIS | INT | SEE_INVIS | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_POIS | F:HOLD_LIFE | RES_NETHER | RES_DARK | RES_FEAR | F:ACTIVATE | SLAY_EVIL | INSTA_ART L:USE: msgf("A heavenly choir sings...") L:USE: clear_poisoned() L:USE: clear_cut() L:USE: clear_stun() L:USE: clear_confused() L:USE: clear_blind() L:USE: inc_hero(rand_range(25, 50)) L:USE: hp_player(777) L:USE: object.timeout = 300 L:DESC: return "curing, heroism and heal (777) every 300 turns" D:This armor is said to have been forged by an angel and D:imbued with celestial power. # The Mithril Plate Mail of Celeborn -> Julian N:23:of Julian I:37:3:4 W:70:3:250:15000 P:15:2d4:-2:0:40 F:STR | CHR | HIDE_TYPE | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_DARK | F:RES_DISEN | ACTIVATE | INSTA_ART L:USE: msgf("Your armor glows deep blue...") L:USE: genocide(TRUE) L:USE: object.timeout = 500 L:DESC: return "genocide every 500 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Chain Mail of Arvedui -> Command N:24:of Command I:37:4:2 W:35:3:220:9000 P:14:1d4:-2:0:15 F:STR | CHR | HIDE_TYPE | INSTA_ART F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD L:USE: msgf("Your armor shines with a brilliant white light.") L:USE: charm_monsters(player.lev * 2) L:USE: object.timeout = 600 L:DESC: return "mass charm every 600 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "2 random high resists" D:This finely wrought suit of mail seems worthy of a great king. D:Every detail is perfect, and the whole radiates an aura of D:total confidence and power. # The Augmented Chain Mail of Caspanion N:25:of Caspanion I:37:6:3 W:43:9:270:14000 P:16:1d4:-2:0:20 F:INT | WIS | CON | HIDE_TYPE | INSTA_ART F:RES_ACID | RES_POIS | RES_CONF | ACTIVATE L:USE: msgf("Your armor glows bright red...") L:USE: destroy_doors_touch() L:USE: object.timeout = 10 L:DESC: return "trap and door destruction every 10 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Metal Scale Mail 'Nemovebla' N:26:'Nemovebla' I:37:3:4 W:25:8:225:14000 P:13:1d4:0:0:10 F:STR | CON | RES_NEXUS | RES_NETHER | NO_TELE | SLOW_DIGEST | HIDE_TYPE F:INSTA_ART # The Hagaromo 'Tenyo's Despair' N:27:'Tenyo's Despair' I:36:16:4 W:45:3:20:13000 P:2:0d0:0:0:20 F:STEALTH | FEATHER | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_DARK | F:ACTIVATE | SUST_STR | SUST_INT | SUST_WIS | SUST_DEX | SUST_CON | SUST_CHR F:INSTA_ART L:USE: msgf("Your robe shines brightly.") L:USE: cure_potion(500, TRUE, TRUE, TRUE) L:USE: local d = randint1(100) L:USE: if d <= 50 then L:USE: inc_blessed(rand_range(25, 50)) L:USE: elseif d <= 75 then L:USE: turn_monsters(player.lev * 4) L:USE: else L:USE: summon_controlled(SUMMON_ANGEL) L:USE: end L:USE: object.timeout = 1000 L:DESC: return "heavenly blessing and heal (500) every 1000 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" D:According to legend, a celestial maiden was bathing in a stream when D:a man came and took her hagaromo. Unable to return to heaven without D:it, she had no choice but to marry the man and hope to eventually D:find her robe. # The Leather Scale Mail 'Thalkettoth' N:28:'Thalkettoth' I:36:11:3 W:35:3:60:9000 P:11:1d1:-1:0:25 F:DEX | HIDE_TYPE | RES_ACID | RES_SHARDS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Leather Jacket of Melman N:29:of Melman I:36:12:2 W:52:30:120:10000 P:12:1d2:0:0:20 F:HOLD_LIFE | INT | WIS | RES_FIRE | RES_COLD | INSTA_ART # The Small Metal Shield of Thorin N:30:of Thorin I:34:3:4 W:52:6:65:24000 P:5:1d3:0:0:25 F:STR | CON | HIDE_TYPE | FREE_ACT | IM_ACID | RES_SOUND | RES_CHAOS F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Large Leather Shield of Celegorm N:31:of Celegorm I:34:4:0 W:52:3:60:8000 P:6:1d4:0:0:20 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_LITE | RES_DARK F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Large Metal Shield of Anarion N:32:of Anarion I:34:5:0 W:70:9:120:7000 P:8:1d5:0:0:20 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | SUST_STR | SUST_INT | F:SUST_WIS | SUST_DEX | SUST_CON | SUST_CHR | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Hard Leather Cap of Sawall N:33:of Sawall I:32:2:3 W:52:20:15:10000 P:2:0d0:0:0:18 F:INT | WIS | CHR | SUST_INT | SUST_WIS | SUST_CHR | RES_BLIND F:INSTA_ART # The Massive Iron Crown of Morgoth N:34:of Chaos I:33:50:125 W:100:1:20:10000000 P:0:1d1:0:0:0 F:STR | INT | WIS | DEX | CON | CHR | INFRA | HIDE_TYPE | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_POIS | F:RES_LITE | RES_DARK | RES_CONF | RES_NEXUS | F:LITE | SEE_INVIS | TELEPATHY | F:CURSED | HEAVY_CURSE | PERMA_CURSE | NO_TELE | INSTA_ART | QUESTITEM # The Iron Crown of Beruthiel N:35:of Beruthiel I:33:10:-25 W:70:12:20:0 P:0:1d1:0:0:25 F:STR | DEX | CON | HIDE_TYPE | F:FREE_ACT | SEE_INVIS | TELEPATHY | CURSED F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" # The Hard Leather Cap of Thranduil N:36:of Thranduil I:32:2:2 W:35:2:15:8500 P:2:0d0:0:0:10 F:INT | WIS | HIDE_TYPE | RES_BLIND | TELEPATHY F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Metal Cap of Thengel N:37:of Thengel I:32:3:3 W:17:2:20:4000 P:3:1d1:0:0:12 F:WIS | CHR | HIDE_TYPE | INSTA_ART # The Steel Helm of Hammerhand N:38:of Hammerhand I:32:6:3 W:35:2:60:10000 P:6:1d3:0:0:20 F:STR | DEX | CON | HIDE_TYPE | RES_ACID | RES_NEXUS F:INSTA_ART # The _DRAGON_ Helm of Dor-Lomin N:39:of Dor-Lomin I:32:7:4 W:70:12:75:20000 P:8:1d3:0:0:20 F:STR | DEX | CON | HIDE_TYPE | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_LITE | RES_BLIND | F:LITE | SEE_INVIS | TELEPATHY | ACTIVATE | INSTA_ART L:USE: turn_monsters(40 + player.lev) L:USE: object.timeout = 3 * (player.lev + 10) L:DESC: return "turn monsters every 33-180 turns" # The Iron Helm 'Holhenneth' N:40:'Holhenneth' I:32:5:2 W:35:5:75:7500 P:5:1d3:0:0:10 F:INT | WIS | SENSE | HIDE_TYPE | RES_BLIND | SEE_INVIS | ACTIVATE F:INSTA_ART L:USE: msgf("Your helm glows bright white...") L:USE: msgf("An image forms in your mind...") L:USE: detect_all() L:USE: object.timeout = rand_range(55, 110) L:DESC: return "detection every 55-110 turns" # The Iron Helm of Gorlim -> Terror Mask (for warriors only...) # Variable bonus: +1 str per +5 ac N:41:'Terror Mask' I:32:5:-1 W:35:5:75:0 P:5:1d3:25:25:10 F:INT | WIS | SENSE | HIDE_TYPE | SHOW_MODS | F:SEE_INVIS | NO_MAGIC | IM_COLD | ACTIVATE | F:RES_DISEN | RES_FEAR | FREE_ACT | RES_ACID | RES_COLD | RES_POIS | F:TELEPORT | INSTA_ART | EASY_ENCHANT L:USE: turn_monsters(40 + player.lev) L:USE: object.timeout = 3 * (player.lev + 10) L:DESC: return "turn monsters every 33-180 turns" L:MAKE: if player.rp.pclass == CLASS_WARRIOR then L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: else L:MAKE: set_obj_flag(object, 2, TR2_CURSED) L:MAKE: set_obj_flag(object, 2, TR2_HEAVY_CURSE) L:MAKE: set_obj_flag(object, 2, TR2_AGGRAVATE) L:MAKE: set_obj_flag(object, 2, TR2_TY_CURSE) L:MAKE: end L:BONUS: b.stat[A_STR] = b.stat[STAT_STR] + object.to_a / 5 L:SPOIL: return "Random ability & high resist (warrior); curse, heavy curse, aggravate, ty curse (non-warrior); +1 str / +5 ac" # The Golden Crown of Gondor -> Amber N:42:of Amber I:33:11:3 W:70:40:30:25000 P:0:1d1:0:0:15 F:STR | WIS | CON | HIDE_TYPE | SPEED | F:RES_COLD | RES_FIRE | RES_LITE | RES_BLIND | RES_ELEC | RES_CONF | F:RES_CHAOS | LITE | SEE_INVIS | REGEN | ACTIVATE | INSTA_ART L:USE: msgf("Your crown glows deep blue...") L:USE: msgf("You feel a warm tingling inside...") L:USE: hp_player(700) L:USE: clear_cut() L:USE: object.timeout = 250 L:DESC: return "heal (700) every 250 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability & high resist" # The Filthy Rag of Keri the Humble N:43:of Keri the Humble I:36:1:1 W:9:6:20:4500 P:1:0d0:0:0:20 F:STR | CON | CHR | HIDE_TYPE | F:SUST_STR | SLOW_DIGEST | ACTIVATE | INSTA_ART L:USE: msgf("Your rag feels warm for a moment...") L:USE: create_food() L:USE: object.timeout = 100 L:DESC: return "create food every 100 turns" # The Cloak 'Colluin' N:44:'Colluin' I:35:1:0 W:9:45:10:7000 P:1:0d0:0:0:15 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_POIS | ACTIVATE F:INSTA_ART L:USE: msgf("Your cloak glows many colours...") L:USE: inc_oppose_acid(rand_range(20, 40)) L:USE: inc_oppose_elec(rand_range(20, 40)) L:USE: inc_oppose_fire(rand_range(20, 40)) L:USE: inc_oppose_cold(rand_range(20, 40)) L:USE: inc_oppose_pois(rand_range(20, 40)) L:USE: object.timeout = 111 L:DESC: return "resistance (20-40) every 111 turns" # The Cloak 'Holcolleth' -> 'Thief's Shadow' # Variable bonus: +2 stealth, +1 per +2 ac N:45:'Thief's Shadow' I:35:1:2 W:9:45:10:5000 P:1:0d0:0:0:4 F:DEX | STEALTH | HIDE_TYPE | RES_LITE | ACTIVATE | INSTA_ART | EASY_ENCHANT L:USE: msgf("Your cloak glows deep blue...") L:USE: sleep_monsters_touch() L:USE: object.timeout = 55 L:DESC: return "sleep nearby monsters every 55 turns" L:BONUS: b.skills[SKILL_STL] = b.skills[SKILL_STL] + object.to_a / 2 L:SPOIL: return "+1 stealth / +2 ac" D:This fine cloak of dark cloth allows its wearer to blend D:perfectly with the shadows. # The Cloak of Thingol -> the Alchemist N:46:of the Alchemist I:35:1:3 W:17:90:10:11000 P:1:0d0:0:0:18 F:DEX | LUCK_10 | HIDE_TYPE | F:FREE_ACT | RES_ACID | RES_FIRE | RES_COLD | ACTIVATE | INSTA_ART L:USE: msgf("Your cloak glows bright yellow...") L:USE: recharge(130) L:USE: object.timeout = 70 L:DESC: return "recharge item every 70 turns" L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" D:This cloak was created by the gnome Samagar the Scorched to D:protect him from his frequent magical mishaps. # The Cloak of Thorongil # Variable bonus: +1 sensing per 10 levels N:47:of Thorongil I:35:1:0 W:9:20:10:4000 P:1:0d0:0:0:10 F:FREE_ACT | RES_ACID | SEE_INVIS | INSTA_ART L:BONUS: b.skills[SKILL_SNS] = b.skills[SKILL_SNS] + player.lev / 2 L:BONUS: b.skills[SKILL_FOS] = b.skills[SKILL_FOS] + player.lev / 2 L:SPOIL: return "+1 sense / 10 levels" # The Cloak 'Colannon' N:48:'Colannon' I:35:1:3 W:5:10:10:3000 P:1:0d0:0:0:15 F:STEALTH | RES_ACID | ACTIVATE | INSTA_ART L:USE: msgf("Your cloak twists space around you...") L:USE: teleport_player(100) L:USE: object.timeout = 45 L:DESC: return "teleport every 45 turns" # The Shadow Cloak of Luthien N:49:of Luthien I:35:6:2 W:70:40:5:15000 P:6:0d0:0:0:20 F:INT | WIS | CHR | HIDE_TYPE | SPEED | STEALTH | F:RES_ACID | RES_FIRE | RES_COLD | ACTIVATE | F:RES_DARK | RES_LITE | INSTA_ART L:USE: msgf("Your cloak glows a deep red...") L:USE: restore_level() L:USE: object.timeout = 450 L:DESC: return "restore life levels every 450 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Shadow Cloak of Tuor # Variable bonus: +3 dex, +1 per 10 levels; rogues only N:50:of Tuor I:35:6:4 W:70:40:5:35000 P:6:0d0:0:0:12 F:STEALTH | FREE_ACT | IM_ACID | SEE_INVIS | INSTA_ART L:BONUS: if player.rp.pclass == CLASS_ROGUE then L:BONUS: b.stat[A_DEX] = b.stat[STAT_DEX] + 3 + player.lev / 10 L:BONUS: end L:SPOIL: return "+3 DEX +1 / 10 levels (rogues)" D:This cloak, woven from strands of solid shadow, is particularly dangerous D:when worn by a skilled assassin. # Artifact 51 is unused # The Set of Leather Gloves 'Cambeleg' -> of the Ogre # Variable bonus: +1 str and +1 con per +2 ac N:52:of the Ogre I:31:1:3 W:17:6:5:7000 P:1:0d0:6:6:6 F:STR | CON | HIDE_TYPE | SHOW_MODS | INSTA_ART | EASY_ENCHANT L:ALTER: object.pval = object.to_a / 2 L:SPOIL: return "Pval = +1 / +2 ac" D:Legend says that these gloves provide their wearer with the D:strength and skill of an ogre. # The Set of Leather Gloves 'Cammithrim' N:53:'Cammithrim' I:31:1:0 W:17:3:5:5000 P:1:0d0:0:0:10 F:FREE_ACT | RES_LITE | SUST_CON | LITE | ACTIVATE | INSTA_ART L:USE: msgf("Your gloves glow extremely brightly...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_MISSILE, dir, damroll(3, 6)) L:USE: object.timeout = 2 L:DESC: return "magic missile (3d6) every 2 turns" # The Set of Gauntlets 'Paurhach' N:54:'Paurhach' I:31:2:0 W:17:20:25:3500 P:2:1d1:0:0:15 F:RES_FIRE | ACTIVATE | INSTA_ART L:USE: msgf("Your gauntlets are covered in fire...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_FIRE, dir, damroll(11, 8)) L:USE: object.timeout = rand_range(8, 16) L:DESC: return "fire bolt (11d8) every 8-16 turns" # The Set of Gauntlets 'Paurnimmen' -> of Corwin N:55:of Corwin I:31:2:4 W:17:20:25:6000 P:2:1d1:0:0:15 F:SUST_CON | CON | REGEN | RES_COLD | ACTIVATE | INSTA_ART L:USE: msgf("Your gauntlets are covered in frost...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_COLD, dir, damroll(8, 8)) L:USE: object.timeout = rand_range(7, 14) L:DESC: return "frost bolt (8d8) every 7-14 turns" # The Set of Gauntlets 'Pauraegen' N:56:'Pauraegen' I:31:2:0 W:17:20:25:3500 P:2:1d1:0:0:15 F:RES_ELEC | ACTIVATE | INSTA_ART L:USE: msgf("Your gauntlets are covered in sparks...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_ELEC, dir, damroll(6, 8)) L:USE: object.timeout = rand_range(6, 12) L:DESC: return "lightning bolt (6d8) every 6-12 turns" # The Set of Gauntlets 'Paurnen' N:57:'Paurnen' I:31:2:0 W:17:20:25:3500 P:2:1d1:0:0:15 F:RES_ACID | ACTIVATE | INSTA_ART L:USE: msgf("Your gauntlets are covered in acid...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_ACID, dir, damroll(8, 8)) L:USE: object.timeout = rand_range(5, 10) L:DESC: return "acid bolt (8d8) every 5-10 turns" # The Set of Gauntlets 'Camlost' -> of Thanos N:58:of Thanos I:31:2:2 W:17:20:25:0 P:2:1d1:-11:-12:0 F:STR | DEX | HIDE_TYPE | RES_DISEN | RES_NEXUS | IM_FIRE | F:HOLD_LIFE | RES_NETHER | RES_CONF | RES_CHAOS | RES_POIS | IM_COLD | F:AGGRAVATE | CURSED | SHOW_MODS | HEAVY_CURSE | TY_CURSE | TELEPORT F:INSTA_ART # The Set of Cesti of Fingolfin N:59:of Fingolfin I:31:5:4 W:70:15:40:13000 P:5:1d1:10:10:20 F:DEX | HIDE_TYPE | F:FREE_ACT | RES_ACID | ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your cesti grows magical spikes...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_ARROW, dir, 250) L:USE: object.timeout = rand_range(90, 180) L:DESC: return "a magical arrow (250) every 90-180 turns" L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" # The Pair of Hard Leather Boots of Feanor N:60:of Feanor I:30:3:15 W:70:120:40:300000 P:3:1d1:0:0:20 F:SPEED | F:RES_NEXUS | ACTIVATE | INSTA_ART L:USE: msgf("Your boots glow bright green...") L:USE: inc_fast(rand_range(20, 40)) L:USE: object.timeout = 200 L:DESC: return "haste self (20-40) every 200 turns" # The Pair of Soft Leather Boots 'Dal-i-thalion' -> of Flora N:61:of Flora I:30:2:5 W:17:25:20:14000 P:2:1d1:0:0:15 F:DEX | HIDE_TYPE | CHR | SUST_CHR | ACTIVATE | FREE_ACT | F:RES_NETHER | RES_CHAOS | SUST_CON | INSTA_ART L:USE: msgf("Your boots glow deep blue...") L:USE: clear_afraid() L:USE: clear_poisoned() L:USE: object.timeout = 5 L:DESC: return "remove fear and cure poison every 5 turns" # The Pair of Metal Shod Boots of Thror N:62:of Thror I:30:6:3 W:52:25:80:15000 P:6:1d1:0:0:20 F:STR | CON | HIDE_TYPE | SPEED | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Pair of Soft Leather Boots of Bleys # Variable bonus: +1 speed per 5 levels (rounded up) N:63:of Bleys I:30:2:4 W:52:20:20:25000 P:4:1d1:4:4:16 F:DEX | RES_NEXUS | SUST_DEX | FREE_ACT | INSTA_ART L:BONUS: b.pspeed = (player.lev + 4) / 5 L:SPOIL: return "+1 speed / 5 levels" D:These ordinary looking boots are said to grow with their wearer. # The Main Gauche of Maedhros N:64:of Maedhros I:23:5:3 W:26:30:30:17500 P:0:2d5:12:15:0 F:INT | DEX | HIDE_TYPE | SPEED | F:SLAY_TROLL | SLAY_GIANT | FREE_ACT | SEE_INVIS | SHOW_MODS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Dagger 'Angrist' -> of Caine N:65:of Caine I:23:4:4 W:35:80:12:15000 P:0:2d4:10:15:5 F:DEX | HIDE_TYPE | STEALTH | SENSE | F:SLAY_EVIL | SLAY_TROLL | SLAY_ORC | BRAND_POIS | F:FREE_ACT | RES_DARK | SUST_DEX | SEE_INVIS | SHOW_MODS | THROW F:INSTA_ART # The Dagger 'Narthanc' # Variable bonus: +1 str per 5 levels (rounded up) # Unique power: Damage increases 10% per level (applied after all other mods) N:66:'Narthanc' I:23:4:0 W:7:10:12:6000 P:0:1d6:4:6:0 F:BRAND_FIRE | RES_FIRE | ACTIVATE | SHOW_MODS | LITE | F:THROW | RETURN | INSTA_ART L:USE: msgf("Your dagger is covered in fire...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_FIRE, dir, damroll(11, 8)) L:USE: object.timeout = rand_range(8, 16) L:DESC: return "fire bolt(11d8) every 8-16 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:BONUS: b.stat[A_STR] = (player.lev + 4) / 5 L:HIT: dam = dam + (dam * player.lev) / 10 L:SPOIL: return "Random high resist; +1 STR / 5 levels; +10% dam / level" # The Dagger 'Nimthanc' # Variable bonus: +1 con per 5 levels (rounded up) # Unique power: Damage increases 10% per level (applied after all other mods) N:67:'Nimthanc' I:23:4:0 W:5:10:12:5000 P:0:1d6:4:6:0 F:BRAND_COLD | RES_COLD | ACTIVATE | SHOW_MODS | THROW | RETURN | INSTA_ART L:USE: msgf("Your dagger is covered in frost...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_COLD, dir, damroll(8, 8)) L:USE: object.timeout = rand_range(7, 14) L:DESC: return "frost bolt (8d8) every 7-14 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:BONUS: b.stat[A_CON] = (player.lev + 4) / 5 L:HIT: dam = dam + (dam * player.lev) / 10 L:SPOIL: return "Random high resist; +1 CON / 5 levels; +10% dam / level" # The Dagger 'Dethanc' # Variable bonus: +1 dex per 5 levels (rounded up) # Unique power: Damage increases 10% per level (applied after all other mods) N:68:'Dethanc' I:23:4:0 W:9:10:12:5000 P:0:1d6:4:6:0 F:BRAND_ELEC | RES_ELEC | ACTIVATE | SHOW_MODS | THROW | RETURN | INSTA_ART L:USE: msgf("Your dagger is covered in sparks...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_bolt(GF_ELEC, dir, damroll(6, 8)) L:USE: object.timeout = rand_range(6, 12) L:DESC: return "lightning bolt (6d8) every 6-12 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:BONUS: b.stat[A_DEX] = (player.lev + 4) / 5 L:HIT: dam = dam + (dam * player.lev) / 10 L:SPOIL: return "Random high resist; +1 DEX / 5 levels; +10% dam / level" # The Dagger of Rilia # Variable bonus: +1 int per 10 levels (rounded up) N:69:of Rilia I:23:4:0 W:9:40:12:10000 P:0:2d4:4:3:0 F:SLAY_ORC | RES_POIS | RES_DISEN | ACTIVATE | SHOW_MODS | BRAND_POIS | F:THROW | RETURN | INSTA_ART L:USE: msgf("Your dagger throbs deep green...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_POIS, dir, 25, 3) L:USE: object.timeout = rand_range(4, 8) L:DESC: return "stinking cloud (25) every 4-8 turns" L:BONUS: b.stat[A_INT] = (player.lev + 9) / 10 L:SPOIL: return "+1 INT / 10 levels" # The Dagger 'Belangil' -> of Fiona N:70:of Fiona I:23:4:2 W:17:40:12:25000 P:0:2d4:6:9:0 F:DEX | HIDE_TYPE | SPEED | BLOWS | BRAND_COLD | RES_COLD | F:SEE_INVIS | SLOW_DIGEST | REGEN | F:ACTIVATE | SHOW_MODS | BRAND_POIS | THROW | INSTA_ART L:USE: msgf("Your dagger is covered in frost...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_COLD, dir, 100, 2) L:USE: object.timeout = rand_range(5, 10) L:DESC: return "frost ball (100) every 5-10 turns" # The Bastard Sword 'Calris' N:71:'Calris' I:23:21:5 W:52:15:140:25000 P:0:4d4:-20:20:0 F:CON | HIDE_TYPE | F:KILL_DRAGON | SLAY_EVIL | SLAY_DEMON | SLAY_TROLL | RES_DISEN | F:AGGRAVATE | CURSED | HEAVY_CURSE | SHOW_MODS | INSTA_ART # The Broad Sword 'Arunruth' -> 'Grayswandir' # Unique power: Damage increases +1 per 200' of depth N:72:'Grayswandir' I:23:11:4 W:35:45:50:50000 P:0:2d7:20:12:0 F:STR | DEX | CON | SUST_CON | SUST_STR | F:REGEN | FREE_ACT | SEE_INVIS | F:RES_CHAOS | RES_NETHER | HOLD_LIFE | RES_FEAR | F:RES_COLD | BRAND_COLD | F:SLAY_DEMON | SLAY_EVIL | SLAY_DRAGON | SLAY_UNDEAD | F:SLOW_DIGEST | SHOW_MODS | HIDE_TYPE | BLESSED | INSTA_ART L:HIT: dam = dam + player.depth / 4 L:SPOIL: return "+1 dam / 200'" # The Broad Sword 'Glamdring' N:73:'Glamdring' I:23:16:1 W:35:20:150:10000 P:0:2d5:10:15:0 F:SENSE | F:SLAY_EVIL | BRAND_FIRE | SLAY_ORC | RES_FIRE | RES_LITE | LITE | F:SLOW_DIGEST | SHOW_MODS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Broad Sword 'Aeglin' -> 'Nothung' N:74:'Nothung' I:23:16:4 W:35:90:150:15000 P:0:2d5:12:16:0 F:SENSE | BRAND_ELEC | SLAY_ORC | KILL_DRAGON | RES_FEAR | F:RES_ELEC | LITE | RES_FIRE | RES_POIS | F:SLOW_DIGEST | SHOW_MODS | INSTA_ART # The Broad Sword 'Orcrist' N:75:'Orcrist' I:23:16:3 W:35:20:150:8000 P:0:2d5:10:15:0 F:STEALTH | SLAY_EVIL | BRAND_COLD | SLAY_ORC | RES_COLD | LITE | F:SLOW_DIGEST | SHOW_MODS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Two-Handed Sword 'Gurthang' N:76:'Gurthang' I:23:25:2 W:52:30:200:12500 P:0:3d6:13:17:0 F:STR | HIDE_TYPE | F:KILL_DRAGON | SLAY_TROLL | FREE_ACT | SLOW_DIGEST | REGEN | SHOW_MODS F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Two-Handed Sword 'Zarcuthra' N:77:'Zarcuthra' I:23:25:4 W:52:180:250:30000 P:0:4d6:19:21:0 F:STR | CHR | INFRA | HIDE_TYPE | VORPAL | F:KILL_DRAGON | SLAY_ANIMAL | SLAY_EVIL | BRAND_FIRE | LITE | F:SLAY_UNDEAD | SLAY_DEMON | SLAY_TROLL | SLAY_GIANT | SLAY_ORC | F:RES_FIRE | RES_CONF | RES_CHAOS | FREE_ACT | SEE_INVIS | AGGRAVATE | F:SHOW_MODS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Two-Handed Sword 'Mormegil' -> Twilight N:78:'Twilight' I:23:25:10 W:52:15:250:0 P:0:4d6:-40:-60:-50 F:SPEED | IM_FIRE | RES_FIRE | BRAND_FIRE | RES_DISEN | RES_FEAR | F:AGGRAVATE | CURSED | HEAVY_CURSE | SHOW_MODS | TY_CURSE | LITE F:INSTA_ART # The Cutlass 'Gondricam' N:79:'Gondricam' I:23:12:3 W:35:8:110:10000 P:0:1d10:10:11:0 F:DEX | STEALTH | HIDE_TYPE | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | FEATHER | F:SEE_INVIS | REGEN | SHOW_MODS | INSTA_ART # The Executioner's Sword 'Crisdurian' N:80:'Crisdurian' I:23:28:0 W:70:15:260:20000 P:0:4d5:18:19:0 F:SLAY_DRAGON | SLAY_EVIL | SLAY_UNDEAD | SLAY_TROLL | SLAY_GIANT | F:SLAY_ORC | SEE_INVIS | SHOW_MODS | VORPAL | BRAND_POIS F:INSTA_ART # The Katana 'Aglarang' -> of Groo # Unique power: Double damage if wielder is a warrior N:81:of Groo I:23:20:2 W:52:25:50:20000 P:0:5d4:0:0:0 F:DEX | HIDE_TYPE | VORPAL | F:SUST_DEX | SHOW_MODS | SPEED | INSTA_ART L:HIT: if player.rp.pclass == CLASS_WARRIOR then L:HIT: damage = damage * 2 L:HIT: end L:SPOIL: return "Double damage (warrior)" # The Long Sword 'Ringil' N:82:'Ringil' I:23:17:10 W:35:120:130:150000 P:0:4d5:22:25:0 F:SPEED | REGEN | ACTIVATE | SHOW_MODS | F:SLAY_EVIL | BRAND_COLD | SLAY_UNDEAD | SLAY_DEMON | SLAY_TROLL | F:FREE_ACT | RES_COLD | RES_LITE | LITE | SEE_INVIS | SLOW_DIGEST | F:INSTA_ART L:USE: msgf("Your sword glows an intense blue...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_COLD, dir, 200, 2) L:USE: object.timeout = 300 L:DESC: return "frost ball (200) every 300 turns" # The Long Sword 'Anduril' N:83:'Anduril' I:23:17:4 W:35:40:130:12000 P:0:2d5:10:15:5 F:STR | HIDE_TYPE | F:SLAY_EVIL | BRAND_FIRE | SLAY_TROLL | SLAY_ORC | FREE_ACT | F:RES_FIRE | SUST_DEX | SEE_INVIS | ACTIVATE | SHOW_MODS | LITE F:INSTA_ART L:USE: msgf("Your sword glows an intense red...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_FIRE, dir, 150, 2) L:USE: object.timeout = 400 L:DESC: return "fire ball (150) every 400 turns" L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Long Sword 'Anguirel' -> Werewindle N:84:'Werewindle' I:23:17:2 W:35:30:130:25000 P:0:3d5:8:12:0 F:STR | CON | HIDE_TYPE | CHAOTIC | REGEN | SLOW_DIGEST | F:SLAY_EVIL | BRAND_ELEC | SLAY_DEMON | FREE_ACT | RES_ELEC | F:RES_LITE | LITE | SEE_INVIS | SHOW_MODS | ACTIVATE | SPEED | F:SUST_CON | SUST_STR | SUST_INT | SUST_WIS | RES_ELEC | RES_DARK | F:RES_DISEN | RES_FEAR | SPEED | INSTA_ART L:USE: werewindle() L:USE: object.timeout = 35 L:DESC: return "a getaway every 35 turns" # The Long Sword 'Elvagil'-> 'Chainsword' N:85:'Chainsword' I:23:16:2 W:52:15:130:6666 P:0:9d5:-30:7:0 F:DEX | CHR | HIDE_TYPE | SPEED | AGGRAVATE | F:SLAY_TROLL | SLAY_ORC | SEE_INVIS | SHOW_MODS | INSTA_ART L:TIMED: if randint0(100) == 0 then L:TIMED: local line = get_rnd_line("chainswd.txt") L:TIMED: if line then msgf(line) end L:TIMED: end # The Rapier 'Forasgil' N:86:'Forasgil' I:23:7:0 W:26:8:40:7500 P:0:1d12:12:19:0 F:SLAY_ANIMAL | BRAND_COLD | RES_COLD | RES_LITE | LITE | SHOW_MODS F:INSTA_ART # The Sabre 'Careth Asdriag' N:87:'Careth Asdriag' I:23:11:1 W:26:8:50:10000 P:0:1d14:6:8:0 F:BLOWS | SLAY_DRAGON | SLAY_ANIMAL | SLAY_TROLL | SLAY_GIANT | F:SLAY_ORC | SHOW_MODS | INSTA_ART # The Small Sword 'Sting' # Dependent power: pval and to-hit doubled for hobbits. N:88:'Sting' I:23:8:2 W:35:15:75:30000 P:0:2d6:7:8:0 F:STR | DEX | CON | SLAY_EVIL | SLAY_UNDEAD | SLAY_ORC | F:BLOWS | FREE_ACT | RES_LITE | LITE | SEE_INVIS | SHOW_MODS F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: if player.rp.prace == RACE_HOBBIT then L:MAKE: object.pval = 4 L:MAKE: object.to_h = 14 L:MAKE: end L:SPOIL: return "Random high resist; double pval and +skill (hobbit)" D:In a human's hands, no more than an enchanted large dagger, but a fearsome weapon D:in the hands of a hobbit. # The Scimitar 'Haradekket' -> Soulsword N:89:'Soulsword' I:23:18:2 W:35:8:130:20000 P:0:3d5:9:11:0 F:INT | WIS | SEE_INVIS | BLESSED | F:SLAY_ANIMAL | SLAY_EVIL | SLAY_UNDEAD | SLAY_DRAGON | SLAY_DEMON | F:RES_CHAOS | RES_DISEN | RES_NEXUS | RES_NETHER | HOLD_LIFE | F:SHOW_MODS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Short Sword Gilettar -> of Merlin # Dependent power: +2 sp for mages and high mages # Unique power: +1 dam per 10 maximum sp (applied after other bonuses). N:90:of Merlin I:23:10:2 W:35:8:80:25000 P:0:1d10:3:7:0 F:BLOWS | F:SLAY_ANIMAL | SLOW_DIGEST | REGEN | SHOW_MODS | SEE_INVIS | RES_DISEN F:INSTA_ART L:MAKE: if (player.rp.pclass == CLASS_MAGE) or (player.rp.pclass == CLASS_HIGH_MAGE) then L:MAKE: set_obj_flag(object, 0, TR0_SP) L:MAKE: end L:HIT: dam = dam + player.msp / 10 L:SPOIL: return "+2 sp (mage or high mage); +1 dam / 10 max sp" D:This fine sword is most powerful in the hands of a skilled magic user. # The Blade of Chaos 'Doomcaller' # Was (-5) CON | HIDE_TYPE, +0 armor N:91:'Doomcaller' I:23:30:0 W:100:25:180:25000 P:0:6d5:18:28:-50 F:KILL_DRAGON | SLAY_ANIMAL | SLAY_EVIL | BRAND_COLD | SLAY_TROLL | F:SLAY_ORC | FREE_ACT | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | F:RES_CONF | RES_CHAOS | SEE_INVIS | TELEPATHY | AGGRAVATE | SHOW_MODS | F:CHAOTIC | VORPAL | BRAND_FIRE | BRAND_POIS | LITE | INSTA_ART # The Long Sword 'Vorpal Blade' # Unique power: Increased vorpality N:92:'Vorpal Blade' I:23:17:2 W:80:30:150:35000 P:0:4d5:32:32:0 F:VORPAL | SLAY_EVIL | F:FREE_ACT | LITE | SEE_INVIS | SLOW_DIGEST | REGEN | SPEED | STR | DEX F:INSTA_ART L:HIT: vorpal_chance = 1 L:SPOIL: return "Extra vorpality" # The Beaked Axe of Theoden N:93:of Theoden I:22:10:3 W:35:15:180:9500 P:0:2d6:8:10:0 F:WIS | CON | HIDE_TYPE | F:SLAY_DRAGON | TELEPATHY | SLOW_DIGEST | ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your axe blade glows black...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: drain_life(dir, 200) L:USE: object.timeout = 400 L:DESC: return "drain life (200) every 400 turns" # The Glaive of Pain N:94:of Pain I:22:13:0 W:52:25:190:21000 P:0:7d6:0:30:0 F:SHOW_MODS | INSTA_ART # The Halberd 'Osondir' N:95:'Osondir' I:22:15:3 W:35:8:190:10000 P:0:3d5:6:9:0 F:CHR | HIDE_TYPE | F:BRAND_FIRE | SLAY_UNDEAD | SLAY_GIANT | RES_FIRE | RES_SOUND | F:FEATHER | SEE_INVIS | SHOW_MODS | LITE | INSTA_ART # The Pike 'Til-i-arc' N:96:'Til-i-arc' I:22:8:2 W:35:15:160:16000 P:0:2d5:10:12:10 F:INT | HIDE_TYPE | F:BRAND_COLD | BRAND_FIRE | SLAY_DEMON | SLAY_TROLL | SLAY_GIANT | F:RES_FIRE | RES_COLD | SUST_INT | SLOW_DIGEST | SHOW_MODS | LITE F:INSTA_ART # The Spear 'Aeglos' -> Runespear (of Odin) N:97:'Runespear' I:22:2:4 W:26:45:50:29000 P:0:1d20:15:25:5 F:INT | WIS | HIDE_TYPE | BRAND_FIRE | BRAND_ELEC | F:SLAY_TROLL | SLAY_ORC | SLAY_GIANT | F:FREE_ACT | RES_FIRE | RES_ELEC | RES_LITE | F:SLOW_DIGEST | ACTIVATE | BLESSED | SHOW_MODS | LITE | THROW | RETURN | F:INSTA_ART L:USE: msgf("Your spear crackles with electricity...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_ELEC, dir, 200, 3) L:USE: object.timeout = 500 L:DESC: return "lightning ball (200) every 500 turns" # The Spear of Orome -> Destiny N:98:of Destiny I:22:2:4 W:26:45:50:25000 P:0:1d10:15:15:0 F:INT | WIS | INFRA | HIDE_TYPE | SENSE | BRAND_FIRE | F:SLAY_GIANT | SLAY_EVIL | SLAY_DEMON | SLAY_UNDEAD | SLAY_DRAGON | F:RES_FIRE | RES_LITE | HOLD_LIFE | RES_FEAR | LITE | FEATHER | F:LITE | SEE_INVIS | ACTIVATE | BLESSED | SHOW_MODS | THROW F:INSTA_ART L:USE: msgf("Your spear pulsates...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: wall_to_mud(dir) L:USE: object.timeout = 5 L:DESC: return "stone to mud every 5 turns" # The Spear 'Nimloth' -> Hagen # Variable bonus: +1 speed per 5 levels (rounded up) N:99:of Hagen I:22:2:3 W:26:12:50:30000 P:0:1d10:11:13:0 F:STEALTH | RES_DARK | INFRA | F:BRAND_COLD | SLAY_UNDEAD | RES_COLD | SEE_INVIS | SHOW_MODS | THROW F:INSTA_ART L:BONUS: b.pspeed = (player.lev + 4) / 5 L:SPOIL: return "+1 speed / 5 levels" # The Spear 'Soulsucker' N:100:'Soulsucker' I:22:2:4 W:35:20:50:3000 P:0:1d8:16:20:0 F:STEALTH | SENSE | VAMPIRIC | BRAND_POIS | RES_POIS | RES_DARK | F:RES_NETHER | HIDE_TYPE | SHOW_MODS | SEE_INVIS | DRAIN_EXP F:INSTA_ART # The Great Axe of Durin N:101:of Durin I:22:25:3 W:52:90:230:22000 P:0:4d4:10:20:15 F:CON | HIDE_TYPE | F:KILL_DRAGON | SLAY_DEMON | SLAY_TROLL | SLAY_ORC | FREE_ACT | F:RES_ACID | RES_FIRE | RES_LITE | RES_DARK | RES_CHAOS | SHOW_MODS F:INSTA_ART # The Great Axe of Eonwe N:102:of Eonwe I:22:25:2 W:52:120:230:33000 P:0:4d4:15:18:8 F:STR | INT | WIS | DEX | CON | CHR | HIDE_TYPE | F:SLAY_EVIL | BRAND_COLD | SLAY_UNDEAD | F:SLAY_ORC | FREE_ACT | IM_COLD | SEE_INVIS | ACTIVATE | F:BLESSED | SHOW_MODS | INSTA_ART L:USE: msgf("Your great axe lets out a long, shrill note...") L:USE: mass_genocide(TRUE) L:USE: object.timeout = 1000 L:DESC: return "mass genocide every 1000 turns" # The Battle Axe of Balli Stonehand N:103:of Balli Stonehand I:22:22:3 W:52:15:170:20000 P:0:3d8:8:11:5 F:STR | CON | STEALTH | HIDE_TYPE | F:SLAY_DEMON | SLAY_TROLL | SLAY_ORC | FREE_ACT | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_BLIND | FEATHER | F:SEE_INVIS | REGEN | SHOW_MODS | INSTA_ART # The Battle Axe 'Lotharang' N:104:'Lotharang' I:22:22:1 W:52:15:170:8000 P:0:2d8:4:3:0 F:STR | DEX | HIDE_TYPE | F:SLAY_TROLL | SLAY_ORC | ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your battle axe radiates deep purple...") L:USE: hp_player(100) L:USE: inc_cut(-50) L:USE: object.timeout = rand_range(3, 6) L:DESC: return "cure wounds (100) every 3-6 turns" # The Lochaber Axe 'Mundwine' -> of the Dwarves N:105:of the Dwarves I:22:28:10 W:52:8:250:16000 P:0:3d8:12:17:0 F:SLAY_EVIL | TUNNEL | INFRA | SENSE | SLAY_GIANT | F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_FEAR | F:SHOW_MODS | INSTA_ART # The Broad Axe 'Barukkheled' N:106:'Barukkheled' I:22:11:3 W:35:8:160:10000 P:0:2d6:13:19:0 F:CON | HIDE_TYPE | F:SLAY_EVIL | SLAY_TROLL | SLAY_GIANT | SLAY_ORC | F:SEE_INVIS | SHOW_MODS | INSTA_ART # The Trident of Wrath N:107:of Wrath I:22:5:2 W:26:35:300:18000 P:0:1d24:16:18:0 F:STR | DEX | HIDE_TYPE | CHAOTIC | F:SLAY_EVIL | SLAY_UNDEAD | RES_LITE | RES_DARK | SEE_INVIS | F:BLESSED | SHOW_MODS | INSTA_ART # The Trident of Ulmo N:108:of Ulmo I:22:5:4 W:52:90:70:40000 P:0:1d32:15:19:0 F:DEX | HIDE_TYPE | F:SLAY_DRAGON | SLAY_ANIMAL | FREE_ACT | HOLD_LIFE | IM_ACID | F:RES_NETHER | SEE_INVIS | SLOW_DIGEST | REGEN | ACTIVATE | F:BLESSED | SHOW_MODS | INSTA_ART L:USE: msgf("Your trident glows deep red...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: teleport_monster(dir) L:USE: object.timeout = 150 L:DESC: return "teleport away every 150 turns" L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" # The Scythe 'Avavir' N:109:'Avavir' I:22:17:3 W:70:8:250:18000 P:0:5d3:8:8:10 F:DEX | CHR | HIDE_TYPE | F:BRAND_COLD | BRAND_FIRE | FREE_ACT | RES_FIRE | RES_COLD | F:RES_LITE | LITE | SEE_INVIS | ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your scythe glows soft white...") L:USE: word_of_recall() L:USE: object.timeout = 200 L:DESC: return "word of recall every 200 turns" # The Long Sword of the Dawn N:110:of the Dawn I:23:17:3 W:70:120:130:29000 P:0:3d5:20:20:0 F:ACTIVATE | LITE | BRAND_FIRE | FREE_ACT | RES_FIRE | INFRA | F:SLAY_EVIL | SLAY_DRAGON | SLAY_UNDEAD | SLAY_DEMON | VORPAL | F:CHR | SUST_CHR | RES_FEAR | RES_LITE | RES_BLIND | REGEN | SHOW_MODS F:INSTA_ART L:USE: msgf("You summon the Legion of the Dawn.") L:USE: summon_specific(-1, player.px, player.py, player.depth, SUMMON_DAWN, TRUE, TRUE, TRUE) L:USE: object.timeout = rand_range(500, 1000) L:DESC: return "summon the Legion of the Dawn every 500-1000 turns" L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Mighty Hammer 'Grond' # Was 30 pounds (?), -10 to speed # The weight (100 pounds) of Grond yields about -4 to speed # Note that it takes 18/200 strength to wield Grond correctly N:111:'Grond' I:21:50:0 W:100:1:1000:500000 P:0:9d9:5:25:10 F:KILL_DRAGON | SLAY_ANIMAL | SLAY_EVIL | IMPACT | SLAY_UNDEAD | NO_MAGIC | F:SLAY_DEMON | SLAY_TROLL | SLAY_ORC | RES_ACID | RES_ELEC | RES_FIRE | F:RES_COLD | SEE_INVIS | TELEPATHY | AGGRAVATE | SHOW_MODS | INSTA_ART F:QUESTITEM # The Flail 'Totila' N:112:'Totila' I:21:13:2 W:35:8:150:9000 P:0:3d6:6:8:0 F:STEALTH | F:SLAY_EVIL | BRAND_FIRE | RES_FIRE | RES_CONF | ACTIVATE | F:SHOW_MODS | LITE | INSTA_ART L:USE: msgf("Your flail glows in scintillating colours...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: confuse_monster(dir, 50) L:USE: object.timeout = 15 L:DESC: return "confuse monster every 15 turns" # The Two-Handed Flail 'Thunderfist' N:113:'Thunderfist' I:21:18:4 W:75:38:300:16000 P:0:3d6:5:18:0 F:STR | HIDE_TYPE | F:SLAY_ANIMAL | BRAND_FIRE | BRAND_ELEC | SLAY_TROLL | SLAY_ORC | F:RES_ELEC | RES_FIRE | RES_DARK | SHOW_MODS | LITE | INSTA_ART # The Ball-and-Chain 'Whirlwind' N:114:'Whirlwind' I:21:6:2 W:60:35:150:32000 P:0:2d4:13:18:0 F:DEX | SPEED | BLOWS | CHAOTIC | SLAY_EVIL | SUST_DEX | F:FREE_ACT | RES_FEAR | RES_NEXUS | RES_CHAOS | NO_TELE | F:SHOW_MODS | FEATHER | ACTIVATE | INSTA_ART | HIDE_TYPE | L:USE: msgf("Your ball and chain swings through the air...") L:USE: whirlwind_attack() L:USE: object.timeout = rand_range(50, 100) L:DESC: return "whirlwind attack every 50-100 turns" # The Morning Star 'Firestar' N:115:'Firestar' I:21:12:0 W:35:15:150:5500 P:0:2d6:5:7:2 F:BRAND_FIRE | RES_FIRE | ACTIVATE | SHOW_MODS | LITE | INSTA_ART L:USE: msgf("Your morning star rages in fire...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: fire_ball(GF_FIRE, dir, 200, 3) L:USE: object.timeout = 100 L:DESC: return "fire ball (200, rad. 3) every 100 turns" # The Scythe of Energy # Unique power: does double damage when the player is hasted. N:116:of Energy I:22:17:4 W:70:25:250:25000 P:0:5d3:15:5:0 F:CON | BRAND_ELEC | IM_ELEC | HIDE_TYPE | SHOW_MODS | KILL_DRAGON F:INSTA_ART | ACTIVATE L:USE: msgf("Your scythe glows bright green...") L:USE: inc_fast(rand_range(20, 40)) L:USE: object.timeout = rand_range(100, 200) L:DESC: return "haste self (20-40) every 100-200 turns" L:HIT: if player.tim.fast > 0 then L:HIT: dam = dam * 2 L:HIT: end L:SPOIL: return "Double damage when hasted" D:A metal pole tipped with an arc of pure blue energy, the pulses of D:the blade ripping through opponents all the more deadly as you move D:faster. # The War Hammer of Aule N:117:of Aule I:21:8:4 W:70:75:120:25000 P:0:7d3:19:21:5 F:WIS | HIDE_TYPE | F:KILL_DRAGON | SLAY_EVIL | BRAND_ELEC | SLAY_UNDEAD | SLAY_DEMON | F:FREE_ACT | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_NEXUS | F:SEE_INVIS | SHOW_MODS | INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability & high resist" # The Quarterstaff 'Nar-i-vagil' N:118:'Nar-i-vagil' I:21:3:3 W:35:18:150:17000 P:0:1d18:10:20:0 F:INT | HIDE_TYPE | F:SLAY_ANIMAL | BRAND_FIRE | RES_FIRE | SHOW_MODS | LITE | INSTA_ART # The Quarterstaff 'Eriril' -> of the Wandering Wizard N:119:of the Wandering Wizard I:21:3:2 W:35:18:150:18000 P:0:1d18:3:5:0 F:INT | SP | HIDE_TYPE | F:RES_DARK | RES_LITE | LITE | SEE_INVIS | ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your quarterstaff glows yellow...") L:USE: if ident_spell() then object.timeout = 10 end L:DESC: return "identify every 10 turns" D:This quarterstaff has been owned by many different mages. Each owner D:has become a noteworthy mage, but none has kept the staff, choosing D:to instead pass it to a new keeper. # The Quarterstaff of Olorin -> Gandalf N:120:of Gandalf I:21:3:4 W:52:105:150:30000 P:0:1d30:10:13:0 F:INT | WIS | CHR | HIDE_TYPE | SENSE | BRAND_FIRE | F:SLAY_EVIL | BRAND_FIRE | SLAY_TROLL | SLAY_ORC | LITE | F:HOLD_LIFE | RES_FIRE | RES_NETHER | SEE_INVIS | ACTIVATE | SHOW_MODS F:INSTA_ART L:USE: msgf("Your quarterstaff glows brightly...") L:USE: detect_all() L:USE: probing() L:USE: identify_fully() L:USE: object.timeout = 1000 L:DESC: return "probing, detection and full id every 1000 turns" L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:SPOIL: return "Random ability" # The Mace of Disruption 'Deathwreaker' N:121:'Deathwreaker' I:21:20:6 W:100:38:400:44444 P:0:6d8:18:18:0 F:STR | TUNNEL | HIDE_TYPE | NO_TELE | F:SLAY_DRAGON | SLAY_ANIMAL | SLAY_EVIL | SLAY_UNDEAD | BRAND_FIRE | F:IM_FIRE | RES_DARK | RES_CONF | RES_CHAOS | RES_DISEN | AGGRAVATE | F:LITE | SHOW_MODS | BRAND_POIS | VAMPIRIC | INSTA_ART # The Lucerne Hammer 'Turmil' N:122:'Turmil' I:22:12:4 W:35:15:120:13000 P:0:2d5:10:6:8 F:WIS | INFRA | HIDE_TYPE | BLESSED | F:BRAND_COLD | SLAY_ORC | RES_COLD | RES_LITE | LITE | REGEN | F:ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your hammer glows white...") L:USE: local success; local dir; success, dir = get_aim_dir() L:USE: if not success then return end L:USE: drain_life(dir, 200) L:USE: object.timeout = 70 L:DESC: return "drain life (200) every 70 turns" L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist" # The Sling 'Catapult' N:123:'Catapult' I:19:2:2 W:12:8:5:8500 P:0:0d0:20:10:0 F:DEX | INFRA | HIDE_TYPE | SHOW_MODS | XTRA_MIGHT | ACTIVATE F:INSTA_ART L:USE: msgf("Your sling hums...") L:USE: clear_afraid() L:USE: hp_player(45) L:USE: object.timeout = 10 L:DESC: return "heal (45) every 10 turns" # The Long Bow 'Belthronding' N:124:'Belthronding' I:19:13:3 W:70:20:40:15000 P:0:0d0:20:22:0 F:DEX | STEALTH | HIDE_TYPE | RES_DISEN | XTRA_SHOTS | SHOW_MODS F:INSTA_ART # The Long Bow of Bard N:125:of Bard I:19:13:3 W:52:20:40:12000 P:0:0d0:17:19:0 F:DEX | HIDE_TYPE | FREE_ACT | XTRA_MIGHT | SHOW_MODS | INSTA_ART # The Light Crossbow 'Cubragol' -> of Brand N:126:of Brand I:19:23:10 W:80:25:60:70000 P:0:0d0:10:14:0 F:SPEED | RES_FIRE | XTRA_MIGHT | ACTIVATE | SHOW_MODS | INSTA_ART L:USE: msgf("Your crossbow glows deep red...") L:USE: brand_bolts() L:USE: object.timeout = 999 L:DESC: return "fire branding of bolts every 999 turns" L:MAKE: add_ego_power(EGO_XTRA_POWER, object) L:SPOIL: return "Random ability or high resist" # The Short Bow of Marksmanship N:127:of Marksmanship I:19:12:4 W:25:20:30:21000 P:0:0d0:35:15:0 F:DEX | SENSE | INFRA | SUST_DEX | RES_BLIND | HIDE_TYPE | SHOW_MODS | F:LITE | SEE_INVIS | XTRA_MIGHT | XTRA_SHOTS | INSTA_ART # The Cloak 'Soulless One' N:128:'Soulless One' I:35:1:4 W:45:40:10:7000 P:1:0d0:0:0:25 F:STEALTH | RES_DARK | RES_NEXUS | DRAIN_EXP | DRAIN_STATS | PASS_WALL | F:CURSED | AUTO_CURSE | INSTA_ART D:This cloak looks ordinary, but you have a strange feeling that D:there is something very wrong about it. # The Long Sword 'Luck Blade' # Variable bonus: +10 saves, +1 per +2 to-hit or to-dam N:129:'Luck Blade' I:23:17:0 W:20:25:130:15000 P:0:4d5:13:14:0 F:VORPAL | LUCK_10 | BLESSED | FREE_ACT | LITE | INSTA_ART | EASY_ENCHANT # Luck bonus depending on enchantment - normally an extra +13, # but it will go down if the luck blade is disenchanted, and up # if it is enchanted more. L:BONUS: b.skills[SKILL_SAV] = b.skills[SKILL_SAV] + (object.to_h + object.to_d) / 2 L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:SPOIL: return "Random high resist; +1 save / +2 skill or +10% deadliness" D:A sword said to grant incredible luck to its wielder. N:130:'Stormbringer' I:23:30:2 W:95:0:180:20000 P:0:6d6:16:16:0 F:VAMPIRIC | STR | CON | FREE_ACT | HOLD_LIFE | RES_NEXUS F:RES_CHAOS | RES_NETHER | RES_CONF | INSTA_ART | CURSED F:HEAVY_CURSE | NO_TELE | QUESTITEM L:MAKE: if (one_in_(2) ~= 0) then L:MAKE: set_obj_flag(object, 2, TR2_DRAIN_EXP) L:MAKE: else L:MAKE: set_obj_flag(object, 2, TR2_AGGRAVATE) L:MAKE: end L:SPOIL: return "Drain exp or aggravate" D:The Stormbringer is now under your control. It still thrists for souls. # The Trident of Hunger # Unique power: Very high hunger, but regenerate 2 hp per turn # Unique power: Triple damage when the player is hungry N:131:of Hunger I:22:5:3 W:40:25:70:16000 P:0:2d12:8:20:0 F:RES_FEAR | RES_FIRE | RES_COLD | RES_CHAOS | SLAY_ANIMAL F:VAMPIRIC | STR F:INSTA_ART | CURSED | AUTO_CURSE L:TIMED: set_food(player.food - 5) L:TIMED: hp_player(2) L:HIT: if player.food < PY_FOOD_ALERT then L:HIT: dam = dam * 3 L:HIT: end L:SPOIL: return "Accelerated regen; triple damage when hungry" D:This trident has the likeness of a demonic face carved on the hilt. When D:you are hungry the mouth opens to reveal dozens of sharp teeth. # The Flail of the Miser # Note: This is twice as heavy as a normal flail # Unique power: One extra damage per 100,000 au N:132:of the Miser I:21:13:-2 W:60:25:300:20000 P:0:2d6:12:6:0 F:HOLD_LIFE | CHR F:INSTA_ART L:MAKE: add_ego_power(EGO_XTRA_HI_RESIST, object) L:MAKE: add_ego_power(EGO_XTRA_ABILITY, object) L:HIT: dam = dam + player.au / 100000 L:SPOIL: return "Random ability & high resist; +1 dam / 100,000 au" D:A metal flail made of pure gold, enchanted to be harder than steel. D:It would look perfect in the center of a huge pile of treasure... # The Cloak of the Jade Dragon # Variable bonus: +1 speed per 10 levels (round up), monks only # Unique power: Recharge is faster for monks N:133:of the Jade Dragon I:35:1:0 W:95:20:10:24000 P:1:0d0:8:8:35 F:ACTIVATE | RES_LITE | RES_DARK | RES_NETHER | RES_NEXUS | RES_DISEN F:HOLD_LIFE | SLOW_DIGEST | REGEN F:SUST_STR | SUST_CON | SUST_DEX | SUST_INT | SUST_WIS | SUST_CHR F:INSTA_ART L:USE: msgf("Your cloak glows bright green...") L:USE: inc_fast(rand_range(75, 150)) L:USE: object.timeout = rand_range(150, 300) L:DESC: return "haste self (75-150) every 150-300 turns" L:BONUS: if player.rp.pclass == CLASS_MONK then L:BONUS: b.pspeed = (player.lev + 9) / 10 L:BONUS: end L:SPOIL:return "Speed +1 / 10 levels (monk)"