# File: curse.txt

# name: effect name
# type: valid object base
# weight: adjustment amount or scale factor (implicitly divided by 100)
# combat: to_hit : to_dam : to_ac
# effect: random effect : ? parameter : ? parameter : ? parameter
# dice:dice string
# expr:dice expression
# time: average frequency of random effect
# flags: flag | flag | etc.
# values: label[value] | label[value] | etc.
# msg: text
# desc: description
# conflict: curse_name
# conflict-flags: flag | flag | etc.

# 'type' appends a kind of object (from object_base.txt) to the kinds which
# can be afflicted with the curse.

# 'weight' sets an adjustment to the weight of the object with the curse.  If
# not supplied the adjustment is zero.  If the flags for the curse do not
# include MULTIPLY_WEIGHT, the adjustment is additive in units of 1/10ths of a
# pound.  Negative adjustments (as well as non-negative ones) are allowed in
# that case.  If the flags for the curse do include MULTIPLY_WEIGHT, the
# adjustment is a multiplicative factor, the given value divided by 100.  The
# adjustment must be non-negative in that case.  With a multiplicative weight,
# the incoming weight, w, is changed to be MAX(1, w) before applying the
# muliplicative factor what that factor is greater than one (i.e. the value
# given for the weight adjustment is greater than 100).  That is to allow the
# multiplicative factors to be of some use with otherwise weightless items.
# When applying a multiplicative factor, the result is rounded to the nearest
# integer.  Curses will never reduce the weight to be less than zero or
# greater than 32767.  The ordering of curses in this file sets the order in
# which the order adjustments are applied.  If all the curses on an item use
# additive weight adjustments, the order of the adjustments only matters if
# the adjusted weight would fall outside the [0, 32767] range at some point.
# For all multiplicative adjustments (because of the rounding) or a mix of
# additive or multiplicative adjustments, the order will matter.  Setting up
# additive and multiplicative curses to conflict with one another is a way to
# reduce the dependence on the ordering of curses in this file.

# 'combat' sets the adjustments to to-hit, to-damage, and AC for a cursed
# object.  If not supplied, the adjustments are all zero.

# 'effect' sets the name of the effect that'll randomly trigger on the cursed
# object.  The fields are the name of the effect (from src/list-effects.h),
# the subtype which is either an index or a name (look at effect_subtype()
# in src/effects.c for more information), the radius, and the other parameter.
# The effect name is required.  The others are optional, and the trailing ones
# that are unused can be omitted.

# 'dice' provides a random value to be used by the effect (for damage, healing,
# duration, ...).

# 'expr' provides an expression for use in the dice value for the effect.
# It consists of a code letter (eg B) for the expression, a base function to
# use (for example PLAYER_LEVEL), and a sequence of operations to perform on
# that base.

# 'msg' sets the text to display when the curse effect triggers.  If there
# multiple 'msg' lines for a curse, they'll be concatenated.

# 'time' sets a random expression.  Each time the curse effect happens, that
# expression will be reevaluated to determine the number of turns until the
# next time the curse effect will happen.

# 'flags' is for the flags that the cursed object will have.  Those flags can
# either be object flags (as found in src/list-object-flags.h) or element
# flags (IGNORE_ or HATES_ with an element name from src/list-elements.h
# appended).  As many 'flags' lines may be used as are needed to specify all
# of the flags.  More than one flag can be set per line:  use '|' to separate
# one flag from the next.

# 'values' is for the object modifiers which take a value (stats, resistances,
# and so on) that'll be present on the cursed item.  Like 'flags', values
# are separated by '|' and as many 'values' lines as needed can be used.

# 'desc' is for the description of the curse.  It will be included in the
# description of the cursed object when the curse is known.  As many 'desc'
# lines may be used as are needed to describe the curse.

# 'conflict' sets the name of a curse that conflicts with this curse.
# Two curses that conflict will not both be present on an object.  You may
# use multiple 'conflict' lines to specify that this curse conflicts with
# more than one other curse.

# 'conflict-flags' lists the object flags (from src/list-object-flags.h) that
# conflict with this curse:  this curse will not appear on an object that has
# one or more of those flags.  More than one flag can be included on the line:
# separate them with '|', and more than one 'conflicts-flags' lines may be
# used to specify all of the conflicting flags.

name:vulnerability
combat:0:0:-50
type:cloak
type:soft armor
type:hard armor
type:dragon armor
type:shield
flags:AGGRAVATE
desc:attracts opponents and weakens the defences

name:teleportation
type:helm
type:crown
type:amulet
type:ring
effect:TELEPORT
dice:40
time:d100
msg:Space warps around you.
desc:randomly makes you teleport
conflict:anti-teleportation
conflict-flags:NO_TELEPORT

name:dullness
type:helm
type:crown
values:INT[-5] | WIS[-5]
desc:makes you mentally slow

