# CVS: Last edit by $Author: antimatter $ on $Date: 2003/12/04 23:27:15 $
# File: k_info.txt


# This file is used to initialize the "lib/raw/k_info.raw" file, which is
# used to initialize the "object kind" 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/k_info.raw" file.

# Available slots (?):
#   29, 29, 90, 177, 178, 179, 182, 183, 195, 196, 205,
#   268, 270, 293, 299, 350, 351, 399, 413, 414, 423-479

# XXX XXX Add some "IGNORE_XXX" flags to Rings, Amulets, etc.

# The old "MULTI_HUED" objects are now "violet", and no other object
# is violet, so all six violet objects can be made "multi-hued", though
# this would be a heinous hack.  XXX XXX

# Note that object zero is used for the "stack" picture (unused).

# === Understanding k_info.txt ===

# N: serial number : & object name~
# G: symbol : color
# I: tval : sval : pval
# W: depth : rarity : weight : cost
# P: base armor class : base damage : plus to-hit : plus to-dam : plus to-ac
# A: depth/rarity : depth/rarity : etc
# F: flag | flag | etc

# 'N' indicates the beginning of an entry. The serial number must
# increase for each new item. The '&' and '~' symbols are use to
# include articles and pluralization as necessary to ensure
# grammatical correctness in object descriptions.

# 'G' is for graphics - symbol and color. There are 16 colors, as
# follows:

# D - Dark Gray    w - White          s - Gray          o - Orange
# r - Red          g - Green          b - Blue          u - Brown
# d - Black        W - Light Gray     v - Violet        y - Yellow
# R - Light Red    G - Light Green    B - Light Blue    U - Light Brown

# '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 items value.

# 'P' is for power information. The items base armor class, its base
# damage and pluses to-hit, to-dam and to-ac.

# 'A' is for allocation - depth and rarity, in pairs. This allows an
# item to have multiple natural depths and rarities. It is used to
# ensure that certain vital items such as food and identify scrolls
# are found throughout the dungeon.

# '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.

# 'L' is for lua scripts:
# USE - self-explanatory. returns used,ident
# SMASH - potion smash effect. returns angry,ident

# Version stamp (required)

V:2.7.4


##### Something special #####

N:0:something
G:&:w


##### Mushrooms #####

N:1:Blindness
G:,:d
I:80:1:500
W:9:0:1:0
A:9/2
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_RES_BLIND) and inc_blind(rand_range(200, 400))

N:2:Paranoia
G:,:d
I:80:2:500
W:9:0:1:0
A:9/2
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_RES_FEAR) and inc_afraid(rand_range(10, 20))

N:3:Confusion
G:,:d
I:80:3:500
W:9:0:1:0
A:9/2
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_RES_CONF) and inc_confused(rand_range(10, 20))

N:4:Hallucination
G:,:d
I:80:4:500
W:17:0:1:0
A:17/2
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_RES_CHAOS) and inc_image(rand_range(250, 500))

N:5:Cure Poison
G:,:d
I:80:12:500
W:9:0:1:60
A:9/1
F:EASY_KNOW
L:USE:	ident = clear_poisoned()

N:6:Cure Blindness
G:,:d
I:80:13:500
W:9:0:1:50
A:9/1
F:EASY_KNOW
L:USE:	ident = clear_blind()

N:7:Cure Paranoia
G:,:d
I:80:14:500
W:9:0:1:25
A:9/1
F:EASY_KNOW
L:USE:	ident = clear_afraid()

N:8:Cure Confusion
G:,:d
I:80:15:500
W:9:0:1:50
A:9/1
F:EASY_KNOW
L:USE:	ident = clear_confused()

N:9:Weakness
G:,:d
I:80:6:500
W:9:0:1:0
A:9/2
P:0:5d5:0:0:0
F:EASY_KNOW
L:USE:	take_hit(damroll(6, 6), "poisonous food"); do_dec_stat(A_STR)

N:10:Unhealth
G:,:d
I:80:10:500
W:26:0:1:100
A:26/1
P:0:10d10:0:0:0
F:EASY_KNOW
L:USE:	take_hit(damroll(10, 10), "poisonous food"); do_dec_stat(A_CON)

N:11:Restore Constitution
G:,:d
I:80:18:500
W:25:0:1:350
A:25/1
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_CON)

N:12:Restoring
G:,:d
I:80:19:500
W:50:0:1:1000
A:35/28:52/14:65/4
F:EASY_KNOW
L:USE:	if do_res_stat(A_STR) then ident = TRUE end
L:USE:	if do_res_stat(A_INT) then ident = TRUE end
L:USE:	if do_res_stat(A_WIS) then ident = TRUE end
L:USE:	if do_res_stat(A_DEX) then ident = TRUE end
L:USE:	if do_res_stat(A_CON) then ident = TRUE end
L:USE:	if do_res_stat(A_CHR) then ident = TRUE end

N:13:Stupidity
G:,:d
I:80:8:500
W:26:0:1:0
A:26/3
F:EASY_KNOW
L:USE:	take_hit(damroll(8, 8), "poisonous food"); do_dec_stat(A_INT)

N:14:Naivety
G:,:d
I:80:9:500
W:26:0:1:0
A:26/3
F:EASY_KNOW
L:USE:	take_hit(damroll(8, 8), "poisonous food"); do_dec_stat(A_WIS)

N:15:Poison
G:,:d
I:80:0:500
W:9:0:1:0
A:9/2
P:0:4d4:0:0:0
F:EASY_KNOW
L:USE:  ident = res_pois_lvl() ~= 0 and inc_poisoned(rand_range(10, 20))

N:16:Sickness
G:,:d
I:80:7:500
W:17:0:1:0
A:17/2
P:0:4d4:0:0:0
F:EASY_KNOW
L:USE:	take_hit(damroll(6, 6), "poisonous food"); do_dec_stat(A_CON)

N:17:Paralysis
G:,:d
I:80:5:500
W:35:0:1:0
A:35/2
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_FREE_ACT) and inc_paralyzed(rand_range(10, 20))

N:18:Restore Strength
G:,:d
I:80:17:500
W:25:0:1:350
A:25/1
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_STR)

N:19:Disease
G:,:d
I:80:11:500
W:35:0:1:300
A:35/2
P:0:15d15:0:0:0
F:EASY_KNOW
L:USE:	take_hit(damroll(10, 10), "poisonous food"); do_dec_stat(A_STR)

N:20:Cure Serious Wounds
G:,:d
I:80:16:500
W:16:0:1:75
A:16/1
F:EASY_KNOW
L:USE:	ident = hp_player(damroll(4, 8))

##### Normal Food #####

N:21:& Ration~ of Food
G:,:U
I:80:35:5000
W:0:0:10:3
A:1/1:9/1:17/1
F:EASY_KNOW
L:USE:	msgf("That tastes good.")

N:22:& Hard Biscuit~
G:,:U
I:80:32:500
W:0:0:2:1
A:1/1
F:EASY_KNOW
L:USE:	msgf("That tastes good.")

N:23:& Strip~ of Venison
G:,:u
I:80:33:1500
W:0:0:2:2
A:1/1
F:EASY_KNOW
L:USE:	msgf("That tastes good.")

N:24:& Slime Mold~
G:,:g
I:80:36:3000
W:1:0:5:2
A:1/1
F:EASY_KNOW
L:USE:	msgf("That tastes good.")
D:A green, slimy... something.

N:25:& Piece~ of Elvish Waybread
G:,:B
I:80:37:7500
W:10:0:3:10
A:10/1:20/1:30/1:40/1
F:EASY_KNOW
L:USE:	msgf("That tastes good."); clear_poisoned(); hp_player(damroll(4, 8))

N:26:& Pint~ of Fine Ale
G:,:y
I:80:38:500
W:0:0:5:1
A:1/3
F:EASY_KNOW
L:USE:	msgf("That tastes good.")

N:27:& Pint~ of Fine Wine
G:,:r
I:80:39:1000
W:0:0:10:2
A:1/3
F:EASY_KNOW
L:USE:	msgf("That tastes good.")

##### Extra digger #####

N:28:& Mattock~
G:\:D
I:20:7:2
W:30:0:250:700
A:30/12:50/1
P:0:1d8:0:0:0
F:SHOW_MODS | TUNNEL

##### Edged Weapons #####

N:29:& No-dachi~
G:|:W
I:23:27:0
W:61:0:190:1000
A:61/3:80/1
P:0:5d4:0:0:0
F:SHOW_MODS

N:30:& Broken Dagger~
G:|:D
I:23:1:0
W:0:0:5:1
A:1/1
P:0:1d1:-2:-4:0
F:SHOW_MODS

N:31:& Bastard Sword~
G:|:W
I:23:21:0
W:26:0:140:350
A:26/1
P:0:3d4:0:0:0
F:SHOW_MODS

N:32:& Scimitar~
G:|:W
I:23:18:0
W:17:0:130:250
A:17/1
P:0:2d5:0:0:0
F:SHOW_MODS

N:33:& Tulwar~
G:|:W
I:23:15:0
W:9:0:100:200
A:9/1
P:0:2d4:0:0:0
F:SHOW_MODS

N:34:& Broad Sword~
G:|:W
I:23:16:0
W:17:0:150:255
A:17/1:26/1
P:0:2d5:0:0:0
F:SHOW_MODS

N:35:& Short Sword~
G:|:W
I:23:10:0
W:9:0:80:90
A:9/1
P:0:1d7:0:0:0
F:SHOW_MODS

N:36:& Blade~ of Chaos
G:|:v
I:23:30:0
W:95:0:180:4000
A:95/4
P:0:6d5:0:0:0
F:RES_CHAOS | SHOW_MODS

N:37:& Two-Handed Sword~
G:|:W
I:23:25:0
W:53:0:200:775
A:53/1:65/1:80/1
P:0:3d6:0:0:0
F:SHOW_MODS

N:38:& Main Gauche~
G:|:W
I:23:5:0
W:5:0:30:25
A:5/2
P:0:1d5:0:0:0
F:SHOW_MODS

N:39:& Cutlass~
G:|:W
I:23:12:0
W:9:0:110:85
A:9/1
P:0:1d7:0:0:0
F:SHOW_MODS

N:40:& Executioner's Sword~
G:|:r
I:23:28:0
W:65:0:260:850
A:65/1:85/1
P:0:4d5:0:0:0
F:SHOW_MODS

N:41:& Katana~
G:|:W
I:23:20:0
W:35:0:120:400
A:35/1
P:0:3d4:0:0:0
F:SHOW_MODS

N:42:& Long Sword~
G:|:W
I:23:17:0
W:17:0:130:300
A:17/1:35/1
P:0:2d5:0:0:0
F:SHOW_MODS

N:43:& Dagger~
G:|:W
I:23:4:0
W:0:0:12:10
A:1/1:9/2
P:0:1d4:0:0:0
F:THROW | SHOW_MODS

N:44:& Rapier~
G:|:W
I:23:7:0
W:9:0:40:42
A:9/1
P:0:1d6:0:0:0
F:SHOW_MODS

N:45:& Sabre~
G:|:W
I:23:11:0
W:9:0:50:50
A:9/1
P:0:1d7:0:0:0
F:SHOW_MODS

N:46:& Small Sword~
G:|:W
I:23:8:0
W:9:0:75:48
A:9/1
P:0:1d6:0:0:0
F:SHOW_MODS

N:47:& Broken Sword~
G:|:D
I:23:2:0
W:0:0:30:2
A:0/1
P:0:1d2:-2:-4:0
F:SHOW_MODS

##### Hafted Weapons #####

N:48:& Ball-and-Chain~
G:\:D
I:21:6:0
W:35:0:150:200
A:35/2
P:0:2d4:0:0:0
F:SHOW_MODS

N:49:& Whip~
G:\:D
I:21:2:0
W:5:0:30:30
A:5/1
P:0:1d3:0:0:0
F:SHOW_MODS

N:50:& Flail~
G:\:D
I:21:13:0
W:17:0:150:350
A:17/1:25/1
P:0:2d6:0:0:0
F:SHOW_MODS

N:51:& Two-Handed Flail~
G:\:y
I:21:18:0
W:60:0:280:590
A:60/1:80/1
P:0:3d6:0:0:0
F:SHOW_MODS

N:52:& Morning Star~
G:\:D
I:21:12:0
W:17:0:150:400
A:17/1
P:0:2d6:0:0:0
F:SHOW_MODS

N:53:& Mace~
G:\:D
I:21:5:0
W:9:0:120:130
A:9/1
P:0:2d4:0:0:0
F:SHOW_MODS

N:54:& Quarterstaff~
G:\:U
I:21:3:0
W:30:0:150:200
A:30/12:50/1
P:0:1d18:0:0:0
F:SHOW_MODS

N:55:& War Hammer~
G:\:D
I:21:8:0
W:9:0:120:225
A:9/1
P:0:3d3:0:0:0
F:SHOW_MODS

N:56:& Lead-Filled Mace~
G:\:D
I:21:15:0
W:26:0:180:500
A:26/1
P:0:3d4:0:0:0
F:SHOW_MODS

N:57:& Mace~ of Disruption
G:\:v
I:21:20:0
W:100:0:400:4300
A:100/2
P:0:5d8:0:0:0
F:SLAY_UNDEAD | SHOW_MODS

N:58:& Lucerne Hammer~
G:/:B
I:22:12:0
W:17:0:120:375
A:17/1
P:0:2d5:0:0:0
F:SHOW_MODS

##### Polearms #####

N:59:& Beaked Axe~
G:/:s
I:22:10:0
W:26:0:180:400
A:26/1
P:0:2d6:0:0:0
F:SHOW_MODS

N:60:& Glaive~
G:/:s
I:22:13:0
W:35:0:190:380
A:35/1
P:0:2d6:0:0:0
F:SHOW_MODS

N:61:& Halberd~
G:/:s
I:22:15:0
W:43:0:190:430
A:43/1
P:0:3d5:0:0:0
F:SHOW_MODS

N:62:& Awl-Pike~
G:/:s
I:22:4:0
W:30:0:160:340
A:30/1
P:0:1d15:0:0:0
F:SHOW_MODS

N:63:& Pike~
G:/:s
I:22:8:0
W:26:0:160:360
A:26/1
P:0:2d5:0:0:0
F:SHOW_MODS

N:64:& Spear~
G:/:s
I:22:2:0
W:5:0:50:40
A:5/5:9/1
P:0:1d6:0:0:0
F:SHOW_MODS

