# File: constants.txt


# This file is used to initialize game constants for Angband.

#---------------------------------------------------------------------
# Level Maxima
#---------------------------------------------------------------------

# Maximum number of monsters on the level
level-max:monsters:1024

#---------------------------------------------------------------------
# Monster Generation
#---------------------------------------------------------------------

# 1/per-turn-chance of new monster generation
mon-gen:chance:500

# Minimum number of monsters generated on a level
mon-gen:level-min:14

# Number of townsfolk generated in the day */
mon-gen:town-day:4

# Number of townsfolk generated in the night */
mon-gen:town-night:8

# Maximum number of breeding monsters allowed on a level
mon-gen:repro-max:100

# Chance of a generated monster's level being inflated is one-in-this
mon-gen:ood-chance:25

# Maximum out-of-depth amount for monster generation
mon-gen:ood-amount:10

# Maximum number of monsters in a group
mon-gen:group-max:25

# Maximum distance of a group of monsters from a related group
mon-gen:group-dist:5

#---------------------------------------------------------------------
# Monster Gameplay
#---------------------------------------------------------------------

# Rune of protection resistance to monster breaking
mon-play:break-glyph:550

# High value slows multiplication
mon-play:mult-rate:8

# Percent of player exp drained per hit
mon-play:life-drain:2

# Monsters will run up to this many grids out of sight
mon-play:flee-range:5

# Terrified monsters will turn to fight if they are slower than the character,
# and closer than this distance.
mon-play:turn-range:5

#---------------------------------------------------------------------
# Dungeon Generation
#---------------------------------------------------------------------

# Number of possible room centres (and hence rooms) on a normal level
dun-gen:cent-max:100

# Number of possible door locations
dun-gen:door-max:200

# Number of possible places to pierce room walls with tunnels
dun-gen:wall-max:500

# Number of tunnel grids
dun-gen:tunn-max:900

# Average number of objects to place in rooms
dun-gen:amt-room:9

# Average number of objects to place in rooms/corridors
dun-gen:amt-item:3

# Average amount of treasure to place in rooms/corridors
dun-gen:amt-gold:3

# Maximum number of pits or nests allowed per level
dun-gen:pit-max:2

#---------------------------------------------------------------------
# Game World
#---------------------------------------------------------------------

# Maximum dungeon level; must be at least 100.
# Setting it below 128 may prevent the creation of some objects.
world:max-depth:128

# Number of turns from dawn to dawn
world:day-length:10000

# Max number of grids in each dungeon level (vertically)
world:dungeon-hgt:66

# Max number of grids in each dungeon level (horizontally)
world:dungeon-wid:198

# Max number of grids in each town level (vertically)
world:town-hgt:22

# Max number of grids in each town level (horizontally)
world:town-wid:66

# Total number of feeling squares per level
world:feeling-total:100

# Squares needed to see to get first feeling
world:feeling-need:10

# Number of levels for each stair
world:stair-skip:1

# Energy needed by player or monsters to move
world:move-energy:100

#---------------------------------------------------------------------
# Carrying Capacity
#---------------------------------------------------------------------

# Max number of pack slots for carrying inventory
carry-cap:pack-size:23

# Max number of quiver slots for carrying missiles
carry-cap:quiver-size:10

# Max number of missiles per quiver slot
carry-cap:quiver-slot-size:40

# For computing quiver capacity, is the multiplier for non-ammo thrown items
carry-cap:thrown-quiver-mult:5

# Maximum number of objects allowed in a single dungeon grid.
#
# The main screen originally had a minimum size of 24 rows, so it could always
# display 23 objects + 1 header line.
carry-cap:floor-size:23


#---------------------------------------------------------------------
# Store Parameters
#---------------------------------------------------------------------

# Maximum number of discrete objects in store inventory
store:inven-max:24

# Number of turns between turnovers
store:turns:1000

# 1/Chance (per day) of an owner changing
store:shuffle:25

# Dungeon level to apply magic to objects for normal stores
store:magic-level:5


#---------------------------------------------------------------------
# Object generation
#---------------------------------------------------------------------

# Maximum depth used in object allocation
obj-make:max-depth:100

# 1/chance of inflating the requested object level
obj-make:great-obj:20

# 1/chance of inflating the requested ego item level
obj-make:great-ego:20

# Maximum amount of fuel in a torch
obj-make:fuel-torch:5000

# Maximum amount of fuel in a lantern
obj-make:fuel-lamp:15000