name:sickliness
type:helm
type:crown
values:STR[-5] | DEX[-5] | CON[-5]
desc:makes you frail

name:enveloping
combat:-5:-5:20
type:cloak
desc:protects you at the expense of free movement

name:irritation
combat:-15:-15:0
type:cloak
flags:AGGRAVATE
desc:annoys monsters and makes it hard for you to hit them

name:weakness
type:gloves
values:STR[-10]
desc:weakens your grasp

name:clumsiness
type:gloves
values:DEX[-10]
desc:gives you butterfingers

name:slowness
type:boots
values:SPEED[-5]
desc:drags at your feet

name:annoyance
type:boots
values:SPEED[-10] | STEALTH[-10]
flags:AGGRAVATE
desc:wakes up and annoys nearby monsters, and delays your escape

name:poison
type:bow
type:digger
type:hafted
type:polearm
type:sword
type:boots
type:gloves
type:helm
type:crown
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
type:light
type:amulet
type:ring
effect:TIMED_INC:POISONED
dice:10+d10
time:1d500
desc:poisons you from time to time

name:siren
type:bow
type:digger
type:hafted
type:polearm
type:sword
type:boots
type:gloves
type:helm
type:crown
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
type:light
type:amulet
type:ring
effect:WAKE
time:100+1d50
msg:A horn blares out!
desc:occasionally makes a loud noise

name:hallucination
type:bow
type:digger
type:hafted
type:polearm
type:sword
type:boots
type:gloves
type:helm
type:crown
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
type:light
type:amulet
type:ring
effect:TIMED_INC:IMAGE
dice:10+d10
time:1d500
desc:makes you hallucinate sometimes

name:paralysis
type:bow
type:digger
type:hafted
type:polearm
type:sword
type:boots
type:gloves
type:helm
type:crown
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
type:light
type:amulet
type:ring
effect:TIMED_INC:PARALYZED
dice:5+1d5
time:1d1000
msg:Your equipment grabs you!
desc:paralyses you every now and then

name:dragon summon
type:dragon armor
effect:SUMMON:DRAGON
dice:1
time:1d500
msg:Your armour lets out a cry...
desc:sometimes summons a dragon

name:demon summon
type:digger
type:hafted
type:polearm
type:sword
effect:SUMMON:DEMON
dice:1
time:1d500
msg:Your weapon gives out a demonic shriek!
desc:occasionally summons a demon

name:undead summon
type:digger
type:hafted
type:polearm
type:sword
effect:SUMMON:UNDEAD
dice:1
time:1d500
msg:Your weapon calls beyond the grave!
desc:occasionally summons an undead

name:impair mana recovery
type:helm
type:crown
flags:IMPAIR_MANA
conflict-flags:IMPAIR_MANA
desc:makes you slow to recover mana

name:impair hitpoint recovery
type:boots
type:gloves
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
flags:IMPAIR_HP
conflict-flags:IMPAIR_HP
desc:makes you slow to recover hitpoints

name:cowardice
type:amulet
type:ring
flags:AFRAID
conflict-flags:AFRAID | PROT_FEAR
desc:makes you too scared to fight

name:stone
type:amulet
type:ring
effect:TIMED_INC:STONESKIN
dice:20+1d20
time:1d1000
desc:periodically turns your skin to stone

name:anti-teleportation
type:boots
type:cloak
type:soft armor
type:hard armor
type:dragon armor
type:amulet
type:ring
flags:NO_TELEPORT
desc:prevents you from teleporting
conflict:teleportation
conflict-flags:NO_TELEPORT

name:treacherous weapon
type:digger
type:hafted
type:polearm
type:sword
effect:DAMAGE
dice:$B
expr:B:WEAPON_DAMAGE:+ 0
time:1d200
msg:Your weapon turns on you!
desc:makes your weapon attack you

name:burning up
type:boots
type:gloves
type:helm
type:crown
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
values:RES_FIRE[-1] | RES_COLD[1]
desc:makes you vulnerable to fire attacks, but resistant to cold
conflict:chilled to the bone

name:chilled to the bone
type:boots
type:gloves
type:helm
type:crown
type:shield
type:cloak
type:soft armor
type:hard armor
type:dragon armor
values:RES_FIRE[1] | RES_COLD[-1]
desc:makes you vulnerable to cold attacks, but resistant to fire
conflict:burning up

name:steelskin
type:digger
type:hafted
type:polearm
type:sword
type:helm
type:crown
type:shield
type:hard armor
type:dragon armor
type:light
type:amulet
type:ring
combat:0:0:20
values:RES_ELEC[-1] | RES_SHARD[1]
desc:makes your skin harder to damage, but conduct electricity

name:air swing
combat:-20:0:0
type:digger
type:hafted
type:polearm
type:sword
desc:makes it hard to hit anything