N:65:& Trident~
G:/:y
I:22:5:0
W:15:0:70:120
A:15/1
P:0:1d12:0:0:0
F:SHOW_MODS

N:66:& Lance~
G:/:s
I:22:20:0
W:30:0:300:300
A:30/5:40/1
P:0:1d17:0:0:0
F:SHOW_MODS

N:67:& Great Axe~
G:/:s
I:22:25:0
W:65:0:230:500
A:65/1:95/1
P:0:4d4:0:0:0
F:SHOW_MODS

N:68:& Battle Axe~
G:/:s
I:22:22:0
W:26:0:170:340
A:26/1
P:0:2d8:0:0:0
F:SHOW_MODS

N:69:& Lochaber Axe~
G:/:D
I:22:28:0
W:70:0:250:750
A:70/1:90/1
P:0:3d8:0:0:0
F:SHOW_MODS

N:70:& Broad Axe~
G:/:s
I:22:11:0
W:26:0:160:310
A:26/1
P:0:2d6:0:0:0
F:SHOW_MODS

N:71:& Scythe~
G:/:s
I:22:17:0
W:70:0:250:800
A:70/1:92/1
P:0:5d3:0:0:0
F:SHOW_MODS

N:72:& Scythe~ of Slicing
G:/:r
I:22:30:0
W:93:0:250:3500
A:93/1:105/1
P:0:8d4:0:0:0
F:SHOW_MODS


##### Bows, Crossbows, Slings #####

N:73:& Short Bow~
G:}:U
I:19:12:0
W:5:0:30:50
A:5/1:60/1
F:SHOW_MODS

N:74:& Long Bow~
G:}:U
I:19:13:0
W:17:0:40:120
A:17/1:70/1
F:SHOW_MODS

N:75:& Light Crossbow~
G:}:s
I:19:23:0
W:26:0:60:140
A:26/1:80/1
F:SHOW_MODS

N:76:& Heavy Crossbow~
G:}:s
I:19:24:0
W:52:0:100:300
A:52/1:90/1
F:SHOW_MODS

N:77:& Sling~
G:}:u
I:19:2:0
W:1:0:5:5
A:1/1:50/1
F:SHOW_MODS


##### Missiles #####

N:78:& Arrow~
G:{:U
I:17:1:0
W:10:0:2:5
A:10/20:17/2:43/2
P:0:1d12:0:0:0
F:SHOW_MODS

N:79:& Seeker Arrow~
G:{:G
I:17:2:0
W:50:0:2:50
A:50/20:80/2:90/1:105/1
P:0:1d20:0:0:0
F:SHOW_MODS

N:80:& Bolt~
G:{:s
I:18:0:0
W:5:0:3:5
A:5/1:43/2:70/2
P:0:1d10:0:0:0
F:SHOW_MODS

N:81:& Seeker Bolt~
G:{:B
I:18:2:0
W:60:0:3:75
A:60/40:90/4:100/4
P:0:1d20:0:0:0
F:SHOW_MODS

N:82:& Rounded Pebble~
G:{:s
I:16:0:0
W:0:0:6:1
A:0/1:5/1
P:0:2d2:0:0:0
F:SHOW_MODS

N:83:& Iron Shot~
G:{:s
I:16:1:0
W:10:0:8:2
A:10/1:17/1
P:0:4d2:0:0:0
F:SHOW_MODS

##### Shovels and Picks #####

N:84:& Shovel~
G:\:s
I:20:1:1
W:4:0:60:10
A:4/4
P:0:1d2:0:0:0
F:SHOW_MODS | TUNNEL

N:85:& Gnomish Shovel~
G:\:G
I:20:2:2
W:35:0:60:100
A:35/4
P:0:1d2:0:0:0
F:SHOW_MODS | TUNNEL

N:86:& Dwarven Shovel~
G:\:B
I:20:3:3
W:55:0:120:300
A:55/1
P:0:1d3:0:0:0
F:SHOW_MODS | TUNNEL

N:87:& Pick~
G:\:s
I:20:4:1
W:17:0:150:50
A:17/16
P:0:1d3:0:0:0
F:SHOW_MODS | TUNNEL

N:88:& Orcish Pick~
G:\:g
I:20:5:2
W:52:0:150:300
A:52/4
P:0:1d3:0:0:0
F:SHOW_MODS | TUNNEL

N:89:& Dwarven Pick~
G:\:b
I:20:6:3
W:75:0:200:600
A:75/1
P:0:1d4:0:0:0
F:SHOW_MODS | TUNNEL


##### Armor #####
N:90:& Elven Cloak~
G:(:G
I:35:2:0
W:52:0:5:3000
A:52/4:95/1
P:4:0d0:0:0:4
F:IGNORE_ACID | IGNORE_COLD | IGNORE_FIRE | IGNORE_ELEC
F:STEALTH | SENSE
D:This finely woven cloak seems to blend in with any background.

N:91:& Pair~ of Soft Leather Boots
G:]:U
I:30:2:0
W:5:0:20:7
A:5/1
P:2:1d1:0:0:0

N:92:& Pair~ of Hard Leather Boots
G:]:U
I:30:3:0
W:9:0:40:12
A:9/1:43/1
P:3:1d1:0:0:0

N:93:& Pair~ of Metal Shod Boots
G:]:s
I:30:6:0
W:20:0:80:50
A:20/5:35/1:80/1
P:6:1d1:0:0:0

N:94:& Hard Leather Cap~
G:]:u
I:32:2:0
W:5:0:15:12
A:5/1
P:2:0d0:0:0:0

N:95:& Metal Cap~
G:]:s
I:32:3:0
W:17:0:20:30
A:17/1
P:3:1d1:0:0:0

N:96:& Iron Helm~
G:]:s
I:32:5:0
W:35:0:75:75
A:35/1
P:5:1d3:0:0:0

N:97:& Steel Helm~
G:]:W
I:32:6:0
W:45:0:60:220
A:45/1
P:6:1d3:0:0:0

N:98:& Iron Crown~
G:]:s
I:33:10:0
W:60:0:20:200
A:60/1
P:0:1d1:0:0:0

N:99:& Golden Crown~
G:]:y
I:33:11:0
W:75:0:30:500
A:75/1
P:0:1d1:0:0:0
F:IGNORE_ACID

N:100:& Jewel Encrusted Crown~
G:]:v
I:33:12:0
W:80:0:40:1000
A:80/1
P:0:1d1:0:0:0
F:IGNORE_ACID

