Below is the full text to artilist.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/artilist.h#line123]], for example.
The latest source code for vanilla NetHack is at Source code.
The NetHack General Public License applies to screenshots, source code and other content from NetHack. |
1. /* SCCS Id: @(#)artilist.h 3.4 2003/02/12 */ 2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #include "config.h" /* WAC for blackmarket, spoon */ 6. 7. #ifdef MAKEDEFS_C 8. /* in makedefs.c, all we care about is the list of names */ 9. 10. #define A(nam,typ,s1,s2,mt,atk,dfn,cry,inv,al,cl,rac,cost) nam 11. 12. static const char *artifact_names[] = { 13. #else 14. /* in artifact.c, set up the actual artifact list structure */ 15. 16. #define A(nam,typ,s1,s2,mt,atk,dfn,cry,inv,al,cl,rac,cost) \ 17. { typ, nam, s1, s2, mt, atk, dfn, cry, inv, al, cl, rac, cost, 0 } 18. 19. #define NO_ATTK {0,0,0,0} /* no attack */ 20. #define NO_DFNS {0,0,0,0} /* no defense */ 21. #define NO_CARY {0,0,0,0} /* no carry effects */ 22. #define DFNS(c) {0,c,0,0} 23. #define CARY(c) {0,c,0,0} 24. #define PHYS(a,b) {0,AD_PHYS,a,b} /* physical */ 25. #define DRLI(a,b) {0,AD_DRLI,a,b} /* life drain */ 26. #define COLD(a,b) {0,AD_COLD,a,b} 27. #define FIRE(a,b) {0,AD_FIRE,a,b} 28. #define ELEC(a,b) {0,AD_ELEC,a,b} /* electrical shock */ 29. #define STUN(a,b) {0,AD_STUN,a,b} /* magical attack */ 30. 31. STATIC_OVL NEARDATA struct artifact artilist[] = { 32. #endif /* MAKEDEFS_C */ 33. 34. /* Artifact cost rationale: 35. * 1. The more useful the artifact, the better its cost. 36. * 2. Quest artifacts are highly valued. 37. * 3. Chaotic artifacts are inflated due to scarcity (and balance). 38. */ 39. 40. 41. /* [Tom] rearranged by alignment, so when people ask... */ 42. /* KMH -- Further arranged: 43. * 1. By alignment (but quest artifacts last). 44. * 2. By weapon class (skill). 45. */ 46. 47. /* dummy element #0, so that all interesting indices are non-zero */ 48. A("", STRANGE_OBJECT, 49. 0, 0, 0, NO_ATTK, NO_DFNS, NO_CARY, 0, A_NONE, NON_PM, NON_PM, 0L ), 50. 51. /*** Lawful artifacts ***/ 52. A("Firewall", ATHAME, 53. (SPFX_RESTR|SPFX_ATTK|SPFX_DEFN), 0, 0, 54. FIRE(4,4), FIRE(0,0), NO_CARY, 0, A_LAWFUL, PM_FLAME_MAGE, NON_PM, 400L ), 55. 56. /* 57. * The combination of SPFX_WARN and M2_something on an artifact 58. * will trigger EWarn_of_mon for all monsters that have the appropriate 59. * M2_something flags. In Sting's case it will trigger EWarn_of_mon 60. * for M2_ORC monsters. 61. */ 62. A("Sting", ELVEN_DAGGER, 63. (SPFX_WARN|SPFX_DCLAS), 0, M2_ORC, 64. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, NON_PM, PM_ELF, 800L ), 65. 66. A("Giantkiller", AXE, 67. (SPFX_RESTR|SPFX_DFLAG2), 0, M2_GIANT, 68. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_NEUTRAL, NON_PM, NON_PM, 800L ), 69. 70. A("Quick Blade", ELVEN_SHORT_SWORD, 71. SPFX_RESTR, 0, 0, 72. PHYS(9,2), NO_DFNS, NO_CARY, 0, A_LAWFUL, NON_PM, NON_PM, 1000L ), 73. 74. A("Orcrist", ELVEN_BROADSWORD, 75. SPFX_DFLAG2, 0, M2_ORC, 76. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, NON_PM, PM_ELF, 2000L ), 77. 78. A("Dragonbane", BROADSWORD, 79. (SPFX_RESTR|SPFX_DCLAS), 0, S_DRAGON, 80. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_NONE, NON_PM, NON_PM, 500L ), 81. 82. A("Excalibur", LONG_SWORD, 83. (SPFX_NOGEN|SPFX_RESTR|SPFX_SEEK|SPFX_DEFN|SPFX_INTEL|SPFX_SEARCH),0,0, 84. PHYS(5,10), DRLI(0,0), NO_CARY, 0, A_LAWFUL, PM_KNIGHT, NON_PM, 4000L ), 85. 86. A("Sunsword", LONG_SWORD, 87. (SPFX_RESTR|SPFX_DFLAG2), 0, M2_UNDEAD, 88. PHYS(5,0), DFNS(AD_BLND), NO_CARY, 0, A_LAWFUL, NON_PM, NON_PM, 1500L ), 89. 90. /* 91. * Ah, never shall I forget the cry, 92. * or the shriek that shrieked he, 93. * As I gnashed my teeth, and from my sheath 94. * I drew my Snickersnee! 95. * --Koko, Lord high executioner of Titipu 96. * (From Sir W.S. Gilbert's "The Mikado") 97. */ 98. A("Snickersnee", KATANA, 99. SPFX_RESTR, 0, 0, 100. PHYS(0,8), NO_DFNS, NO_CARY, 0, A_LAWFUL, PM_SAMURAI, NON_PM, 1200L ), 101. 102. #ifdef YEOMAN 103. /* KMH -- Renamed from Holy Sword of Law (Stephen White) 104. * This is an actual sword used in British coronations! 105. */ 106. A("Sword of Justice", LONG_SWORD, 107. (SPFX_RESTR|SPFX_DALIGN), 0, 0, 108. PHYS(5,12), NO_DFNS, NO_CARY, 0, A_LAWFUL, PM_YEOMAN, NON_PM, 1500L ), 109. #endif 110. 111. A("Demonbane", LONG_SWORD, 112. (SPFX_RESTR|SPFX_DFLAG2), 0, M2_DEMON, 113. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, NON_PM, NON_PM, 2500L ), 114. 115. A("Werebane", SILVER_SABER, 116. (SPFX_RESTR|SPFX_DFLAG2), 0, M2_WERE, 117. PHYS(5,0), DFNS(AD_WERE), NO_CARY, 0, A_NONE, NON_PM, NON_PM, 1500L ), 118. 119. A("Grayswandir", SILVER_SABER, 120. (SPFX_RESTR|SPFX_HALRES), 0, 0, 121. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, NON_PM, NON_PM, 8000L ), 122. 123. A("Skullcrusher", CLUB, 124. SPFX_RESTR, 0, 0, 125. PHYS(3,10), NO_DFNS, NO_CARY, 0, A_LAWFUL, PM_CAVEMAN, NON_PM, 300L ), 126. 127. A("Trollsbane", MORNING_STAR, 128. (SPFX_RESTR|SPFX_DCLAS), 0, S_TROLL, 129. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_NONE, NON_PM, NON_PM, 200L ), 130. 131. A("Ogresmasher", WAR_HAMMER, 132. (SPFX_RESTR|SPFX_DCLAS), 0, S_OGRE, 133. PHYS(5,0), NO_DFNS, NO_CARY, 0, A_NONE, NON_PM, NON_PM, 200L ), 134. 135. #ifdef YEOMAN 136. A("Reaper", HALBERD, 137. SPFX_RESTR, 0, 0, 138. PHYS(5,20), NO_DFNS, NO_CARY, 0, A_LAWFUL, PM_YEOMAN, NON_PM, 1000L ), 139. #endif 140. 141. A("Holy Spear of Light", SILVER_SPEAR, 142. (SPFX_RESTR|SPFX_INTEL|SPFX_DFLAG2), 0, M2_UNDEAD, 143. PHYS(5,10), NO_DFNS, NO_CARY, LIGHT_AREA, A_LAWFUL, NON_PM, NON_PM, 4000L ), 144. 145. 146. /*** Neutral artifacts ***/ 147. A("Magicbane", ATHAME, 148. (SPFX_RESTR|SPFX_ATTK|SPFX_DEFN), 0, 0, 149. STUN(3,4), DFNS(AD_MAGM), NO_CARY, 0, A_NEUTRAL, PM_WIZARD, NON_PM, 3500L ), 150. 151. A("Luckblade", SHORT_SWORD, 152. (SPFX_RESTR|SPFX_LUCK), 0, 0, 153. PHYS(5,5), NO_DFNS, NO_CARY, 0, A_NEUTRAL, NON_PM, PM_GNOME, 1000L ), 154. 155. A("Sword of Balance", SILVER_SHORT_SWORD, 156. SPFX_DALIGN, 0, 0, 157. PHYS(2,5), NO_DFNS, NO_CARY, 0, A_NEUTRAL, NON_PM, NON_PM, 5000L ), 158. 159. A("Frost Brand", LONG_SWORD, 160. (SPFX_RESTR|SPFX_ATTK|SPFX_DEFN), 0, 0, 161. COLD(5,0), COLD(0,0), NO_CARY, 0, A_NONE, NON_PM, NON_PM, 3000L ), 162. 163. A("Fire Brand", LONG_SWORD, 164. (SPFX_RESTR|SPFX_ATTK|SPFX_DEFN), 0, 0, 165. FIRE(5,0), FIRE(0,0), NO_CARY, 0, A_NONE, NON_PM, NON_PM, 3000L ), 166. 167. /* 168. * Two problems: 1) doesn't let trolls regenerate heads, 169. * 2) doesn't give unusual message for 2-headed monsters (but 170. * allowing those at all causes more problems than worth the effort). 171. */ 172. A("Vorpal Blade", LONG_SWORD, 173. (SPFX_RESTR|SPFX_BEHEAD), 0, 0, 174. PHYS(5,1), NO_DFNS, NO_CARY, 0, A_NEUTRAL, NON_PM, NON_PM, 4000L ), 175. 176. A("Disrupter", MACE, 177. (SPFX_RESTR|SPFX_DFLAG2), 0, M2_UNDEAD, 178. PHYS(5,30), NO_DFNS, NO_CARY, 0, A_NEUTRAL, PM_PRIEST, NON_PM, 500L ), 179. 180. /* 181. * Mjollnir will return to the hand of a Valkyrie when thrown 182. * if the wielder is a Valkyrie with strength of 25 or more. 183. */ 184. A("Mjollnir", HEAVY_HAMMER, /* Mjo:llnir */ 185. (SPFX_RESTR|SPFX_ATTK), 0, 0, 186. ELEC(5,24), NO_DFNS, NO_CARY, 0, A_NEUTRAL, PM_VALKYRIE, NON_PM, 4000L ), 187. 188. /* STEPHEN WHITE'S NEW CODE */ 189. A("Gauntlets of Defense", GAUNTLETS_OF_DEXTERITY, 190. SPFX_RESTR, SPFX_HPHDAM, 0, 191. NO_ATTK, NO_DFNS, NO_CARY, INVIS, A_NEUTRAL, PM_MONK, NON_PM, 5000L ), 192. 193. A("Mirrorbright", SHIELD_OF_REFLECTION, 194. (SPFX_RESTR|SPFX_HALRES|SPFX_REFLECT), 0, 0, 195. NO_ATTK, NO_DFNS, NO_CARY, 0, A_NEUTRAL, PM_HEALER, NON_PM, 5000L ), 196. 197. A("Deluder", CLOAK_OF_DISPLACEMENT, 198. (SPFX_RESTR|SPFX_STLTH|SPFX_LUCK), 0, 0, 199. NO_ATTK, NO_DFNS, NO_CARY, 0, A_NEUTRAL, PM_WIZARD, NON_PM, 5000L ), 200. 201. #ifdef TOURIST 202. A("Whisperfeet", SPEED_BOOTS, 203. (SPFX_RESTR|SPFX_STLTH|SPFX_LUCK), 0, 0, 204. NO_ATTK, NO_DFNS, NO_CARY, 0, A_NEUTRAL, PM_TOURIST, NON_PM, 5000L ), 205. #else 206. A("Whisperfeet", SPEED_BOOTS, 207. (SPFX_RESTR|SPFX_STLTH|SPFX_LUCK), 0, 0, 208. NO_ATTK, NO_DFNS, NO_CARY, 0, A_NEUTRAL, NON_PM, NON_PM, 5000L ), 209. #endif 210. 211. /*** Chaotic artifacts ***/ 212. A("Grimtooth", ORCISH_DAGGER, 213. SPFX_RESTR, 0, 0, 214. PHYS(2,6), NO_DFNS, NO_CARY, 0, A_CHAOTIC, NON_PM, PM_ORC, 300L ), 215. 216. A("Deep Freeze", ATHAME, 217. (SPFX_RESTR|SPFX_ATTK|SPFX_DEFN), 0, 0, 218. COLD(5,5), COLD(0,0), NO_CARY, 0, A_CHAOTIC, PM_ICE_MAGE, NON_PM, 400L ), 219. 220. 221. A("Serpent's Tongue", DAGGER, 222. SPFX_RESTR, 0, 0, 223. PHYS(2,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, PM_NECROMANCER, NON_PM, 400L ), 224. /* See artifact.c for special poison damage */ 225. 226. A("Cleaver", BATTLE_AXE, 227. SPFX_RESTR, 0, 0, 228. PHYS(3,6), NO_DFNS, NO_CARY, 0, A_NEUTRAL, PM_BARBARIAN, NON_PM, 1500L ), 229. 230. A("Doomblade", ORCISH_SHORT_SWORD, 231. SPFX_RESTR, 0, 0, 232. PHYS(0,10), NO_DFNS, NO_CARY, 0, A_CHAOTIC, PM_HUMAN_WEREWOLF, NON_PM, 1000L ), 233. 234. /* 235. * Stormbringer only has a 2 because it can drain a level, 236. * providing 8 more. 237. */ 238. A("Stormbringer", RUNESWORD, 239. (SPFX_RESTR|SPFX_ATTK|SPFX_DEFN|SPFX_INTEL|SPFX_DRLI), 0, 0, 240. DRLI(5,2), DRLI(0,0), NO_CARY, 0, A_CHAOTIC, NON_PM, NON_PM, 8000L ), 241. 242. #ifdef BLACKMARKET 243. A("Thiefbane", LONG_SWORD, 244. (SPFX_NOGEN|SPFX_RESTR|SPFX_BEHEAD|SPFX_DCLAS|SPFX_DRLI), 0, S_HUMAN, 245. DRLI(5,1), NO_DFNS, NO_CARY, 0, A_CHAOTIC, NON_PM, NON_PM, 1500L ), 246. #endif /* BLACKMARKET */ 247. 248. A("Deathsword", TWO_HANDED_SWORD, 249. (SPFX_RESTR|SPFX_DFLAG2), 0, M2_HUMAN, 250. PHYS(5,14), NO_DFNS, NO_CARY, 0, A_CHAOTIC, PM_BARBARIAN, NON_PM, 5000L ), 251. 252. A("Bat from Hell", BASEBALL_BAT, 253. (SPFX_RESTR), 0, 0, 254. PHYS(3,20), NO_DFNS, NO_CARY, 0, A_CHAOTIC, PM_ROGUE, NON_PM, 5000L ), 255. 256. A("Elfrist", ORCISH_SPEAR, 257. SPFX_DFLAG2, 0, M2_ELF, 258. PHYS(5,15), NO_DFNS, NO_CARY, 0, A_CHAOTIC, PM_HUMAN_WEREWOLF, PM_ORC, 300L ), 259. 260. A("Plague", DARK_ELVEN_BOW, /* KMH */ 261. (SPFX_RESTR|SPFX_DEFN), 0, 0, 262. PHYS(5,7), DFNS(AD_DRST), NO_CARY, 0, A_CHAOTIC, PM_DROW, NON_PM, 6000L ), 263. /* Auto-poison code in dothrow.c */ 264. 265. A("Hellfire", CROSSBOW, /* WAC */ 266. (SPFX_RESTR|SPFX_DEFN), 0, 0, 267. PHYS(5,7), FIRE(0,0), NO_CARY, 0, A_CHAOTIC, NON_PM, NON_PM, 4000L ), 268. /* Auto-explode code in dothrow.c, uhitm.c */ 269. 270. #ifdef P_SPOON 271. A("Houchou", SPOON, 272. (SPFX_RESTR), 0, 0, 273. NO_ATTK, NO_DFNS, NO_CARY, 0, A_CHAOTIC, NON_PM, NON_PM, 50000L ), 274. #endif 275. 276. 277. /*** Special Artifacts ***/ 278. 279. # ifdef WALLET_O_P 280. /* KMH -- made it a bag of holding */ 281. A("Wallet of Perseus", BAG_OF_HOLDING, 282. (SPFX_RESTR), 0, 0, 283. NO_ATTK, NO_DFNS, NO_CARY, 284. 0, A_NONE, NON_PM, NON_PM, 10000L ), 285. # endif /* WALLET_O_P */ 286. 287. A("Nighthorn", UNICORN_HORN, 288. (SPFX_NOGEN|SPFX_RESTR|SPFX_REFLECT), 0, 0, 289. NO_ATTK, NO_DFNS, NO_CARY, 290. 0, A_LAWFUL, NON_PM, NON_PM, 10000L ), 291. 292. A("The Key of Law", SKELETON_KEY, 293. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), 0, 0, 294. NO_ATTK, NO_DFNS, NO_CARY, 295. 0, A_LAWFUL, NON_PM, NON_PM, 1000L ), 296. 297. A("The Eye of the Beholder", EYEBALL, 298. (SPFX_NOGEN|SPFX_RESTR), 0, 0, 299. NO_ATTK, NO_DFNS, NO_CARY, 300. DEATH_GAZE, A_NEUTRAL, NON_PM, NON_PM, 500L ), 301. 302. A("The Key of Neutrality", SKELETON_KEY, 303. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), 0, 0, 304. NO_ATTK, NO_DFNS, NO_CARY, 305. 0, A_NEUTRAL, NON_PM, NON_PM, 1000L ), 306. 307. A("The Hand of Vecna", SEVERED_HAND, 308. (SPFX_NOGEN|SPFX_RESTR), (SPFX_REGEN|SPFX_HPHDAM), 0, 309. NO_ATTK, DRLI(0,0), CARY(AD_COLD), 310. SUMMON_UNDEAD, A_CHAOTIC, NON_PM, NON_PM, 700L ), 311. 312. A("The Key of Chaos", SKELETON_KEY, 313. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), 0, 0, 314. NO_ATTK, NO_DFNS, NO_CARY, 315. 0, A_CHAOTIC, NON_PM, NON_PM, 1000L ), 316. 317. 318. /*** The artifacts for the quest dungeon, all self-willed ***/ 319. 320. A("The Orb of Detection", CRYSTAL_BALL, 321. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), (SPFX_ESP|SPFX_HSPDAM), 0, 322. NO_ATTK, NO_DFNS, CARY(AD_MAGM), 323. INVIS, A_LAWFUL, PM_ARCHEOLOGIST, NON_PM, 2500L ), 324. 325. A("The Heart of Ahriman", LUCKSTONE, 326. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), SPFX_STLTH, 0, 327. /* this stone does double damage if used as a projectile weapon */ 328. PHYS(5,0), NO_DFNS, NO_CARY, 329. LEVITATION, A_NEUTRAL, PM_BARBARIAN, NON_PM, 2500L ), 330. 331. A("The Sceptre of Might", MACE, 332. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_DALIGN), 0, 0, 333. PHYS(3,5), NO_DFNS, CARY(AD_MAGM), 334. CONFLICT, A_LAWFUL, PM_CAVEMAN, NON_PM, 2500L ), 335. 336. #if 0 /* OBSOLETE */ 337. A("The Palantir of Westernesse", CRYSTAL_BALL, 338. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), 339. (SPFX_ESP|SPFX_REGEN|SPFX_HSPDAM), 0, 340. NO_ATTK, NO_DFNS, NO_CARY, 341. TAMING, A_CHAOTIC, NON_PM , PM_ELF, 8000L ), 342. #endif 343. 344. /* STEPHEN WHITE'S NEW CODE */ 345. A("The Candle of Eternal Flame", MAGIC_CANDLE, 346. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), (SPFX_WARN|SPFX_TCTRL), 0, 347. NO_ATTK, NO_DFNS, CARY(AD_COLD), 348. SUMMON_FIRE_ELEMENTAL, A_NEUTRAL, PM_FLAME_MAGE, NON_PM, 50000L ), 349. 350. A("The Staff of Aesculapius", QUARTERSTAFF, 351. (SPFX_NOGEN|SPFX_RESTR|SPFX_ATTK|SPFX_INTEL|SPFX_DRLI|SPFX_REGEN), 0,0, 352. DRLI(3,0), NO_DFNS, NO_CARY, 353. HEALING, A_NEUTRAL, PM_HEALER, NON_PM, 5000L ), 354. /* STEPHEN WHITE'S NEW CODE */ 355. A("The Storm Whistle", MAGIC_WHISTLE, 356. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), (SPFX_WARN|SPFX_TCTRL), 0, 357. NO_ATTK, NO_DFNS, CARY(AD_FIRE), 358. SUMMON_WATER_ELEMENTAL, A_LAWFUL, PM_ICE_MAGE, NON_PM, 1000L ), 359. 360. A("The Magic Mirror of Merlin", MIRROR, 361. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_SPEAK), SPFX_ESP, 0, 362. NO_ATTK, NO_DFNS, CARY(AD_MAGM), 363. 0, A_LAWFUL, PM_KNIGHT, NON_PM, 1500L ), 364. 365. A("The Eyes of the Overworld", LENSES, 366. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_XRAY), 0, 0, 367. NO_ATTK, NO_DFNS, CARY(AD_MAGM), 368. ENLIGHTENING, A_NEUTRAL, PM_MONK, NON_PM, 2500L ), 369. 370. A("The Great Dagger of Glaurgnaa", GREAT_DAGGER, 371. (SPFX_NOGEN|SPFX_RESTR|SPFX_ATTK|SPFX_INTEL|SPFX_DRLI|SPFX_DALIGN), 0, 0, 372. DRLI(8,4), NO_DFNS, CARY(AD_MAGM), 373. ENERGY_BOOST, A_CHAOTIC, PM_NECROMANCER, NON_PM, 50000L ), 374. 375. A("The Mitre of Holiness", HELM_OF_BRILLIANCE, 376. (SPFX_NOGEN|SPFX_RESTR|SPFX_DCLAS|SPFX_INTEL), 0, M2_UNDEAD, 377. NO_ATTK, NO_DFNS, CARY(AD_FIRE), 378. ENERGY_BOOST, A_LAWFUL, PM_PRIEST, NON_PM, 2000L ), 379. 380. A("The Longbow of Diana", BOW, 381. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_REFLECT), SPFX_ESP, 0, 382. PHYS(5,0), NO_DFNS, NO_CARY, 383. CREATE_AMMO, A_CHAOTIC, PM_RANGER, NON_PM, 4000L ), 384. 385. A("The Master Key of Thievery", SKELETON_KEY, 386. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_SPEAK), 387. (SPFX_WARN|SPFX_TCTRL|SPFX_HPHDAM), 0, 388. NO_ATTK, NO_DFNS, NO_CARY, 389. UNTRAP, A_CHAOTIC, PM_ROGUE, NON_PM, 3500L ), 390. 391. A("The Tsurugi of Muramasa", TSURUGI, 392. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_BEHEAD|SPFX_LUCK), 0, 0, 393. NO_ATTK, NO_DFNS, NO_CARY, 394. 0, A_LAWFUL, PM_SAMURAI, NON_PM, 4500L ), 395. 396. # ifdef TOURIST 397. A("The Platinum Yendorian Express Card", CREDIT_CARD, 398. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_DEFN), 399. (SPFX_ESP|SPFX_HSPDAM), 0, 400. NO_ATTK, NO_DFNS, CARY(AD_MAGM), 401. CHARGE_OBJ, A_NEUTRAL, PM_TOURIST, NON_PM, 7000L ), 402. # endif 403. 404. /* KMH -- More effective against normal monsters 405. * Was +10 to-hit, +d20 damage only versus vampires 406. */ 407. A("The Stake of Van Helsing", WOODEN_STAKE, 408. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), 0, 0, 409. PHYS(5,12), NO_DFNS, CARY(AD_MAGM), 410. 0, A_LAWFUL, PM_UNDEAD_SLAYER, NON_PM, 5000L ), 411. 412. A("The Orb of Fate", CRYSTAL_BALL, 413. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_LUCK), 414. (SPFX_WARN|SPFX_HSPDAM|SPFX_HPHDAM), 0, 415. NO_ATTK, NO_DFNS, NO_CARY, 416. LEV_TELE, A_NEUTRAL, PM_VALKYRIE, NON_PM, 3500L ), 417. 418. A("The Eye of the Aethiopica", AMULET_OF_ESP, 419. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), (SPFX_EREGEN|SPFX_HSPDAM), 0, 420. NO_ATTK, NO_DFNS, CARY(AD_MAGM), 421. CREATE_PORTAL, A_NEUTRAL, PM_WIZARD, NON_PM, 4000L ), 422. 423. #ifdef YEOMAN 424. A("The Crown of Saint Edward", HELM_OF_TELEPATHY, 425. (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), (SPFX_HSPDAM), 0, 426. NO_ATTK, NO_DFNS, CARY(AD_MAGM), 427. 0, A_LAWFUL, PM_YEOMAN, NON_PM, 5000L ), 428. #endif 429. 430. /* 431. * terminator; otyp must be zero 432. */ 433. A(0, 0, 0, 0, 0, NO_ATTK, NO_DFNS, NO_CARY, 0, A_NONE, NON_PM, NON_PM, 0L ) 434. 435. }; /* artilist[] (or artifact_names[]) */ 436. 437. #undef A 438. 439. #ifndef MAKEDEFS_C 440. #undef NO_ATTK 441. #undef NO_DFNS 442. #undef DFNS 443. #undef PHYS 444. #undef DRLI 445. #undef COLD 446. #undef FIRE 447. #undef ELEC 448. #undef STUN 449. #endif 450. 451. /*artilist.h*/