# Default amount of fuel in a lantern
obj-make:default-lamp:7500


#---------------------------------------------------------------------
# Player constants
#---------------------------------------------------------------------

# Maximum visual range
player:max-sight:20

# Maximum missile and spell range
player:max-range:20

# Amount of gold (or value of equipment) the player starts with
player:start-gold:600

# Number of turns that 1% of player food capacity feeds them for
player:food-value:100

#---------------------------------------------------------------------
# Constants for non-O critical calculations
# In general, those calculations compute the chance for a critical
# from a linear combination of the to-hit bonuses, the player's
# to-hit skill, the player's level, and the weapon or missile's
# weight.  If a critical happens, they then compute the power (i.e.
# severity of the critical) from a random term and the weapon or
# missile's weight.  For more details see critical_melee() and
# critical_shot() in player-attack.c.
#---------------------------------------------------------------------

# Amount added to the to-hit value for calculating the chance of a melee
# critical when the target is debuffed
melee-critical:debuff-toh:10

# Scale factor for the weapon's weight in the chance for a melee critical
melee-critical:chance-weight-scale:1

# Scale factor for the overall to-hit value when calculating the chance
# for a melee critical
melee-critical:chance-toh-scale:5

# Scale factor for player level when calculating the chance for a melee critical
melee-critical:chance-level-scale:0

# Scale factor for the to-hit skill when calculating the chance for a melee
# critical
melee-critical:chance-toh-skill-scale:1

# Value added to the chance for a melee critical
melee-critical:chance-offset:-60

# Maximum range for melee critical chance; if the chance is N and the maximum
# range is M, then the probability a critical will happen is
# min(max(0, N), M) / M; to avoid extra inaccuracies for the damage shown
# within object descriptions, this should be a multiple of 100
melee-critical:chance-range:5000

# Scale factor for the weapon weight in the power of a melee critical
melee-critical:power-weight-scale:1

# The maximum of the random part of the power for a melee critical
melee-critical:power-random:650

# Define each of the levels for melee criticals.  If no critical levels are
# defined, then there's no extra damage due to critical hits.
# The first value is the cutoff for the power.  Any critical which has a power
# less than that cutoff and is not covered by a lower power level will fall
# in that level.  The cutoff for the last level is not used and that level
# will catch any criticals not caught by the previous levels.  To be valid,
# the cutoffs for all levels but the last must be in scrictly ascending order.
# The second value is the damage multiplier for that power level.
# The third value is the amount added to the damage for that power level.
# The fourth value is the name of the message, from list-messages.h, to use when
# a critical happens for that power level.
melee-critical-level:400:2:5:HIT_GOOD
melee-critical-level:700:2:10:HIT_GREAT
melee-critical-level:900:3:15:HIT_SUPERB
melee-critical-level:1300:3:20:HIT_HI_GREAT
melee-critical-level:-1:4:20:HIT_HI_SUPERB

# Amount added to the to-hit value for calculating the chance of a ranged
# critical when the target is debuffed
ranged-critical:debuff-toh:10

# Scale factor for the missile's weight in the chance for a ranged critical
ranged-critical:chance-weight-scale:1

# Scale factor for the overall to-hit value when calculating the chance
# for a ranged critical
ranged-critical:chance-toh-scale:4

# Scale factor for player level when calculating the chance for a ranged
# critical
ranged-critical:chance-level-scale:2

# Scale factor for the launched to-hit skill when calculating the chance for
# a ranged critical when using a launcher
ranged-critical:chance-launched-toh-skill-scale:0

# Scale factor for the thrown to-hit skill when calculating the chance for
# a ranged critical for a thrown object
ranged-critical:chance-thrown-toh-skill-scale:0

# Value added to the chance for a ranged critical
ranged-critical:chance-offset:0

# Maximum range for ranged critical chance; if the chance is N and the maximum
# range is M, then the probability a critical will happen is
# min(max(0, N), M) / M; to avoid extra inaccuracies for the damage shown
# within object descriptions, this should be a multiple of 100
ranged-critical:chance-range:5000

# Scale factor for the missle weight in the power of a ranged critical
ranged-critical:power-weight-scale:1

# The maximum of the random part of the power for a ranged critical
ranged-critical:power-random:500