N:101:& Robe~
G:(:b
I:36:2:0
W:1:0:20:4
A:1/1:80/1
P:2:0d0:0:0:0

N:102:& Filthy Rag~
G:(:D
I:36:1:0
W:0:0:20:1
A:0/1
P:1:0d0:0:0:-1
D:This looks like it was once a fine robe, but now it's ripped and tattered.

N:103:Soft Leather Armour~
G:(:U
I:36:4:0
W:5:0:80:18
A:5/1
P:4:0d0:0:0:0

N:104:Soft Studded Leather~
G:(:U
I:36:5:0
W:5:0:90:35
A:5/1
P:5:1d1:0:0:0

N:105:Hard Leather Armour~
G:(:U
I:36:6:0
W:9:0:100:150
A:9/1
P:6:1d1:-1:0:0

N:106:Hard Studded Leather~
G:(:U
I:36:7:0
W:17:0:110:250
A:17/1
P:7:1d2:-1:0:0

N:107:Leather Scale Mail~
G:(:U
I:36:11:0
W:26:0:140:500
A:26/1
P:11:1d1:-1:0:0

N:108:Metal Scale Mail~
G:[:s
I:37:3:0
W:43:0:250:600
A:43/1
P:13:1d4:-2:0:0

N:109:Chain Mail~
G:[:s
I:37:4:0
W:43:0:220:800
A:43/1
P:14:1d4:-2:0:0

N:110:Rusty Chain Mail~
G:[:r
I:37:1:0
W:25:0:200:550
A:43/1
P:14:1d4:-5:0:-8

N:111:Augmented Chain Mail~
G:[:s
I:37:6:0
W:52:0:270:1200
A:52/1
P:16:1d4:-2:0:0

N:112:Bar Chain Mail~
G:[:s
I:37:8:0
W:61:0:280:1500
A:61/1
P:18:1d4:-2:0:0

N:113:Metal Brigandine Armour~
G:[:s
I:37:9:0
W:61:0:290:1750
A:61/1
P:19:1d4:-3:0:0

N:114:Partial Plate Armour~
G:[:W
I:37:12:0
W:70:0:260:2000
A:70/1
P:22:1d6:-3:0:0

N:115:Metal Lamellar Armour~
G:[:W
I:37:13:0
W:70:0:340:2500
A:70/1
P:23:1d6:-3:0:0

N:116:Full Plate Armour~
G:[:W
I:37:15:0
W:75:0:380:5000
A:75/1
P:25:2d4:-3:0:0

N:117:Ribbed Plate Armour~
G:[:W
I:37:18:0
W:80:0:380:6000
A:80/1
P:28:2d4:-3:0:0

N:118:Adamantite Plate Mail~
G:[:G
I:37:30:0
W:95:0:420:20000
A:95/2
P:40:2d4:-4:0:0
F:IGNORE_ACID

N:119:Mithril Plate Mail~
G:[:B
I:37:25:0
W:90:0:300:15000
A:90/1
P:35:2d4:-3:0:0
F:IGNORE_ACID

N:120:Mithril Chain Mail~
G:[:B
I:37:20:0
W:85:0:150:10000
A:85/1
P:28:1d4:-1:0:0
F:IGNORE_ACID

N:121:Double Chain Mail~
G:[:s
I:37:7:0
W:52:0:250:1500
A:52/1
P:16:1d4:-2:0:0


# This shield does not belong here

N:122:& Shield~ of Deflection
G:[:B
I:34:10:0
W:95:0:100:5000
A:95/2
P:14:1d4:0:0:10
F:IGNORE_ACID


### The Cloaks ###

N:123:& Cloak~
G:(:g
I:35:1:0
W:1:0:10:3
A:1/1:35/1
P:1:0d0:0:0:0

N:124:& Shadow Cloak~
G:(:D
I:35:6:0
W:100:0:5:7500
A:100/1
P:6:0d0:0:0:4
F:RES_DARK | RES_LITE
D:A cloak that appears to be woven out of strands of pure darkness.


### The Gloves ###

N:125:& Set~ of Leather Gloves
G:]:U
I:31:1:0
W:1:0:5:3
A:1/1
P:1:0d0:0:0:0

N:126:& Set~ of Gauntlets
G:]:U
I:31:2:0
W:17:0:25:35
A:17/1:40/1
P:2:1d1:0:0:0

N:127:& Set~ of Cesti
G:]:W
I:31:5:0
W:45:0:40:100
A:45/1
P:5:1d1:0:0:0


### The shields ###

N:128:& Small Leather Shield~
G:):U
I:34:2:0
W:5:0:50:30
A:5/1
P:3:1d2:0:0:0

N:129:& Large Leather Shield~
G:):U
I:34:4:0
W:26:0:100:120
A:26/1:60/1
P:6:1d4:0:0:0

N:130:& Small Metal Shield~
G:):s
I:34:3:0
W:17:0:65:50
A:17/1:40/1
P:5:1d3:0:0:0

N:131:& Large Metal Shield~
G:):s
I:34:5:0
W:52:0:120:400
A:52/1:70/1
P:8:1d5:0:0:0


##### Rings #####

# Note that most rings with a pval-dependent value
# cost the same as a +1 bonus (higher bonuses
# increase the cost automatically), and most rings
# which give a single flag are costed at half the
# price of the flag.

N:132:Strength
G:=:d
I:45:24:5
W:52:0:2:500
A:52/1
F:STR | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:133:Dexterity
G:=:d
I:45:26:5
W:52:0:2:500
A:52/1
F:DEX | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:134:Constitution
G:=:d
I:45:27:5
W:52:0:2:500
A:52/1
F:CON | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:135:Intelligence
G:=:d
I:45:25:5
W:52:0:2:500
A:52/1
F:INT | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

# Ring of speed costs 5000 + value of bonus
N:136:Speed
G:=:d
I:45:31:10
W:100:0:2:5500
A:100/1
F:SPEED | HIDE_TYPE
D:This ring almost vibrates with power.
L:MAKE:	object.pval = randint1(object.pval / 2) + m_bonus(object.pval, level)
L:MAKE:	while (one_in_(2) ~= 0) do object.pval = object.pval + 1 end
L:MAKE:	allow_curse = TRUE
L:MAKE:	rating_boost = 25

N:137:Sensing
G:=:d
I:45:23:5
W:9:0:2:50
A:9/2
F:SENSE | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:138:Teleportation
G:=:d
I:45:4:0
W:9:0:2:125
A:9/2
F:CURSED | TELEPORT | EASY_KNOW

N:139:Slow Digestion
G:=:d
I:45:6:0
W:9:0:2:125
A:9/2
F:SLOW_DIGEST | EASY_KNOW

N:140:Resist Fire
G:=:d
I:45:8:0
W:17:0:2:250
A:17/2
F:RES_FIRE | IGNORE_FIRE | EASY_KNOW

N:141:Resist Cold
G:=:d
I:45:9:0
W:17:0:2:250
A:17/2
F:RES_COLD | IGNORE_COLD | EASY_KNOW

N:142:Levitation
G:=:d
I:45:7:0
W:9:0:2:125
A:9/2
F:FEATHER | EASY_KNOW

N:143:Poison Immunity
G:=:d
I:45:20:0
W:60:0:2:5000
A:50/8:85/2
F:IM_POIS | EASY_KNOW

N:144:Free Action
G:=:d
I:45:21:0
W:25:0:2:500
A:25/2
F:FREE_ACT | EASY_KNOW

N:145:Weakness
G:=:d
I:45:2:-5
W:9:0:2:0
A:9/2
F:CURSED | STR | HIDE_TYPE
L:MAKE:	object.pval = -(1 + m_bonus(-(object.pval), level))

N:146:Flames
G:=:d
I:45:18:0
W:75:0:2:1500
A:75/1
P:0:0d0:0:0:15
F:RES_FIRE | IGNORE_FIRE | ACTIVATE
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, 100, 2)
L:USE:	inc_oppose_fire(rand_range(20, 40))
L:USE:	object.timeout = rand_range(25, 50)
L:DESC:	return "ball of fire and resist fire"
L:MAKE:	object.to_a = rand_range(5, 10) + m_bonus(10, level)
D:It feels warm to the touch.

N:147:Acid
G:=:d
I:45:17:0
W:75:0:2:1500
A:75/1
P:0:0d0:0:0:15
F:RES_ACID | IGNORE_ACID | ACTIVATE
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	fire_ball(GF_ACID, dir, 100, 2)
L:USE:	inc_oppose_acid(rand_range(20, 40))
L:USE:	object.timeout = rand_range(25, 50)
L:DESC:	return "ball of acid and resist acid"
L:MAKE:	object.to_a = rand_range(5, 10) + m_bonus(10, level)
D:It is covered with a strange sheen.

N:148:Ice
G:=:d
I:45:19:0
W:75:0:2:1500
A:75/1
P:0:0d0:0:0:15
F:RES_COLD | IGNORE_COLD | ACTIVATE
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:	inc_oppose_cold(rand_range(20, 40))
L:USE:	object.timeout = rand_range(25, 50)
L:DESC: return "ball of cold and resist cold"
L:MAKE:	object.to_a = rand_range(5, 10) + m_bonus(10, level)
D:It feels cool to the touch.

N:149:Woe
G:=:d
I:45:0:-5
W:75:0:2:0
A:75/2
F:CURSED | TELEPORT | WIS | CHR | HIDE_TYPE
L:MAKE:	object.pval = -(1 + m_bonus(-(object.pval), level))
L:MAKE:	object.to_a = -(5 + m_bonus(10, level))

N:150:Stupidity
G:=:d
I:45:3:-5
W:9:0:2:0
A:9/2
F:CURSED | INT | HIDE_TYPE
L:MAKE:	object.pval = -(1 + m_bonus(-(object.pval), level))

# The value of a ring of combat is in the bonuses
N:151:Combat
G:=:d
I:45:29:0
W:35:0:2:100
A:35/1
L:MAKE:	object.to_d = rand_range(5, 13) + m_bonus(10, level)
L:MAKE:	allow_curse = TRUE

# The value of a ring of skill is in the bonuses
N:152:Skill
G:=:d
I:45:28:0
W:35:0:2:100
A:35/1
L:MAKE:	object.to_h = rand_range(5, 13) + m_bonus(10, level)
L:MAKE:	allow_curse = TRUE

# The value of a ring of protection is in the bonuses
N:153:Protection
G:=:d
I:45:16:0
W:17:0:2:100
A:17/2
L:MAKE:	object.to_a = rand_range(5, 13) + m_bonus(10, level)
L:MAKE:	allow_curse = TRUE

N:154:Aggravate Monster
G:=:d
I:45:1:0
W:9:0:2:0
A:9/3
F:CURSED | AGGRAVATE | EASY_KNOW

N:155:See Invisible
G:=:d
I:45:22:0
W:30:0:2:250
A:30/3:52/1
F:SEE_INVIS | EASY_KNOW

N:156:Sustain Strength
G:=:d
I:45:10:0
W:20:0:2:100
A:20/8:52/8
F:SUST_STR | EASY_KNOW

N:157:Sustain Intelligence
G:=:d
I:45:11:0
W:20:0:2:100
A:20/8:52/8
F:SUST_INT | EASY_KNOW

N:158:Sustain Wisdom
G:=:d
I:45:12:0
W:20:0:2:100
A:20/8:52/8
F:SUST_WIS | EASY_KNOW

N:159:Sustain Constitution
G:=:d
I:45:13:0
W:20:0:2:100
A:20/8:52/8
F:SUST_CON | EASY_KNOW

N:160:Sustain Dexterity
G:=:d
I:45:14:0
W:20:0:2:100
A:20/8:52/8
F:SUST_DEX | EASY_KNOW

N:161:Sustain Charisma
G:=:d
I:45:15:0
W:20:0:2:100
A:20/16:52/16
F:SUST_CHR | EASY_KNOW

# The value of a ring of slaying is in the bonuses
N:162:Slaying
G:=:d
I:45:30:0
W:65:0:2:200
A:65/1
F:SHOW_MODS
L:MAKE:	object.to_d = randint1(7) + m_bonus(10, level)
L:MAKE:	object.to_h = randint1(7) + m_bonus(10, level)
L:MAKE:	allow_curse = TRUE

##### Amulets #####

N:163:Brilliance
G:":d
I:40:6:4
W:35:0:3:1000
A:35/2:85/1
F:INT | WIS | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:164:Charisma
G:":d
I:40:7:4
W:20:0:3:250
A:20/2
F:CHR | HIDE_TYPE
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:165:Sensing
G:":d
I:40:5:5
W:12:0:3:50
A:12/2
F:SENSE | HIDE_TYPE
L:MAKE:	object.pval = randint1(5) + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

N:166:Teleportation
G:":d
I:40:1:0
W:26:0:3:125
A:26/2
F:CURSED | TELEPORT | EASY_KNOW

N:167:Slow Digestion
G:":d
I:40:3:0
W:26:0:3:125
A:26/2
F:SLOW_DIGEST | EASY_KNOW

N:168:Resist Acid
G:":d
I:40:4:0
W:35:0:3:250
A:35/2
F:RES_ACID | IGNORE_ACID | EASY_KNOW

N:169:Berserk Strength
G:":d
I:40:2:0
W:33:0:3:10
A:33/3
F:AGGRAVATE
L:MAKE:	object.to_d = randint1(7) + m_bonus(10, level)
L:MAKE:	object.to_h = randint1(7) + m_bonus(10, level)
L:MAKE:	object.to_a = -(rand_range(5, 10))
D:This amulet seems to growl silently as you touch it.

##### Extra armor #####

N:170:Double Ring Mail~
G:[:s
I:37:5:0
W:43:0:230:1000
A:43/1
P:15:1d4:-2:0:0

##### Additional amulets #####

# Amulet of the magi is worth an extra 2000 au for no reason
N:171:the Magi
G:":d
I:40:8:5
W:75:0:3:3750
A:75/4:100/3
P:0:0d0:0:0:3
F:FREE_ACT | SEE_INVIS | SENSE |
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:MAKE:	object.pval = randint1(5) + m_bonus(object.pval, level)
L:MAKE:	object.to_a = randint1(5) + m_bonus(5, level)
L:MAKE:	if (one_in_(3) ~= 0) then set_obj_flag(object, 2, TR2_SLOW_DIGEST) end
L:MAKE:	rating_boost = 25

N:172:Destruction
G:":d
I:40:0:-5
W:80:0:3:0
A:80/2
P:0:7d7:-5:-5:5
F:CURSED | HEAVY_CURSE | STR | INT | WIS | DEX | CON | CHR | 
F:TY_CURSE | NO_TELE | NO_MAGIC | REGEN | HIDE_TYPE
L:MAKE:	object.pval = -(randint1(5) + m_bonus(-(object.pval), level))
L:MAKE:	object.to_a = -(randint1(5) + m_bonus(5, level))


##### Scrolls #####

N:173:Enchant Weapon Skill
G:?:d
I:70:17:0
W:26:0:5:250
A:26/1
F:EASY_KNOW
L:USE:	if not enchant_spell(1, 0, 0) then result = FALSE end

N:174:Enchant Weapon Deadliness
G:?:d
I:70:18:0
W:26:0:5:250
A:26/1
F:EASY_KNOW
L:USE:	if not enchant_spell(0, 1, 0) then result = FALSE end

N:175:Enchant Armor
G:?:d
I:70:16:0
W:26:0:5:250
A:26/1
F:EASY_KNOW
L:USE:	if not enchant_spell(0, 0, 1) then result = FALSE end

N:176:Identify
G:?:d
I:70:12:0
W:5:0:5:50
A:1/1:9/1:17/1:52/1
F:EASY_KNOW
L:USE:	if not ident_spell() then result = FALSE end

N:177:*Identify*
G:?:d
I:70:13:0
W:30:0:5:500
A:30/1:60/1:90/1
F:EASY_KNOW
L:USE:	if not identify_fully() then result = FALSE end

N:178:Rumour
G:?:d
I:70:51:0
W:1:0:5:10
A:1/1
F:EASY_KNOW
L:USE:	msgf("There is a message on the scroll. It says:"); message_flush()
L:USE:	msgf(get_rumor()); message_flush()
L:USE:	msgf("The scroll disappears in a puff of smoke!")

N:179:Logrus
G:?:d
I:70:50:0
W:80:0:5:1000
A:80/1
F:IGNORE_FIRE | IGNORE_ACID | IGNORE_COLD | IGNORE_ELEC
F:EASY_KNOW
L:USE:	fire_ball(GF_CHAOS, 0, 400, 4)
L:USE:	if not player_res(TR1_RES_CHAOS) then take_hit(rand_range(150, 300),
L:USE:		"a Scroll of Logrus") end
D:The chaotic runes on this scroll look very dangerous.

N:180:Remove Curse
G:?:d
I:70:14:0
W:17:0:5:100
A:17/1:35/2:65/2
F:EASY_KNOW
L:USE:	if remove_curse() then msgf("You feel as if someone is watching over you.")
L:USE:	else ident = FALSE end

N:181:Light
G:?:d
I:70:24:0
W:0:0:5:15
A:0/1:5/1
F:EASY_KNOW
L:USE:	ident = lite_area(damroll(2, 8), 2)

N:182:Fire
G:?:d
I:70:48:0
W:75:0:5:500
A:75/1
F:IGNORE_FIRE | EASY_KNOW
L:USE:	fire_ball(GF_FIRE, 0, 350, 4)
L:USE:	if res_fire_lvl() > 3 then take_hit(rand_range(100, 200),
L:USE:		"a Scroll of Fire") end

N:183:Ice
G:?:d
I:70:49:0
W:75:0:5:600
A:75/1
F:IGNORE_COLD | EASY_KNOW
L:USE:	fire_ball(GF_COLD, 0, 300, 4)
L:USE:	if res_fire_lvl() > 3 then take_hit(rand_range(50, 100),
L:USE:		"a Scroll of Ice") end

N:184:Summon Monster
G:?:d
I:70:4:0
W:1:0:5:0
A:1/1
F:EASY_KNOW
L:USE:	ident = summon_monsters(randint1(3), 0)

N:185:Phase Door
G:?:d
I:70:8:0
W:1:0:5:15
A:1/1
F:EASY_KNOW
L:USE:	teleport_player(10)

N:186:Teleportation
G:?:d
I:70:9:0
W:17:0:5:40
A:17/1
F:EASY_KNOW
L:USE:	teleport_player(100)

N:187:Teleport Level
G:?:d
I:70:10:0
W:30:0:5:150
A:30/1
F:EASY_KNOW
L:USE:	teleport_player_level()

N:188:Monster Confusion
G:?:d
I:70:36:0
W:9:0:5:30
A:9/2
F:EASY_KNOW
L:USE:	if player.state.confusing == 0 then
L:USE:		msgf("Your hands begin to glow.")
L:USE:		player.state.confusing = TRUE
L:USE:		player.redraw = bOr(player.redraw, PR_STATUS)
L:USE:	else ident = FALSE end

N:189:Magic Mapping
G:?:d
I:70:25:0
W:9:0:5:100
A:9/2
F:EASY_KNOW
L:USE:	map_area()

N:190:Rune of Protection
G:?:d
I:70:38:0
W:75:0:5:1000
A:75/2:100/4
F:EASY_KNOW
L:USE:	if not warding_glyph() then result = FALSE end

N:191:*Remove Curse*
G:?:d
I:70:15:0
W:75:0:5:8000
A:75/1:100/1
F:EASY_KNOW
L:USE:	if remove_all_curse() then msgf("You feel as if someone is watching over you.")
L:USE:	else ident = FALSE end

N:192:Treasure Detection
G:?:d
I:70:26:0
W:0:0:5:5
A:0/1
F:EASY_KNOW
L:USE:	ident = detect_treasure()
L:USE:	if detect_objects_gold() then ident = TRUE end

N:193:Object Detection
G:?:d
I:70:27:0
W:0:0:5:5
A:0/1
F:EASY_KNOW
L:USE:	ident = detect_objects_normal()

N:194:Trap Detection
G:?:d
I:70:28:0
W:9:0:5:5
A:9/1
F:EASY_KNOW
L:USE:	ident = detect_traps()

##### Extra ammunition #####

N:195:& Sheaf Arrow~
G:{:o
I:17:2:0
W:35:0:4:20
A:35/5:52/3:75/1
P:0:1d16:0:0:0
F:SHOW_MODS

N:196:& Mithril Shot~
G:{:B
I:16:2:0
W:43:0:8:15
A:43/3:75/2
P:0:6d2:0:0:0
F:SHOW_MODS

##### Additional scrolls #####

N:197:Door/Stair Location
G:?:d
I:70:29:0
W:9:0:5:35
A:9/2
F:EASY_KNOW
L:USE:	ident = detect_doors()
L:USE:	if detect_stairs() then ident = TRUE end

N:198:Acquirement
G:?:d
I:70:46:0
W:50:0:5:100000
A:35/8
F:EASY_KNOW
L:USE:	acquirement(player.px, player.py, 1, TRUE, FALSE)

N:199:*Acquirement*
G:?:d
I:70:47:0
W:90:0:5:200000
A:90/16
F:EASY_KNOW
L:USE:	acquirement(player.px, player.py, rand_range(2, 3), TRUE, FALSE)

N:200:Mass Genocide
G:?:d
I:70:45:0
W:75:0:5:5000
A:75/4:85/4
F:EASY_KNOW
L:USE:	mass_genocide(TRUE)
D:The evil runes on this scroll make you tremble.

N:201:Detect Invisible
G:?:d
I:70:30:0
W:1:0:5:15
A:1/2
F:EASY_KNOW
L:USE:	ident = detect_monsters_invis()

N:202:Aggravate Monster
G:?:d
I:70:1:0
W:9:0:5:0
A:9/2
F:EASY_KNOW
L:USE:	msgf("There is a high pitched humming noise.")
L:USE:	aggravate_monster(0)

N:203:Trap Creation
G:?:d
I:70:7:0
W:5:0:5:0
A:5/20:17/2
F:EASY_KNOW
L:USE:	ident = trap_creation()

N:204:Trap/Door Destruction
G:?:d
I:70:39:0
W:10:0:5:50
A:10/8:17/2
F:EASY_KNOW
L:USE:	ident = destroy_doors_touch()

N:205:Artifact Creation
G:?:d
I:70:52:0
W:100:0:5:300000
A:100/16
F:EASY_KNOW
L:USE:	if not artifact_scroll() then result = FALSE end

N:206:Recharging
G:?:d
I:70:22:0
W:40:0:5:200
A:40/1
F:EASY_KNOW
L:USE:	if not recharge(130) then result = FALSE end

N:207:Genocide
G:?:d
I:70:44:0
W:65:0:5:1000
A:65/1
F:EASY_KNOW
L:USE:	genocide(TRUE)
D:The evil runes on this scroll make you shiver.

N:208:Darkness
G:?:d
I:70:0:0
W:1:0:5:0
A:1/2
F:EASY_KNOW
L:USE:	if not player_res(TR1_RES_BLIND) and not player_res(TR1_RES_DARK) then
L:USE:		inc_blind(rand_range(3, 8))
L:USE:	end
L:USE:	ident = unlite_area(10, 3)

N:209:Protection from Evil
G:?:d
I:70:37:0
W:52:0:5:200
A:52/1
F:EASY_KNOW
L:USE:	ident = inc_protevil(3 * player.lev + randint1(25))

N:210:Satisfy Hunger
G:?:d
I:70:32:0
W:5:0:5:10
A:5/1:20/1:45/1:75/1
F:EASY_KNOW
L:USE:	ident = set_food(PY_FOOD_MAX - 1)

N:211:Dispel Undead
G:?:d
I:70:42:0
W:65:0:5:300
A:65/1
F:EASY_KNOW
L:USE:	ident = dispel_undead(60)

N:212:*Enchant Weapon*
G:?:d
I:70:21:0
W:50:0:5:500
A:50/5:75/1
F:EASY_KNOW
L:USE:	if not enchant_spell(randint1(5), randint1(5), 0) then result = FALSE end

N:213:Curse Weapon
G:?:d
I:70:3:0
W:75:0:5:0
A:75/1
F:EASY_KNOW
L:USE:	ident = curse_weapon()

N:214:*Enchant Armor*
G:?:d
I:70:20:0
W:50:0:5:500
A:50/5:75/1:92/1
F:EASY_KNOW
L:USE:	if not enchant_spell(0, 0, rand_range(2, 7)) then result = FALSE end

N:215:Curse Armor
G:?:d
I:70:2:0
W:75:0:5:0
A:75/1
F:EASY_KNOW
L:USE:	ident = curse_armor()

N:216:Summon Undead
G:?:d
I:70:5:0
W:15:0:5:0
A:26/1
F:EASY_KNOW
L:USE:	ident = summon_monsters(randint1(3), SUMMON_UNDEAD)

N:217:Blessing
G:?:d
I:70:33:0
W:1:0:5:15
A:1/2
F:EASY_KNOW
L:USE:	ident = inc_blessed(rand_range(6, 18))

N:218:Holy Chant
G:?:d
I:70:34:0
W:15:0:5:50
A:15/2
F:EASY_KNOW
L:USE:	ident = inc_blessed(rand_range(12, 36))

N:219:Holy Prayer
G:?:d
I:70:35:0
W:30:0:5:120
A:30/2
F:EASY_KNOW
L:USE:	ident = inc_blessed(rand_range(24, 72))

N:220:Word of Recall
G:?:d
I:70:11:0
W:5:0:5:70
A:1/3:7/1
F:EASY_KNOW
L:USE:	word_of_recall()

N:221:*Destruction*
G:?:d
I:70:41:0
W:65:0:5:500
A:65/1
F:EASY_KNOW
L:USE:	if not destroy_area(player.px, player.py, 15) then
L:USE:		msgf("The dungeon trembles...") end

##### Potions #####

N:222:Slime Mold Juice
G:!:d
I:75:2:400
W:0:0:4:2
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("You feel less thirsty.")
L:SMASH:result = TRUE
D:A green liquid that tries to climb out of the bottle.

N:223:Apple Juice
G:!:d
I:75:1:250
W:0:0:4:1
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("You feel less thirsty.")
L:SMASH:result = TRUE

N:224:Water
G:!:d
I:75:0:200
W:0:0:4:1
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("You feel less thirsty.")
L:SMASH:result = TRUE

N:225:Strength
G:!:d
I:75:48:0
W:40:0:4:10000
A:33/6:39/6:43/3:53/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_inc_stat(A_STR)

N:226:Weakness
G:!:d
I:75:16:0
W:5:0:4:0
A:5/2
P:0:3d12:0:0:0
F:EASY_KNOW
L:USE:	ident = do_dec_stat(A_STR)
L:SMASH:result = TRUE

N:227:Restore Strength
G:!:d
I:75:42:0
W:15:0:4:300
A:15/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_STR)

N:228:Intelligence
G:!:d
I:75:49:0
W:40:0:4:10000
A:33/6:39/6:43/3:53/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_inc_stat(A_INT)

N:229:Stupidity
G:!:d
I:75:17:0
W:35:0:4:0
A:35/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_dec_stat(A_INT)
L:SMASH:result = TRUE

N:230:Restore Intelligence
G:!:d
I:75:43:0
W:15:0:4:300
A:15/1
P:0:1d1:0:0:0
L:USE:	ident = do_res_stat(A_INT)
F:EASY_KNOW

N:231:Wisdom
G:!:d
I:75:50:0
W:40:0:4:10000
A:33/6:39/6:43/3:53/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_inc_stat(A_WIS)

N:232:Naivety
G:!:d
I:75:18:0
W:35:0:4:0
A:35/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_dec_stat(A_WIS)
L:SMASH:result = TRUE

N:233:Restore Wisdom
G:!:d
I:75:44:0
W:15:0:4:300
A:15/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_WIS)

N:234:Charisma
G:!:d
I:75:53:0
W:35:0:4:5000
A:29/6:35/6:39/3:49/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_inc_stat(A_CHR)

N:235:Ugliness
G:!:d
I:75:21:0
W:35:0:4:0
A:35/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_dec_stat(A_CHR)
L:SMASH:result = TRUE

N:236:Restore Charisma
G:!:d
I:75:47:0
W:15:0:4:300
A:15/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_CHR)

N:237:Curing
G:!:d
I:75:61:100
W:18:0:4:100
A:18/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = cure_potion(150, TRUE, TRUE, TRUE)
L:USE:	if clear_image() then ident = TRUE end
L:SMASH:project(who, 2, x, y, damroll(6, 3), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

# Note! Invulnerability decreases your food...

N:238:Invulnerability
G:!:d
I:75:62:-2500
W:105:0:4:100000
A:105/9
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	inc_invuln(rand_range(7, 14))

N:239:New Life
G:!:d
I:75:63:100
W:100:0:4:50000
A:75/20:100/10:115/5
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	do_cmd_rerate(); cure_all_mutations()

N:240:Cure Serious Wounds
G:!:d
I:75:35:100
W:5:0:4:75
A:5/1:15/1:25/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = cure_potion(75, TRUE, TRUE, FALSE)
L:SMASH:project(who, 2, x, y, damroll(4, 3), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:241:Cure Critical Wounds
G:!:d
I:75:36:100
W:20:0:4:300
A:20/1:30/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = cure_potion(150, TRUE, TRUE, TRUE)
L:SMASH:project(who, 2, x, y, damroll(6, 3), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:242:Healing
G:!:d
I:75:37:200
W:26:0:4:700
A:26/1:52/1:85/1:100/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = cure_potion(300, TRUE, TRUE, TRUE)
L:SMASH:project(who, 2, x, y, damroll(10, 10), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:243:Constitution
G:!:d
I:75:52:0
W:40:0:4:10000
A:33/6:39/6:43/3:53/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_inc_stat(A_CON)

N:244:Experience
G:!:d
I:75:59:0
W:75:0:4:50000
A:75/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if player.exp < PY_MAX_EXP then
L:USE:		local ee = (player.exp / 2) + 10
L:USE:		if ee > 100000 then ee = 100000 end
L:USE:		msgf("You feel more experienced.")
L:USE:		gain_exp(ee)
L:USE:	end

N:245:Sleep
G:!:d
I:75:11:100
W:0:0:4:0
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("You fall asleep."); do_dream(); inc_paralyzed(rand_range(4, 8))
L:SMASH:project(who, 2, x, y, 0, GF_OLD_SLEEP,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE

N:246:Blindness
G:!:d
I:75:7:0
W:0:0:4:0
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_RES_BLIND) and inc_blind(rand_range(100, 200))
L:SMASH:project(who, 2, x, y, 0, GF_DARK,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE

N:247:Booze
G:!:d
I:75:9:50
W:0:0:4:1
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = not player_res(TR1_RES_CONF) and inc_confused(rand_range(15, 35))
L:USE:	if not player_res(TR1_RES_CHAOS) and (one_in_(2) ~= 0) and
L:USE:		inc_image(rand_range(150, 300)) then ident = TRUE end
L:USE:	if not player_res(TR1_RES_CHAOS) and (one_in_(13) ~= 0) then
L:USE:		ident = TRUE
L:USE:		if player.depth > 0 then
L:USE:			if (one_in_(3) ~= 0) then lose_all_info() else wiz_dark() end
L:USE:			teleport_player(100)
L:USE:			wiz_dark()
L:USE:		else
L:USE:			teleport_player(250)
L:USE:		end
L:USE:		msgf("You wake up somewhere with a sore head...")
L:USE:		msgf("You can't remember a thing, or how you got here!")
L:USE:	end
L:SMASH:project(who, 2, x, y, 0, GF_OLD_CONF,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE
D:A drunken alchemist accidentally poured ale into a potion mix.

N:248:Poison
G:!:d
I:75:6:0
W:5:0:4:5
A:5/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = res_pois_lvl() ~= 0 and inc_poisoned(rand_range(10, 25))
L:SMASH:project(who, 2, x, y, damroll(3, 6), GF_POIS,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE

N:249:Speed
G:!:d
I:75:29:0
W:2:0:4:100
A:2/16:65/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_fast(rand_range(15, 40))
L:SMASH:project(who, 2, x, y, 0, GF_OLD_SPEED,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:250:Slowness
G:!:d
I:75:4:50
W:1:0:4:0
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_slow(rand_range(15, 40))
L:SMASH:project(who, 2, x, y, 5, GF_OLD_SLOW,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE

N:251:Dexterity
G:!:d
I:75:51:0
W:40:0:4:10000
A:33/6:39/6:43/3:53/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_inc_stat(A_DEX)

N:252:Restore Dexterity
G:!:d
I:75:45:0
W:15:0:4:300
A:15/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_DEX)

N:253:Restore Constitution
G:!:d
I:75:46:0
W:15:0:4:300
A:15/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_res_stat(A_CON)

N:254:Lose Memories
G:!:d
I:75:13:0
W:17:0:4:0
A:17/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if not player_res(TR1_HOLD_LIFE) and player.exp > 0 then
L:USE:		msgf("You feel your memories fade.")
L:USE:		lose_exp(player.exp / 4)
L:USE:	else ident = FALSE end
L:SMASH:angry = TRUE

N:255:Salt Water
G:!:d
I:75:5:0
W:0:0:4:1
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("The potion makes you vomit!")
L:USE:	if player.food > PY_FOOD_STARVE - 1 then set_food(PY_FOOD_STARVE - 1) end
L:USE:	clear_poisoned()
L:USE:	inc_paralyzed(4)
L:SMASH:return TRUE,FALSE

N:256:Enlightenment
G:!:d
I:75:56:0
W:43:0:4:800
A:43/1:75/1:105/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("An image of your surroundings forms in your mind...")
L:USE:	wiz_lite()

N:257:Heroism
G:!:d
I:75:32:0
W:1:0:4:25
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = clear_afraid()
L:USE:	if inc_hero(rand_range(25, 50)) then ident = TRUE end
L:USE:	if hp_player(10) then ident = TRUE end

N:258:Berserk Strength
G:!:d
I:75:33:0
W:5:0:4:100
A:5/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = clear_afraid()
L:USE:	if inc_shero(rand_range(25, 50)) then ident = TRUE end
L:USE:	if hp_player(30) then ident = TRUE end

N:259:Boldness
G:!:d
I:75:28:0
W:1:0:4:10
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = clear_afraid()

N:260:Restore Life Levels
G:!:d
I:75:41:0
W:45:0:4:1500
A:45/1:60/1:80/1:100/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = restore_level()

N:261:Resist Heat
G:!:d
I:75:30:0
W:4:0:4:30
A:4/5:15/1:30/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_oppose_fire(rand_range(10, 20))

N:262:Resist Cold
G:!:d
I:75:31:0
W:4:0:4:30
A:4/5:15/1:30/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_oppose_cold(rand_range(10, 20))

N:263:Detect Invisible
G:!:d
I:75:25:0
W:3:0:4:50
A:5/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_tim_invis(rand_range(12, 24))

N:264:Slow Poison
G:!:d
I:75:26:0
W:1:0:4:20
A:1/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_poisoned(-player.tim.poisoned / 2)

N:265:Neutralize Poison
G:!:d
I:75:27:0
W:5:0:4:75
A:9/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = clear_poisoned()

N:266:Restore Mana
G:!:d
I:75:40:0
W:43:0:4:350
A:43/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = restore_mana()
L:SMASH:project(who, 1, x, y, damroll(10, 10), GF_MANA,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE
D:The liquid in this bottle sparks with flashes of energy.

N:267:Infra-vision
G:!:d
I:75:24:0
W:5:0:4:20
A:5/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = inc_tim_infra(rand_range(100, 200))

N:268:Resistance
G:!:d
I:75:60:100
W:35:0:4:250
A:35/1:55/1:85/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW
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))

##### Wands #####

N:269:Light
G:-:d
I:65:7:17
W:3:0:10:200
A:5/1
P:0:1d1:0:0:0
L:USE:	msgf("A line of blue shimmering light appears.")
L:USE:	lite_line(dir)

N:270:Tame Monster
G:-:d
I:65:17:9
W:52:0:10:1000
A:52/2
P:0:1d1:0:0:0
L:USE:	ident = charm_monster(dir, 45)

N:271:Frost Bolts
G:-:d
I:65:19:12
W:35:0:10:400
A:23/2:35/1:50/1
P:0:1d1:0:0:0
L:USE:	ident = fire_bolt_or_beam(20, GF_COLD, dir, damroll(6, 8))

N:272:Fire Bolts
G:-:d
I:65:18:15
W:50:0:10:500
A:26/2:52/1:67/1
P:0:1d1:0:0:0
L:USE:	ident = fire_bolt_or_beam(20, GF_FIRE, dir, damroll(10, 8))

# More common now...
N:273:Stone to Mud
G:-:d
I:65:6:12
W:10:0:10:300
A:17/1:65/1
P:0:1d1:0:0:0
L:USE:	ident = wall_to_mud(dir)

N:274:Polymorph
G:-:d
I:65:13:15
W:35:0:10:300
A:35/2
P:0:1d1:0:0:0
L:USE:	ident = poly_monster(dir)

N:275:Heal Monster
G:-:d
I:65:0:29
W:2:0:10:50
A:4/2
P:0:1d1:0:0:0
L:USE:	ident = heal_monster(dir)

N:276:Haste Monster
G:-:d
I:65:1:29
W:2:0:10:50
A:4/2
P:0:1d1:0:0:0
L:USE:	ident = speed_monster(dir)

N:277:Slow Monster
G:-:d
I:65:9:17
W:4:0:10:200
A:4/2
P:0:1d1:0:0:0
L:USE:	ident = slow_monster(dir)

N:278:Confuse Monster
G:-:d
I:65:10:19
W:5:0:10:250
A:5/2
P:0:1d1:0:0:0
L:USE:	ident = confuse_monster(dir, 20)

N:279:Sleep Monster
G:-:d
I:65:8:24
W:5:0:10:250
A:9/2
P:0:1d1:0:0:0
L:USE:	ident = sleep_monster(dir)

N:280:Drain Life
G:-:d
I:65:12:7
W:75:0:10:1200
A:60/1
P:0:1d1:0:0:0
L:USE:	ident = drain_life(dir, 150)

N:281:Trap/Door Destruction
G:-:d
I:65:5:15
W:17:0:10:100
A:17/2
P:0:1d1:0:0:0
L:USE:	ident = destroy_door(dir)

N:282:Magic Missile
G:-:d
I:65:15:17
W:2:0:10:100
A:4/1
P:0:1d1:0:0:0
L:USE:	ident = fire_bolt_or_beam(20, GF_MISSILE, dir, damroll(2, 6))

N:283:Clone Monster
G:-:d
I:65:2:9
W:15:0:10:0
A:26/1:75/2
P:0:1d1:0:0:0
L:USE:	ident = clone_monster(dir)

N:284:Scare Monster
G:-:d
I:65:11:9
W:17:0:10:300
A:17/4
P:0:1d1:0:0:0
L:USE:	ident = fear_monster(dir, 20)

N:285:Teleport Other
G:-:d
I:65:3:12
W:35:0:10:350
A:35/1
P:0:1d1:0:0:0
L:USE:	ident = teleport_monster(dir)

N:286:Disarming
G:-:d
I:65:4:10
W:35:0:10:300
A:35/1
P:0:1d1:0:0:0
L:USE:	ident = disarm_trap(dir)

N:287:Lightning Balls
G:-:d
I:65:21:13
W:41:0:10:1200
A:41/1:61/1
P:0:1d1:0:0:0
F:IGNORE_ELEC
L:USE:	ident = fire_ball(GF_ELEC, dir, 75, 2)

N:288:Cold Balls
G:-:d
I:65:23:9
W:45:0:10:1500
A:45/1:65/1
P:0:1d1:0:0:0
F:IGNORE_COLD
L:USE:	ident = fire_ball(GF_COLD, dir, 100, 2)

N:289:Fire Balls
G:-:d
I:65:22:7
W:55:0:10:1800
A:55/1:75/1
P:0:1d1:0:0:0
F:IGNORE_FIRE
L:USE:	ident = fire_ball(GF_FIRE, dir, 150, 2)

N:290:Stinking Cloud
G:-:d
I:65:14:15
W:5:0:10:200
A:9/1
P:0:1d1:0:0:0
L:USE:	ident = fire_ball(GF_POIS, dir, 15, 2)

N:291:Acid Balls
G:-:d
I:65:20:8
W:55:0:10:1650
A:55/1:75/1
P:0:1d1:0:0:0
F:IGNORE_ACID
L:USE:	ident = fire_ball(GF_ACID, dir, 125, 2)

N:292:Wonder
G:-:d
I:65:24:24
W:3:0:10:150
A:5/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	wand_of_wonder(dir)

##### Extra ammunition #####

N:293:& Flight Arrow~
G:{:y
I:17:0:0
W:5:0:1:1
A:5/2:10/2
P:0:1d8:0:0:0
F:SHOW_MODS

##### Additional wands #####

N:294:Acid Bolts
G:-:d
I:65:16:15
W:40:0:10:950
A:35/2:52/1:62/1
P:0:1d1:0:0:0
L:USE:	ident = fire_bolt_or_beam(20, GF_ACID, dir, damroll(6, 8))

N:295:Dragon's Flame
G:-:d
I:65:26:5
W:75:0:10:5000
A:75/4:100/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	ident = fire_ball(GF_FIRE, dir, 250, 3)

N:296:Dragon's Frost
G:-:d
I:65:27:5
W:75:0:10:5000
A:75/4:100/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	ident = fire_ball(GF_COLD, dir, 200, 3)

N:297:Dragon's Breath
G:-:d
I:65:28:5
W:75:0:10:6000
A:75/4:100/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local choice = randint1(5)
L:USE:	if     choice == 1 then ident = fire_ball(GF_ACID, dir, 250, 3)
L:USE:	elseif choice == 2 then ident = fire_ball(GF_ELEC, dir, 150, 3)
L:USE:	elseif choice == 3 then ident = fire_ball(GF_FIRE, dir, 200, 3)
L:USE:	elseif choice == 4 then ident = fire_ball(GF_COLD, dir, 200, 3)
L:USE:  else                    ident = fire_ball(GF_POIS, dir, 200, 3)
L:USE:  end

N:298:Annihilation
G:-:d
I:65:25:4
W:85:0:10:8000
A:85/4
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	ident = fire_ball(GF_DISINTEGRATE, dir, rand_range(125, 225), 2)

N:299:Rockets
G:-:d
I:65:29:4
W:95:0:10:20000
A:95/4
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	msgf("You launch a rocket!"); fire_ball(GF_ROCKET, dir, 250, 2)



##### Staffs #####

N:300:Trap Location
G:_:d
I:55:12:12
W:5:0:50:50
A:5/1
P:0:1d2:0:0:0
L:USE:	ident = detect_traps()

N:301:Treasure Location
G:_:d
I:55:10:29
W:5:0:50:50
A:9/1
P:0:1d2:0:0:0
L:USE:	ident = detect_treasure()
L:USE:	if detect_objects_gold() then ident = TRUE end

N:302:Object Location
G:_:d
I:55:11:22
W:5:0:50:100
A:9/2
P:0:1d2:0:0:0
L:USE:	ident = detect_objects_normal()

N:303:Teleportation
G:_:d
I:55:4:10
W:35:0:50:2000
A:35/1
P:0:1d2:0:0:0
L:USE:	teleport_player(100)

N:304:Earthquakes
G:_:d
I:55:28:9
W:65:0:50:350
A:65/1
P:0:1d2:0:0:0
L:USE:	if not earthquake(player.px, player.py, 10) then
L:USE:		msgf("The dungeon trembles...") end

N:305:Summoning
G:_:d
I:55:3:5
W:10:0:50:0
A:17/4:55/1
P:0:1d2:0:0:0
L:USE:	ident = summon_monsters(randint1(4), 0)

N:306:Light
G:_:d
I:55:8:29
W:5:0:50:250
A:7/1
P:0:1d2:0:0:0
L:USE:	ident = lite_area(damroll(2, 8), 2)

N:307:*Destruction*
G:_:d
I:55:29:5
W:80:0:50:5000
A:80/1:100/1
P:0:1d2:0:0:0
L:USE:	ident = destroy_area(player.px, player.py, 15)

N:308:Starlight
G:_:d
I:55:7:12
W:15:0:50:500
A:15/2
P:0:1d2:0:0:0
L:USE:	if player.tim.blind == 0 then 
L:USE:		msgf("The end of the staff glows brightly...")
L:USE:	end
L:USE:	starlite()

N:309:Haste Monsters
G:_:d
I:55:2:17
W:10:0:50:0
A:17/2
P:0:1d2:0:0:0
L:USE:	ident = speed_monsters()

N:310:Slow Monsters
G:_:d
I:55:21:12
W:17:0:50:400
A:17/2
P:0:1d2:0:0:0
L:USE:	ident = slow_monsters()

N:311:Sleep Monsters
G:_:d
I:55:20:12
W:15:0:50:400
A:15/2
P:0:1d2:0:0:0
L:USE:	ident = sleep_monsters()

N:312:Cure Light Wounds
G:_:d
I:55:16:12
W:5:0:50:400
A:9/2
P:0:1d2:0:0:0
L:USE:	ident = hp_player(50)

N:313:Detect Invisible
G:_:d
I:55:14:24
W:5:0:50:200
A:9/2
P:0:1d2:0:0:0
L:USE:	ident = detect_monsters_invis()

N:314:Speed
G:_:d
I:55:22:8
W:50:0:50:5000
A:50/1
P:0:1d2:0:0:0
L:USE:	ident = inc_fast(rand_range(15, 45))

N:315:Slowness
G:_:d
I:55:1:17
W:30:0:50:0
A:50/4
P:0:1d2:0:0:0
L:USE:	ident = inc_slow(rand_range(15, 45)

N:316:Door/Stair Location
G:_:d
I:55:13:15
W:9:0:50:150
A:9/2
P:0:1d2:0:0:0
L:USE:	ident = detect_doors()
L:USE:	if detect_stairs() then ident = TRUE end

N:317:Remove Curse
G:_:d
I:55:6:8
W:55:0:50:200
A:55/4
P:0:1d2:0:0:0
L:USE:	ident = remove_curse()
L:USE:	if ident and player.tim.blind == 0 then
L:USE:		msgf("The staff glows blue for a moment...")
L:USE:	end

N:318:Detect Evil
G:_:d
I:55:15:24
W:15:0:50:150
A:15/4
P:0:1d2:0:0:0
L:USE:	ident = detect_monsters_evil()

N:319:Curing
G:_:d
I:55:17:8
W:33:0:50:500
A:33/4
P:0:1d2:0:0:0
L:USE:	ident = cure_potion(150, TRUE, TRUE, TRUE)
L:USE:	if clear_image() then ident = TRUE end

N:320:Dispel Evil
G:_:d
I:55:24:8
W:75:0:50:2000
A:75/1
P:0:1d2:0:0:0
L:USE:	ident = dispel_evil(60)

N:321:Probing
G:_:d
I:55:23:9
W:20:0:50:100
A:20/4
P:0:1d2:0:0:0
L:USE:	probing()

N:322:Darkness
G:_:d
I:55:0:17
W:5:0:50:50
A:9/1
P:0:1d2:0:0:0
L:USE:	ident = not player_res(TR1_RES_BLIND) and not player_res(TR1_RES_DARK)
L:USE:		and inc_blind(rand_range(4, 8))
L:USE:	if unlite_area(10, 3) then ident = TRUE end

N:323:Genocide
G:_:d
I:55:27:4
W:95:0:50:8000
A:95/4
P:0:1d2:0:0:0
L:USE:	genocide(TRUE)

N:324:Power
G:_:d
I:55:25:5
W:95:0:50:10000
A:95/2
P:0:1d2:0:0:0
L:USE:	dispel_monsters(300)

N:325:the Magi
G:_:d
I:55:19:5
W:100:0:50:15000
A:100/2
P:0:1d2:0:0:0
L:USE:	ident = do_res_stat(A_INT)
L:USE:	if restore_mana() then ident = TRUE end

N:326:Perception
G:_:d
I:55:5:21
W:17:0:50:400
A:17/1:35/1:60/1
P:0:1d2:0:0:0
L:USE:	result = ident_spell()

N:327:Holiness
G:_:d
I:55:26:5
W:100:0:50:10000
A:100/2
P:0:1d2:0:0:0
L:USE:	ident = FALSE
L:USE:	if dispel_evil(300) then ident = TRUE end
L:USE:	if inc_protevil(randint1(25) + 3 * player.lev) then ident = TRUE end
L:USE:	if clear_poisoned() then ident = TRUE end
L:USE:	if clear_afraid() then ident = TRUE end
L:USE:	if hp_player(50) then ident = TRUE end
L:USE:	if clear_stun() then ident = TRUE end
L:USE:	if clear_cut() then ident = TRUE end

N:328:Enlightenment
G:_:d
I:55:9:11
W:22:0:50:750
A:22/1
P:0:1d2:0:0:0
L:USE:	map_area()

N:329:Healing
G:_:d
I:55:18:4
W:65:0:50:5000
A:65/2
P:0:1d2:0:0:0
L:USE:	ident = hp_player(300)
L:USE:	if clear_stun() then ident = TRUE end
L:USE:	if clear_cut() then ident = TRUE end


##### Basic Books #####

N:330:[Book of Common Prayer]
G:?:W
I:90:0:0
W:17:0:30:100
A:17/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:331:[High Mass]
G:?:W
I:90:1:0
W:20:0:30:1000
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:332:[Book of the Unicorn]
G:?:w
I:90:2:0
W:65:0:30:25000
A:65/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:333:[Blessings of the Grail]
G:?:w
I:90:3:0
W:95:0:30:100000
A:95/3
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:334:[Beginner's Handbook]
G:?:B
I:91:0:0
W:17:0:30:100
A:17/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:335:[Master Sorcerer's Handbook]
G:?:B
I:91:1:0
W:20:0:30:1000
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:336:[Pattern Sorcery]
G:?:b
I:91:2:0
W:65:0:30:25000
A:65/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:337:[Grimoire of Power]
G:?:b
I:91:3:0
W:95:0:30:100000
A:95/3
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

##### Chests #####

N:338:& Small wooden chest~
G:&:o
I:7:1:0
W:9:0:250:20
A:9/1
P:0:2d3:0:0:0

N:339:& Large wooden chest~
G:&:U
I:7:5:0
W:26:0:500:200
A:26/1
P:0:2d5:0:0:0

N:340:& Small iron chest~
G:&:D
I:7:2:0
W:43:0:300:200
A:43/1
P:0:2d4:0:0:0

N:341:& Large iron chest~
G:&:s
I:7:6:0
W:61:0:1000:500
A:61/1
P:0:2d6:0:0:0

N:342:& Small steel chest~
G:&:s
I:7:3:0
W:70:0:500:500
A:70/1
P:0:2d4:0:0:0

N:343:& Large steel chest~
G:&:W
I:7:7:0
W:80:0:1000:1000
A:80/1
P:0:2d6:0:0:0

N:344:& Ruined chest~
G:&:u
I:7:0:0
W:30:0:250:0
A:30/10:90/1
D:A small chest of rotted wood. Whatever it once held has already been taken.


##### Various Stuff #####

N:345:& Iron Spike~
G:~:W
I:5:0:0
W:1:0:2:1
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW
D:A small metal spike, useful for jamming doors.

N:346:& Wooden Torch~
G:~:u
I:39:0:4000
W:1:0:30:2
A:1/1:10/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:347:& Brass Lantern~
G:~:U
I:39:1:7500
W:5:0:50:150
A:5/1:15/1:25/1
P:0:1d1:0:0:0
F:EASY_KNOW | IGNORE_FIRE

N:348:& Flask~ of oil
G:!:y
I:77:0:7500
W:1:0:10:3
A:1/1:7/1:15/1
P:0:2d6:0:0:0
F:EASY_KNOW

N:349:& Empty Bottle~
G:!:w
I:2:1:0
W:0:0:2:1
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW

##### Here are the Rods #####

N:350:Havoc
G:-:d
I:66:28:250
W:95:0:15:30000
A:75/8:100/16
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	call_chaos(); ident = TRUE

N:351:Door/Stair Location
G:-:d
I:66:1:70
W:12:0:15:250
A:12/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if detect_doors() then ident = TRUE end
L:USE:	if detect_stairs() then ident = TRUE end

N:352:Trap Location
G:-:d
I:66:0:15
W:10:0:15:100
A:10/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if detect_traps() then ident = TRUE end

N:353:Probing
G:-:d
I:66:7:50
W:25:0:15:200
A:25/8
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = probing()

N:354:Recall
G:-:d
I:66:3:60
W:40:0:15:4000
A:26/8:52/4
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	word_of_recall(); ident = TRUE

N:355:Illumination
G:-:d
I:66:4:16
W:15:0:15:250
A:15/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = lite_area(damroll(4, 8), 2)

N:356:Light
G:-:d
I:66:15:9
W:13:0:15:600
A:9/2:17/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("A line of blue shimmering light appears.")
L:USE:	lite_line(dir); ident = TRUE

N:357:Lightning Bolts
G:-:d
I:66:21:11
W:35:0:15:2000
A:30/2:35/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_bolt_or_beam(10, GF_ELEC, dir, damroll(5, 8))

N:358:Frost Bolts
G:-:d
I:66:23:13
W:43:0:15:3000
A:33/2:43/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_bolt_or_beam(10, GF_COLD, dir, damroll(6, 8))

N:359:Fire Bolts
G:-:d
I:66:22:15
W:52:0:15:3500
A:36/2:52/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_bolt_or_beam(10, GF_FIRE, dir, damroll(10, 8))

N:360:Polymorph
G:-:d
I:66:19:25
W:32:0:15:600
A:28/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if poly_monster(dir) then ident = TRUE end

N:361:Slow Monster
G:-:d
I:66:17:20
W:26:0:15:1000
A:26/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if slow_monster(dir) then ident = TRUE end

N:362:Sleep Monster
G:-:d
I:66:16:18
W:26:0:15:1500
A:26/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if sleep_monster(dir) then ident = TRUE end

N:363:Drain Life
G:-:d
I:66:18:23
W:67:0:15:10000
A:67/8:95/4
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if drain_life(dir, 150) then ident = TRUE end

N:364:Teleport Other
G:-:d
I:66:13:3
W:40:0:15:2000
A:40/4:70/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if teleport_monster(dir) then ident = TRUE end

N:365:Disarming
G:-:d
I:66:14:22
W:32:0:15:500
A:32/2:61/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if disarm_trap(dir) then ident = TRUE end

N:366:Lightning Balls
G:-:d
I:66:25:23
W:49:0:15:5000
A:49/2:80/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_ball(GF_ELEC, dir, 75, 2)

N:367:Cold Balls
G:-:d
I:66:27:25
W:85:0:15:6000
A:52/2:85/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_ball(GF_COLD, dir, 100, 2)

N:368:Fire Balls
G:-:d
I:66:26:30
W:95:0:15:7000
A:67/2:95/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_ball(GF_FIRE, dir, 150, 2)

N:369:Acid Balls
G:-:d
I:66:24:27
W:95:0:15:6000
A:61/2:95/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_ball(GF_ACID, dir, 125, 2)

N:370:Acid Bolts
G:-:d
I:66:20:12
W:75:0:15:3000
A:45/2:65/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_bolt_or_beam(10, GF_ACID, dir, damroll(6, 8))

N:371:Enlightenment
G:-:d
I:66:5:99
W:70:0:15:8000
A:40/8:80/4
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	map_area(); ident = TRUE

N:372:Perception
G:-:d
I:66:2:10
W:75:0:15:13000
A:43/16:75/8
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if not ident_spell() then use_charge = FALSE end; ident = TRUE

N:373:Curing
G:-:d
I:66:8:999
W:80:0:15:4000
A:58/8:90/4
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_curing()

N:374:Healing
G:-:d
I:66:9:999
W:100:0:15:20000
A:65/16:100/8
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if hp_player(500) then ident = TRUE end
L:USE:	if clear_stun() then ident = TRUE end
L:USE:	if clear_cut() then ident = TRUE end

N:375:Detection
G:-:d
I:66:6:99
W:52:0:15:5000
A:26/16:52/8
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if detect_all() then ident = TRUE end

N:376:Restoration
G:-:d
I:66:10:999
W:100:0:15:25000
A:65/32:100/16
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if restore_level() then ident = TRUE end
L:USE:	if restore_all_stats() then ident = TRUE end

N:377:Speed
G:-:d
I:66:11:99
W:105:0:15:50000
A:78/32:105/16
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	if inc_fast(rand_range(15, 45)) then ident = TRUE end

N:378:Pesticide
G:-:d
I:66:12:3
W:23:0:15:500
A:23/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = fire_ball(GF_POIS, dir, 8, 3)

##### Special Books (note resistances) #####

N:379:[Call of the Wild]
G:?:G
I:92:0:0
W:17:0:30:100 
A:17/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:380:[Nature Mastery]
G:?:G
I:92:1:0
W:20:0:30:1000 
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:381:[Nature's Gifts]
G:?:g
I:92:2:0
W:75:0:30:25000
A:75/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:382:[Nature's Wrath]
G:?:g
I:92:3:0
W:100:0:30:100000
A:100/2
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:383:[Sign of Chaos]
G:?:R
I:93:0:0
W:17:0:30:100
A:17/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:384:[Chaos Mastery]
G:?:R
I:93:1:0
W:20:0:30:1000
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:385:[Chaos Channels]
G:?:r
I:93:2:0
W:75:0:30:25000
A:75/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:386:[Armageddon Tome]
G:?:r
I:93:3:0
W:105:0:30:100000
A:105/3
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:387:[Black Prayers]
G:?:D
I:94:0:0
W:17:0:30:100
A:17/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:388:[Black Mass]
G:?:D
I:94:1:0
W:20:0:30:1000
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

##### Junk #####

N:389:& Shard~ of Pottery
G:~:r
I:3:3:0
W:0:0:5:0
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:390:& Broken Stick~
G:~:r
I:3:6:0
W:0:0:3:0
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW

##### Skeletons #####

N:391:& Broken Skull~
G:~:w
I:1:1:0
W:0:0:1:0
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:392:& Broken Bone~
G:~:w
I:1:2:0
W:0:0:2:0
A:0/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:393:& Canine Skeleton~
G:~:w
I:1:4:0
W:1:0:10:0
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:394:& Rodent Skeleton~
G:~:w
I:1:3:0
W:1:0:10:0
A:1/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:395:& Human Skeleton~
G:~:w
I:1:8:0
W:9:0:60:0
A:9/1
P:0:1d2:0:0:0
F:EASY_KNOW
D:The remains of an earlier adventurer, perhaps?

N:396:& Dwarf Skeleton~
G:~:w
I:1:7:0
W:9:0:50:0
A:9/1
P:0:1d2:0:0:0
F:EASY_KNOW
D:The remains of an earlier adventurer, perhaps?

N:397:& Elf Skeleton~
G:~:w
I:1:6:0
W:9:0:40:0
A:9/1
P:0:1d2:0:0:0
F:EASY_KNOW
D:The remains of an earlier adventurer, perhaps?

N:398:& Gnome Skeleton~
G:~:w
I:1:5:0
W:9:0:30:0
A:9/1
P:0:1d2:0:0:0
F:EASY_KNOW
D:The remains of an earlier adventurer, perhaps?

##### Additional weapon #####

N:399:& Great Hammer~
G:\:D
I:21:19:0
W:70:0:300:1350
A:70/1:105/1
P:0:4d6:0:0:0
F:SHOW_MODS

##### Dragon Scale Mail #####

N:400:Black Dragon Scale Mail~
G:[:s
I:38:1:0
W:60:0:200:17500
A:60/8
P:30:2d4:-2:0:10
F:RES_ACID |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe acid.")
L:USE:	fire_ball(GF_ACID, dir, 430, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe acid (430) every 50-100 turns"

N:401:Blue Dragon Scale Mail~
G:[:b
I:38:2:0
W:40:0:200:15000
A:40/8
P:30:2d4:-2:0:10
F:RES_ELEC |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe lightning.")
L:USE:	fire_ball(GF_ELEC, dir, 330, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe lightning (330) every 50-100 turns"

N:402:White Dragon Scale Mail~
G:[:w
I:38:3:0
W:50:0:200:20000
A:50/8
P:30:2d4:-2:0:10
F:RES_COLD |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe frost.")
L:USE:	fire_ball(GF_COLD, dir, 370, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe frost (370) every 50-100 turns"

N:403:Red Dragon Scale Mail~
G:[:r
I:38:4:0
W:80:0:200:50000
A:80/8
P:30:2d4:-2:0:10
F:RES_FIRE |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe fire.")
L:USE:	fire_ball(GF_FIRE, dir, 670, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe fire (670) every 50-100 turns"

N:404:Green Dragon Scale Mail~
G:[:g
I:38:5:0
W:70:0:200:40000
A:70/8
P:30:2d4:-2:0:10
F:RES_POIS |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe poison gas.")
L:USE:	fire_ball(GF_POIS, dir, 500, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe poison gas (500) every 50-100 turns"

N:405:Multi-Hued Dragon Scale Mail~
G:[:v
I:38:6:0
W:100:0:200:75000
A:100/16
P:30:2d4:-2:0:10
F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_POIS
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	local chance = randint1(5)
L:USE:	local damtype; local damname
L:USE:	if     chance == 1 then damtype = GF_ELEC; damname = "lightning"
L:USE:	elseif chance == 2 then damtype = GF_COLD; damname = "frost"
L:USE:	elseif chance == 3 then damtype = GF_ACID; damname = "acid"
L:USE:	elseif chance == 4 then damtype = GF_FIRE; damname = "fire"
L:USE:  else                    damtype = GF_POIS; damname = "poison gas"
L:USE:  end
L:USE:	msgf("You breathe "..damname..".")
L:USE:	fire_ball(damtype, dir, 840, 2)
L:USE:	object.timeout = rand_range(25, 50)
L:DESC:	return "breathe multi-hued (840) every 25-50 turns"

N:406:Pseudo Dragon Scale Mail~
G:[:v
I:38:10:0
W:65:0:200:30000
A:65/16
P:30:2d4:-2:0:10
F:RES_LITE | RES_DARK |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	local chance = randint1(2)
L:USE:	local damtype; local damname
L:USE:	if chance == 1 then damtype = GF_LITE; damname = "light"
L:USE:  else                damtype = GF_DARK; damname = "darkness"
L:USE:  end
L:USE:	fire_ball(damtype, dir, 670, 2)
L:USE:	object.timeout = rand_range(30, 60)
L:DESC:	return "breathe light/darkness (670) every 30-60 turns"

N:407:Law Dragon Scale Mail~
G:[:B
I:38:12:0
W:80:0:200:40000
A:80/16
P:30:2d4:-2:0:10
F:RES_SOUND | RES_SHARDS |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	local chance = randint1(2)
L:USE:	local damtype; local damname
L:USE:	if chance == 1 then damtype = GF_SOUND; damname = "sound"
L:USE:  else                damtype = GF_SHARDS; damname = "shards"
L:USE:  end
L:USE:	fire_ball(damtype, dir, 750, 2)
L:USE:	object.timeout = rand_range(30, 60)
L:DESC:	return "breathe sound/shards (750) every 30-60 turns"

N:408:Bronze Dragon Scale Mail~
G:[:U
I:38:14:0
W:55:0:200:17500
A:55/8
P:30:2d4:-2:0:10
F:RES_CONF |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe confusion.")
L:USE:	fire_ball(GF_CONFUSION, dir, 400, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe confusion (400) every 50-100 turns"

N:409:Gold Dragon Scale Mail~
G:[:y
I:38:16:0
W:65:0:200:20000
A:65/8
P:30:2d4:-2:0:10
F:RES_SOUND |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	msgf("You breathe sound.")
L:USE:	fire_ball(GF_SOUND, dir, 430, 2)
L:USE:	object.timeout = rand_range(50, 100)
L:DESC:	return "breathe sound (430) every 50-100 turns"

N:410:Chaos Dragon Scale Mail~
G:[:v
I:38:18:0
W:75:0:200:35000
A:75/16
P:30:2d4:-2:0:10
F:RES_CHAOS | RES_DISEN |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	local chance = randint1(2)
L:USE:	local damtype; local damname
L:USE:	if chance == 1 then damtype = GF_CHAOS; damname = "chaos"
L:USE:  else                damtype = GF_DISENCHANT; damname = "disenchantment"
L:USE:  end
L:USE:	fire_ball(damtype, dir, 740, 2)
L:USE:	object.timeout = rand_range(30, 60)
L:DESC:	return "breathe chaos/disenchant (740) every 30-60 turns"

N:411:Balance Dragon Scale Mail~
G:[:v
I:38:20:0
W:90:0:200:50000
A:90/16
P:30:2d4:-2:0:10
F:RES_CHAOS | RES_DISEN | RES_SOUND | RES_SHARDS |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:USE:	local success; local dir; success, dir = get_aim_dir()
L:USE:	if not success then return end
L:USE:	local chance = randint1(4)
L:USE:	local damtype; local damname
L:USE:	if     chance == 1 then damtype = GF_SOUND; damname = "sound"
L:USE:	elseif chance == 2 then damtype = GF_SHARDS; damname = "shards"
L:USE:	elseif chance == 3 then damtype = GF_CHAOS; damname = "chaos"
L:USE:  else                    damtype = GF_DISENCHANT; damname = "disenchantment"
L:USE:  end
L:USE:	msgf("You breathe "..damname..".")
L:USE:	fire_ball(damtype, dir, 840, 2)
L:USE:	object.timeout = rand_range(30, 60)
L:DESC:	return "breathe balance (840) every 30-60 turns"

N:412:Power Dragon Scale Mail~
G:[:v
I:38:30:0
W:110:0:250:175000
A:110/64
P:40:2d4:-3:0:15
F:RES_ACID | RES_FIRE | RES_COLD | RES_ELEC | RES_POIS | 
F:RES_NETHER | RES_NEXUS | RES_CHAOS | RES_LITE | RES_DARK |
F:RES_SHARDS | RES_SOUND | RES_DISEN | RES_CONF |
F:ACTIVATE | IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
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, 2)
L:USE:	object.timeout = rand_range(30, 60)
L:DESC:	return "breathe the elements (1000) every 30-60 turns"

## PDSM has been restored to (almost) its former glory in Zangband

N:413:& Dragon Helm~
G:]:G
I:32:7:0
W:80:0:50:10000
A:80/20:105/20
P:8:1d3:0:0:10
F:IGNORE_ACID | IGNORE_FIRE | IGNORE_ELEC | IGNORE_COLD

N:414:& Dragon Shield~
G:[:G
I:34:6:0
W:80:0:100:10000
A:80/20:105/20
P:11:1d7:0:0:10
F:IGNORE_ACID | IGNORE_FIRE | IGNORE_ELEC | IGNORE_COLD

##### Extra potions #####

N:415:Death
G:!:d
I:75:23:0
W:85:0:4:0
A:85/4
P:0:20d20:0:0:0
F:EASY_KNOW
L:USE:	msgf("A feeling of Death flows through your body.")
L:USE:	take_hit(5000, "a potion of Death")
L:SMASH:project(who, 1, x, y, damroll(25, 25), GF_DEATH_RAY,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE

N:416:Ruination
G:!:d
I:75:15:0
W:70:0:4:0
A:70/8
P:0:20d20:0:0:0
F:EASY_KNOW
L:USE:	msgf("Your nerves and muscles feel weak and lifeless!")
L:USE:	take_hit(damroll(10, 10), "a potion of Ruination)
L:USE:	dec_stat(A_DEX, 25, TRUE)
L:USE:	dec_stat(A_WIS, 25, TRUE)
L:USE:	dec_stat(A_CON, 25, TRUE)
L:USE:	dec_stat(A_STR, 25, TRUE)
L:USE:	dec_stat(A_CHR, 25, TRUE)
L:USE:	dec_stat(A_INT, 25, TRUE)
L:SMASH:project(who, 1, x, y, damroll(25, 25), GF_SHARDS,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE

N:417:Detonations
G:!:d
I:75:22:0
W:90:0:4:10000
A:90/8
P:0:25d25:0:0:0
F:EASY_KNOW
L:USE:	msgf("Massive explosions rupture your body!")
L:USE:	take_hit(damroll(50, 20), "a potion of Detonations")
L:USE:	inc_stun(75)
L:USE:	inc_cut(5000)
L:SMASH:project(who, 1, x, y, damroll(25, 25), GF_SHARDS,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return TRUE,TRUE
D:The bottle this potion is in looks very fragile.

N:418:Augmentation
G:!:d
I:75:55:0
W:50:0:4:20000
A:45/8
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = FALSE
L:USE:	if do_inc_stat(A_STR) then ident = TRUE end
L:USE:	if do_inc_stat(A_INT) then ident = TRUE end
L:USE:	if do_inc_stat(A_WIS) then ident = TRUE end
L:USE:	if do_inc_stat(A_DEX) then ident = TRUE end
L:USE:	if do_inc_stat(A_CON) then ident = TRUE end
L:USE:	if do_inc_stat(A_CHR) then ident = TRUE end

N:419:*Healing*
G:!:d
I:75:38:0
W:65:0:4:1500
A:65/4:75/2:85/1:95/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = cure_potion(1200, TRUE, TRUE, TRUE)
L:SMASH:project(who, 2, x, y, damroll(50, 50), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:420:Life
G:!:d
I:75:39:0
W:85:0:4:5000
A:85/4:100/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	do_life_potion()
L:SMASH:project(who, 2, x, y, damroll(50, 50), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:421:Self Knowledge
G:!:d
I:75:58:0
W:45:0:4:1000
A:45/20:65/3
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("You begin to know yourself a little better...")
L:USE:	message_flush()
L:USE:	self_knowledge()

N:422:*Enlightenment*
G:!:d
I:75:57:0
W:95:0:4:20000
A:95/4
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	msgf("You begin to feel more enlightened...")
L:USE:	message_flush()
L:USE:	wiz_lite()
L:USE:	do_inc_stat(A_INT)
L:USE:	do_inc_stat(A_WIS)
L:USE:	detect_traps(); detect_doors(); detect_stairs()
L:USE:	detect_treasure(); detect_objects_gold(); detect_objects_normal()
L:USE:	identify_pack()
L:USE:	self_knowledge()

N:423:[Black Channels]
G:?:v
I:94:2:0
W:75:0:30:25000
A:75/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:424:[Necronomicon]
G:?:v
I:94:3:0
W:95:0:30:100000
A:95/3
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

# Additional rings

# This is cheaper than it should be
N:425:Fear Resistance
G:=:d
I:45:38:0
W:17:0:2:250 
A:17/2
F:RES_FEAR | EASY_KNOW

N:426:Light and Darkness Resistance
G:=:d
I:45:39:0
W:52:0:2:1500
A:52/2
F:RES_LITE | RES_DARK | EASY_KNOW

N:427:Nether Resistance
G:=:d
I:45:40:0
W:60:0:2:3500
A:60/2
F:RES_NETHER | HOLD_LIFE | EASY_KNOW

N:428:Nexus Resistance
G:=:d
I:45:41:0
W:42:0:2:750
A:42/2
F:RES_NEXUS | EASY_KNOW

N:429:Sound Resistance
G:=:d
I:45:42:0
W:45:0:2:750
A:45/2
F:RES_SOUND | EASY_KNOW

N:430:Confusion Resistance
G:=:d
I:45:43:0
W:39:0:2:750
A:39/2
F:RES_CONF | EASY_KNOW

N:431:Shard Resistance
G:=:d
I:45:44:0
W:43:0:2:750
A:43/2
F:RES_SHARDS | EASY_KNOW

N:432:Disenchantment Resistance
G:=:d
I:45:45:0
W:100:0:2:750
A:100/10
F:RES_DISEN | EASY_KNOW

N:433:Chaos Resistance
G:=:d
I:45:46:0
W:75:0:2:750
A:75/2
F:RES_CHAOS | RES_CONF | EASY_KNOW

N:434:Blindness Resistance
G:=:d
I:45:47:0
W:20:0:2:750
A:20/4
F:RES_BLIND | EASY_KNOW

N:435:Lordly Protection
G:=:d
I:45:48:0
W:105:0:2:6000
A:100/5
F:RES_DISEN | RES_POIS | HOLD_LIFE | FREE_ACT
L:MAKE:	add_ego_power(EGO_XTRA_HI_RESIST, object)
L:MAKE:	while (one_in_(4) ~= 0) do add_ego_power(EGO_XTRA_HI_RESIST, object) end
L:MAKE:	object.to_a = rand_range(10, 15) + m_bonus(10, level)
L:MAKE:	rating_boost = 5

# This is worth 2500 + the value of the plusses
N:436:Extra Attacks
G:=:d
I:45:49:1
W:75:0:2:5000
A:75/8:100/2
F:BLOWS
L:MAKE:	if (one_in_(7) ~= 0) then object.pval = 2 end
L:MAKE:	allow_curse = TRUE

N:437:Cure Light Wounds
G:!:d
I:75:34:50
W:0:0:4:35
A:0/1:3/1
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = cure_potion(38, TRUE, FALSE, FALSE)
L:SMASH:project(who, 2, x, y, damroll(2, 3), GF_OLD_HEAL,
L:SMASH:    (PROJECT_JUMP + PROJECT_ITEM + PROJECT_KILL)); return FALSE,TRUE

N:438:Clumsiness
G:!:d
I:75:19:0
W:9:0:4:0
A:9/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_dec_stat(A_DEX)
L:SMASH:return TRUE,FALSE

N:439:Sickliness
G:!:d
I:75:20:0
W:17:0:4:0
A:17/2
P:0:1d1:0:0:0
F:EASY_KNOW
L:USE:	ident = do_dec_stat(A_CON)
L:SMASH:return TRUE,FALSE

##### Items 440 to 444 reserved (old "fake" objects) #####

##### Items 445 to 479 reserved (old "terrain" objects) #####

##### And here starts the gold/gems #####

N:480:copper
G:$:u
I:100:1:0
W:1:0:0:3

N:481:copper
G:$:u
I:100:2:0
W:1:0:0:4

N:482:copper
G:$:u
I:100:3:0
W:1:0:0:5

N:483:silver
G:$:s
I:100:4:0
W:1:0:0:6

N:484:silver
G:$:s
I:100:5:0
W:1:0:0:7

N:485:silver
G:$:s
I:100:6:0
W:1:0:0:8

N:486:garnets
G:$:r
I:100:7:0
W:1:0:0:9

N:487:garnets
G:$:r
I:100:8:0
W:1:0:0:10

N:488:gold
G:$:y
I:100:9:0
W:1:0:0:12

N:489:gold
G:$:y
I:100:10:0
W:1:0:0:14

N:490:gold
G:$:y
I:100:11:0
W:1:0:0:16

N:491:opals
G:$:W
I:100:12:0
W:1:0:0:18

N:492:sapphires
G:$:b
I:100:13:0
W:1:0:0:20

N:493:rubies
G:$:r
I:100:14:0
W:1:0:0:24

N:494:diamonds
G:$:w
I:100:15:0
W:1:0:0:28

N:495:emeralds
G:$:g
I:100:16:0
W:1:0:0:32

N:496:mithril
G:$:B
I:100:17:0
W:1:0:0:40

N:497:adamantite
G:$:G
I:100:18:0
W:1:0:0:80


##### Objects 498 and 499 are the "Morgoth Artifacts" #####

# These objects, like objects 500 to 511, are never created
# without being turned into artifacts.

N:498:& Mighty Hammer~
G:\:D
I:21:50:0
W:15:0:200:1000
P:0:3d9:0:0:0
F:SHOW_MODS
F:INSTA_ART

N:499:& Massive Iron Crown~
G:]:D
I:33:50:0
W:44:0:20:1000
P:0:1d1:0:0:0
F:INSTA_ART

##### Objects 500 to 511 are the "Special Artifacts" #####

# These objects do not specify "full names" because the artifact name
# is added in "obj-desc.c" via the saved 'quark' of the name, generated
# on creation of the artifact, by copying it from a_info.txt
#
# These objects do specify a "base name", which is used when the object
# is "aware" (always true for lites)
#
# The Lites (and the One Ring) specify "physical colors", which
# over-ride the "flavor" colors, if any.  Note that the "One Ring"
# also has a specific check for "unknown" in which it changes its
# name to "a plain gold ring".  See "obj-desc.c"  (Hack XXX)
#
# Note that ALL artifacts are given "IGNORE_ACID/ELEC/FIRE/COLD",
# so we do not need to specify that here.
#
# The only reason for having six different "ring" templates and three
# different "amulet" templates is to allow each "special artifact" to
# have a different "color" and "flavor", and also to allow the use of
# special "base names" (such as "Necklace").
#
# It is also nice to simplify the artifact creation code.  (Otherwise
# these would be special cases.)  Also, this allows us to have a the
# debug command that creates objects able to create these artifacts.


# The Phial of Galadriel -- see artifact list

N:500:& Phial~
G:!:y
I:39:4:0
W:5:20:10:10000
P:0:1d1:0:0:0
F:INSTA_ART | LITE

# The Star of Elendil -- see artifact list

N:501:& Star~
G:*:y
I:39:5:0
W:20:30:5:25000
P:0:1d1:0:0:0
F:INSTA_ART | LITE

# The Arkenstone of Thrain -- replaced with Jewel of Judgement

N:502:& Jewel~
G:*:R
I:39:6:0
W:50:50:5:60000
P:0:1d1:0:0:0
F:INSTA_ART | LITE

# The Amulet of Carlammas -- see artifact list

N:503:& Amulet~
G:":d
I:40:10:0
W:10:30:3:60000
F:INSTA_ART

# The Amulet of Ingwe -- see artifact list

N:504:& Amulet~
G:":d
I:40:11:0
W:30:30:3:90000
F:INSTA_ART

# The Necklace of the Dwarves -- see artifact list

N:505:& Necklace~
G:":d
I:40:12:0
W:50:20:3:75000
F:INSTA_ART

# The Ring of Barahir -- see artifact list

N:506:& Ring~
G:=:d
I:45:32:0
W:10:30:2:65000
F:INSTA_ART

# The Ring of Tulkas -- see artifact list

N:507:& Ring~
G:=:d
I:45:33:0
W:30:30:2:150000
F:INSTA_ART

# The Ring of Power (Narya) -- see artifact list

N:508:& Ring~
G:=:d
I:45:34:0
W:50:30:2:100000
F:INSTA_ART

# The Ring of Power (Nenya) -- see artifact list

N:509:& Ring~
G:=:d
I:45:35:0
W:70:30:2:200000
F:INSTA_ART

# The Ring of Power (Vilya) -- see artifact list

N:510:& Ring~
G:=:d
I:45:36:0
W:90:30:2:300000
F:INSTA_ART

# The Ring of Power (The One Ring) -- see artifact list

N:511:& Ring~
G:=:y
I:45:37:0
W:110:0:2:5000000
F:INSTA_ART

### Room for new objects added after 511 (Zangband 2.1.0): 512-575

# Trump Spellbooks

N:512:[Conjurings & Tricks]
G:?:U
I:95:0:0
W:17:0:30:100
A:17/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:513:[Deck of Many Things]
G:?:U
I:95:1:0
W:20:0:30:1000
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:514:[Trumps of Doom]
G:?:o
I:95:2:0
W:65:0:30:25000
A:65/1
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

N:515:[Five Aces]
G:?:o
I:95:3:0
W:95:0:30:100000
A:95/3
P:0:1d1:0:0:0
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
F:EASY_KNOW

# Arcane Spellbooks

N:516:[Cantrips for Beginners]
G:?:s
I:96:0:0
W:10:0:30:100
A:10/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:517:[Minor Arcana]
G:?:s
I:96:1:0
W:15:0:30:250
A:15/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:518:[Major Arcana]
G:?:s
I:96:2:0
W:20:0:30:1000
A:20/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:519:[Manual of Mastery]
G:?:s
I:96:3:0
W:20:0:30:2500
A:35/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:520:Reflection
G:":d
I:40:9:0
W:85:0:3:2700
A:85/4
F:REFLECT | EASY_KNOW
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD

#521 and 522 cannot have EASY_KNOW because they may be cursed

N:521:Anti-Magic
G:":d
I:40:13:0
W:85:0:3:2700
A:85/4
F:NO_MAGIC
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:MAKE:	allow_curse = TRUE

N:522:Anti-Teleportation
G:":d
I:40:14:0
W:52:0:3:2700
A:52/4
F:NO_TELE
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:MAKE:	allow_curse = TRUE

#523 cannot have EASY_KNOW because it can get random resistances

N:523:Resistance
G:":d
I:40:15:0
W:75:0:3:2200
A:75/4
F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
L:MAKE:	if (one_in_(3) ~= 0) then add_ego_power(EGO_XTRA_HI_RESIST, object) end
L:MAKE:	if (one_in_(5) ~= 0) then set_obj_flag(object, 1, TR1_RES_POIS) end

##### New arms #####

N:524:& Zweihander~
G:|:w
I:23:29:0
W:65:0:280:580
A:65/3:85/3
P:0:4d6:0:0:0
F:SHOW_MODS

N:525:& Tanto~
G:|:W
I:23:6:0
W:5:0:20:30
A:5/2
P:0:1d5:0:0:0
F:SHOW_MODS

N:526:& Splint Mail~
G:[:D
I:37:10:0
W:61:0:250:950
A:61/1
P:19:1d4:-2:0:0

N:527:& Do-maru~
G:[:s
I:37:11:0
W:70:0:290:1020
A:70/2
P:20:1d4:-2:0:0

N:528:& Trifurcate Spear~
G:/:o
I:22:26:0
W:61:0:140:400
A:61/3
P:0:2d9:0:0:0
F:SHOW_MODS

N:529:& Three Piece Rod~
G:\:u
I:21:11:0
W:35:0:120:350
A:35/3
P:0:3d3:0:0:0
F:SHOW_MODS

N:530:& O-yoroi~
G:[:D
I:37:16:0
W:75:0:320:1150
A:75/2
P:24:1d4:-2:0:0

N:531:& Fur Cloak~
G:(:W
I:35:3:0
W:35:0:30:200
A:35/2:52/2
P:3:0d0:0:0:0

N:532:& Lajatang~
G:/:s
I:22:14:0
W:43:0:175:330
A:43/2
P:0:2d7:0:0:0
F:SHOW_MODS

N:533:& Hatchet~
G:/:s
I:22:1:0
W:17:0:60:120
A:17/8
P:0:1d5:0:0:0
F:SHOW_MODS

##### New armor #####

N:535:& Rhino Hide Armour~
G:(:s
I:36:8:0
W:26:0:110:400
A:26/1
P:8:1d1:-1:0:0

N:536:& Leather Jacket~
G:(:U
I:36:12:0
W:35:0:130:700
A:35/3
P:12:1d2:-1:0:0

##### New weapons #####

N:537:& Sickle~
G:/:s
I:22:3:0
W:17:0:70:110
A:17/3
P:0:2d3:0:0:0
F:SHOW_MODS

N:538:& Tetsubo~
G:\:u
I:21:16:0
W:43:0:190:570
A:43/2
P:0:2d7:0:0:0
F:SHOW_MODS

N:539:& Nunchaku~
G:\:u
I:21:4:0
W:20:0:60:120
A:20/2
P:0:2d3:0:0:0
F:SHOW_MODS

N:540:& Bo Staff~
G:\:U
I:21:14:0
W:60:0:160:310
A:60/1
P:0:1d20:0:0:0
F:SHOW_MODS

N:541:& Jo Staff~
G:\:U
I:21:7:0
W:19:0:70:200
A:19/2
P:0:1d10:0:0:0
F:SHOW_MODS

N:542:& Club~
G:\:u
I:21:1:0
W:0:0:100:3
A:0/1
P:0:2d2:0:0:0
F:SHOW_MODS

N:543:& Broad Spear~
G:/:w
I:22:7:0
W:60:0:100:450
A:60/2
P:0:1d20:0:0:0
F:SHOW_MODS

N:544:& Khopesh~
G:|:W
I:23:14:0
W:17:0:130:190
A:17/2
P:0:2d4:0:0:0
F:SHOW_MODS

N:545:& Flamberge~
G:|:W
I:23:26:0
W:65:0:230:600
A:65/2:87/2
P:0:3d7:0:0:0
F:SHOW_MODS

N:546:& Claymore~
G:|:W
I:23:23:0
W:65:0:200:600
A:65/2
P:0:2d8:0:0:0
F:SHOW_MODS

N:547:& Espadon~
G:|:W
I:23:24:0
W:65:0:200:600
A:65/3
P:0:2d9:0:0:0
F:SHOW_MODS

N:548:& Great Scimitar~
G:|:W
I:23:22:0
W:85:0:240:1050
A:85/3:98/3
P:0:4d5:0:0:0
F:SHOW_MODS

N:549:& Wakizashi~
G:|:W
I:23:13:0
W:26:0:90:210
A:26/3
P:0:2d4:0:0:0
F:SHOW_MODS

N:550:& Naginata~
G:/:s
I:22:9:0
W:43:0:150:410
A:43/2
P:0:2d6:0:0:0
F:SHOW_MODS

N:551:& Fauchard~
G:/:s
I:22:6:0
W:82:0:155:700
A:82/1
P:0:1d25:0:0:0
F:SHOW_MODS

N:552:& Guisarme~
G:/:s
I:22:16:0
W:37:0:165:320
A:37/1
P:0:2d5:0:0:0
F:SHOW_MODS

N:553:& Heavy Lance~
G:/:s
I:22:29:0
W:88:0:400:700
A:88/2:98/1
P:0:1d35:0:0:0
F:SHOW_MODS

N:554:& Basillard~
G:|:w
I:23:9:0
W:42:0:80:550
A:42/1
P:0:1d15:0:0:0
F:SHOW_MODS

N:555:& Ninjato~
G:|:s
I:23:19:0
W:52:0:100:600
A:52/1
P:0:1d18:0:0:0
F:SHOW_MODS

N:556:& Ring Mail~
G:[:s
I:37:2:0
W:35:0:200:550
A:35/1
P:12:1d4:-2:0:0

N:557:& Cord Armour~
G:(:y
I:36:9:0
W:9:0:80:200
A:9/2
P:6:1d1:0:0:0

N:558:& Paper Armour~
G:(:w
I:36:3:0
W:9:0:30:50
A:9/3
P:4:1d1:0:0:0
D:This unusual armor is made from many layers of paper glued together.

N:559:& Padded Armour~
G:(:y
I:36:10:0
W:4:0:60:30
A:4/1
P:4:1d1:0:0:0

N:560:& Kabuto~
G:]:D
I:32:8:0
W:75:0:80:300
A:75/3
P:7:1d2:0:0:0

N:561:& Stone and Hide Armour~
G:(:U
I:36:15:0
W:61:0:200:1300
A:61/4
P:15:1d1:-1:0:0

N:562:& Jingasa~
G:]:s
I:32:4:0
W:28:0:30:60
A:28/2
P:4:1d2:0:0:0

N:563:& Haramakido~
G:[:D
I:37:14:0
W:56:0:280:1320
A:56/2
P:17:1d4:-2:0:0

N:564:& Incandescent Globe~
G:!:y
I:39:3:0
W:30:50:5:20000
P:0:1d1:0:0:0
F:INSTA_ART

N:565:& Diamond Edge~
G:|:w
I:23:31:0
W:120:0:150:20000
A:100/16
P:0:7d5:0:0:0
F:SHOW_MODS | VORPAL 

N:566:Mundanity
G:?:d
I:70:23:0
W:23:0:5:0
A:23/10:63/10
F:EASY_KNOW
L:USE:	result = mundane_spell()

N:567:& Magical Figurine~ of #
G:`:g
I:8:0:0
W:50:0:50:100
A:26/6:52/3:90/1
P:0:1d1:0:0:0
F:EASY_KNOW

N:568:& Wooden Statue~ of #
G:`:u
I:9:0:0
W:5:0:200:75
A:9/3
P:0:1d2:0:0:0

N:569:& Clay Statue~ of #
G:`:U
I:9:1:0
W:5:0:500:50
A:17/3
P:0:1d3:0:0:0

N:570:& Stone Statue~ of #
G:`:s
I:9:2:0
W:5:0:500:100
A:26/3
P:0:2d3:0:0:0

N:571:& Iron Statue~ of #
G:`:D
I:9:3:0
W:5:0:500:200
A:35/3
P:0:2d4:0:0:0

N:572:& Copper Statue~ of #
G:`:o
I:9:4:0
W:20:0:500:500
A:43/3
P:0:2d4:0:0:0

N:573:& Silver Statue~ of #
G:`:W
I:9:5:0
W:32:0:500:1000
A:52/3
P:0:2d4:0:0:0

N:574:& Golden Statue~ of #
G:`:y
I:9:6:0
W:50:0:500:2500
A:63/3
P:0:2d4:0:0:0

N:575:& Ivory Statue~ of #
G:`:w
I:9:7:0
W:40:0:500:2000
A:70/3
P:0:1d4:0:0:0

N:576:& Mithril Statue~ of #
G:`:B
I:9:8:0
W:70:0:500:10000
A:95/3
P:0:2d5:0:0:0

N:577:& Ornate Statue~ of #
G:`:v
I:9:9:0
W:60:0:500:5000
A:80/3
P:0:2d4:0:0:0

#N:578:& Skeleton~
#G:~:w
#I:10:0:0
#W:32:0:500:0
#A:1/2
#P:0:1d1:0:0:0

#N:579:& corpse~
#G:~:v
#I:10:1:0
#W:32:0:1000:0
#A:1/2
#P:0:1d1:0:0:0

N:580:& T-shirt~
G:~:w
I:36:0:0
W:1:0:10:0
P:1:1d1:0:0:0


##### New Bolt #####

N:581:& Steel Bolt~
G:{:W
I:18:1:0
W:43:0:3:25
A:43/2:70/2
P:0:1d15:0:0:0
F:SHOW_MODS

##### New artifact ring #####

# The Ring of Power (Vilya) -- see artifact list

N:582:& Ring~
G:=:d
I:45:50:0
W:100:20:2:300000
F:INSTA_ART

##### New rings #####

N:583:Resist Fire and Cold
G:=:d
I:45:51:0
W:21:0:2:850
A:21/4
F:RES_FIRE | RES_COLD | IGNORE_FIRE | IGNORE_COLD | EASY_KNOW

N:584:the Cat
G:=:d
I:45:52:4
W:13:0:2:80
A:13/2
F:STEALTH | INFRA
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	if (one_in_(3) ~= 0) then set_obj_flag(object, 1, TR1_SUST_DEX) end
L:MAKE:	allow_curse = TRUE

# This is cheaper than it should be
N:585:Fate
G:=:d
I:45:53:0
W:15:0:2:500
A:15/5:30/5
F:STRANGE_LUCK

N:586:Wizardry
G:=:d
I:45:54:2
W:60:0:2:2500
A:75/2
F:SP
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)
L:MAKE:	allow_curse = TRUE

##### New amulets #####

N:587:Protection from Evil
G:":d
I:40:16:0
W:35:0:3:750
A:35/2
F:SLAY_EVIL | EASY_KNOW

N:588:Protection from Undead
G:":d
I:40:17:4
W:35:0:3:750
A:35/2
F:SLAY_UNDEAD | WIS
L:MAKE:	object.pval = 1 + m_bonus(object.pval, level)

N:589:Luck
G:":d
I:40:18:0
W:50:0:3:1500
A:50/1
F:LUCK_10
L:MAKE:	add_ego_power(EGO_XTRA_POWER, object)

##### New weapon types #####
N:590:& Elfblade~
G:|:w
I:23:32:0
W:90:0:140:15000
A:70/20:90/20
P:0:4d4:0:0:0

N:591:& Whip~ of Entanglement
G:\:D
I:21:21:0
W:20:0:30:350
A:20/5
P:0:1d6:0:0:0
F:SLAY_ANIMAL | SHOW_MODS

N:592:& Psiblade~
G:|:B
I:23:33:0
W:50:0:120:1400
A:50/4
P:0:3d4:0:0:0
F:PSI_CRIT | LITE | SHOW_MODS
D:The blade of this sword is made of pure magic.

N:593:& Hammer~ of Returning
G:\:D
I:21:22:0
W:9:0:85:675
A:31/4
P:0:3d4:0:0:0
F:THROW | RETURN | SHOW_MODS
D:An ornate metal hammer with runes inscribed on the haft and head.

# Hagaromo (feathered robe) - worn by tenyo (celestial maidens)
# in japanese mythology
N:594:& Hagaromo~
G:(:v
I:36:16:0
W:40:0:20:750
A:40/2
P:2:0d0:0:0:0
F:FEATHER | 
F:SUST_STR | SUST_INT | SUST_WIS | 
F:SUST_DEX | SUST_CON | SUST_CHR
D:A heavenly robe covered with soft feathers.
L:MAKE:	object.to_a = object.to_a + randint1(10) + m_bonus(10, level)

# Amulet of Sustenance

N:595:Sustenance
G:=:d
I:40:19:0
W:12:0:3:300
A:12/5
F:EASY_KNOW
D:It prevents hunger.
L:TIMED:	if player.food < PY_FOOD_FULL + 500 then set_food(player.food + 10) end