# Define each of the levels for ranged criticals.  If no critical levels are
# defined, then there's no extra damage due to critical hits.
# The first value is the cutoff for the power.  Any critical which has a power
# less than that cutoff and is not covered by a lower power level will fall
# in that level.  The cutoff for the last level is not used and that level
# will catch any criticals not caught by the previous levels.  To be valid,
# the cutoffs for all levels but the last must be in scrictly ascending order.
# The second value is the damage multiplier for that power level.
# The third value is the amount added to the damage for that power level.
# The fourth value is the name of the message, from list-messages.h, to use
# when a critical happens for that power level.
ranged-critical-level:500:2:5:HIT_GOOD
ranged-critical-level:1000:2:10:HIT_GREAT
ranged-critical-level:-1:3:15:HIT_SUPERB

#---------------------------------------------------------------------
# Constants for O critical calculations
# In general, those calculations compute a "power" of the critical
# by scaling the chance of a hit.  The "power" is then converted to
# a chance of a critical using (a * power) / (b * power + c) as the
# chance where a, b, and c are constants specified here.  For more
# details, see o_critical_melee() and o_critical_shot() in
# player-attack.c.
#---------------------------------------------------------------------

# Amount added to the to-hit value for calculating the power of a melee critical
# when the target is debuffed
o-melee-critical:debuff-toh:10

# The numerator for the scale factor applied to the combined to-hit value to
# get the power of the critical
o-melee-critical:power-toh-scale-numerator:1

# The denominator for the scale factor applied to the combined to-hit value to
# get the power of the critical
o-melee-critical:power-toh-scale-denominator:3

# The scale factor for the critical's power in the numerator for the chance
# of the critical
o-melee-critical:chance-power-scale-numerator:1

# The scale factor for the critical's power in the denominator for the chance
# of the critical
o-melee-critical:chance-power-scale-denominator:1

# Value of an added term in the denominator for the chance of a critical
o-melee-critical:chance-add-denominator:240

# Define each of the levels for melee criticals.  They are considered in the
# order they appear so it's convenient to put the least likely first.  If no
# critical levels are defined, then there's no extra damage due to critical
# hits.
# Except for the last level, one over the first value is the probability that
# this level occurs when none of the prior levels have been selected; the last
# level will always be used if none of the prior levels have been selected.
# The first value must be positive.
# The second value is the number of dice to add for the critical.  It must be
# non-negative.
# The third value is the name of the message, from list-messages.h, to use
# when a critical happens for that power level.
o-melee-critical-level:40:5:HIT_HI_SUPERB
o-melee-critical-level:12:4:HIT_HI_GREAT
o-melee-critical-level:3:3:HIT_SUPERB
o-melee-critical-level:2:2:HIT_GREAT
o-melee-critical-level:1:1:HIT_GOOD

# Amount added to the to-hit value for calculating the power of a ranged
# critical when the target is debuffed
o-ranged-critical:debuff-toh:10

# The numerator for the scale factor applied to the combined to-hit value to
# get the power of the critical with a launched missile
o-ranged-critical:power-launched-toh-scale-numerator:1

# The denominator for the scale factor applied to the combined to-hit value to
# get the power of the critical with a launched missile
o-ranged-critical:power-launched-toh-scale-denominator:1

# The numerator for the scale factor applied to the combined to-hit value to
# get the power of the critical with a thrown missile; this and the
# denominator are currently set so thrown missiles get more criticals
o-ranged-critical:power-thrown-toh-scale-numerator:3

# The denominator for the scale factor applied to the combined to-hit value to
# get the power of the critical with a thrown missile
o-ranged-critical:power-thrown-toh-scale-denominator:2

# The scale factor for the critical's power in the numerator for the chance
# of the critical
o-ranged-critical:chance-power-scale-numerator:1

# The scale factor for the critical's power in the denominator for the chance
# of the critical
o-ranged-critical:chance-power-scale-denominator:1

# Value of an added term in the denominator for the chance of a critical
o-ranged-critical:chance-add-denominator:360

# Define each of the levels for ranged criticals.  They are considered in the
# order they appear so it's convenient to put the least likely first.  If no
# critical levels are defined, then there's no extra damage due to critical
# hits.
# Except for the last level, one over the first value is the probability that
# this level occurs when none of the prior levels have been selected; the last
# level will always be used if none of the prior levels have been selected.
# The first value must be positive.
# The second value is the number of dice to add for the critical.  It must be
# non-negative.
# The third value is the name of the message, from list-messages.h, to use
# when a critical happens for that power level.
o-ranged-critical-level:50:3:HIT_SUPERB
o-ranged-critical-level:10:2:HIT_GREAT
o-ranged-critical-level:1:1:HIT_GOOD
