# gamedata.db
# Various constants used by the game engine

# Comments must be an entire line unto themselves!
# All durations in this file are in frames, assuming 30 fps
# For SOLO mode data, prefix the line with "SOLO"
# For ARENA mode data, prefix the line with "ARENA"
# For data usable by either mode, no prefix is needed

# when a Warrior hits the wall, what % of his remaining HP he loses
BerserkerPainRatio: 0.2
BerserkerDamage:
  SOLO: 100
  ARENA: 150
BerserkerStunDuration: 45

#
# After the complete equation for repair value is run, the value is multiplied
# by this coefficient.
#
RepairCoefficient: 0.60

#
# When you attack with a weapon this percentage of the damage you are trying
# to deal will damage the weapon itself.
#
ItemDamagePercentage: 0.03

#
# When you block an attack with a weapon/shield capable of blocking such as a
# greatsword, shield or any of the staves this percentage of the incoming 
# damage will get applied to the weapon or shield that did the block itself.
# NOTE: This percentage is not used in the normal distribution of damage
# among all of the players armor in a regular damage situation, that is
# handled by a separate system in which shields provide no protection.
#
ItemDamageFromBlockPercentage: 0.20

#
# In Solo game, when you have a field guide for your victim, the damage
# you are about to do will be multiplied by this
#
FieldGuideDamageBonus: 1.2

# the base stats of all character classes ------------------------------
BaseHealth: 20
BaseMana: 78
BaseSpeed: 17250
BaseStrength: 20

# class stat maximums (at level 10) ------------------------------------
WarriorMaxHealth:
  SOLO: 150
  ARENA: 150
  #ARENA: 300

WarriorMaxMana: 0
WarriorMaxSpeed: 21000
WarriorMaxStrength: 125

WizardMaxHealth:
  SOLO: 75
  ARENA: 75
  #ARENA: 150

WizardMaxMana:
  SOLO: 170
  ARENA: 150
  #ARENA: 300

WizardMaxSpeed:
  SOLO: 18500
  ARENA: 17500
WizardMaxStrength: 35

ConjurerMaxHealth:
  SOLO: 100
  ARENA: 100
  #ARENA: 200

ConjurerMaxMana:
  SOLO: 140
  ARENA: 125
  #ARENA: 250

ConjurerMaxSpeed:
  SOLO: 19500
  ARENA: 18500
ConjurerMaxStrength: 55

# experience point table -----------------------------------------------
# First entry is for level "0", next is 1, etc
XPTable: [
  -1,
  0,
  5000,
  11000,
  18200,
  26840,
  37208,
  49650,
  64580,
  82495,
  103995,
  126891,
  151276,
  177246,
  204903,
  234359,
  265729,
  299139,
  334720,
  372613,
  412970,
  455950,
  501723,
  550472,
  602390,
  657682,
  716568,
  779282,
  846072,
  917204,
  992959,
  2000000000,
]

#
# Min damage for crossbow bolts in solo game.  This cannot be prefixed with
# solo or arena modes
#
BoltSoloDamageMin: 100

# Damage for arrow traps
ArrowTrapDamage: 25

#--------------------------------------------------------------------------
# Magic Spell data
# - Data lines consisting of five values usually represent the value of
#   that data at each of the five spell levels.
# - All durations are in frames, assuming 30 fps.
#--------------------------------------------------------------------------

# this is the lifetime of a targeted spell (like Slow) that has a target
TargetedSpellLifetime:
  SOLO: 60
  ARENA: 45

# this is the lifetime of a targeted spell (like Slow) that has no target
# and is flying around looking for one
UnTargetedSpellLifetime:
  SOLO: 60
  ARENA: 15

# number of glyphs you can have at once
MaxTrapCount: 4

# number of bombers allowed for conjurer to summon at once
MaxBomberCount: 2

ManaDrainRange: 240
ManaDrainCoeff: [1.0, 1.5, 2.0, 2.5, 3.0]

ChannelLifeCoeff: [0.50, 0.75, 1.00, 1.25, 1.50]

EnergyBoltTrapCost: 30
EnergyBoltGlyphDamage: 30
EnergyBoltDamage:
  SOLO: [0.5, 0.7, 1.0, 1.3, 1.6]
  ARENA: [1.3, 1.6, 2.0, 2.3, 2.6]

LightningGlyphDamage: 15
LightningTrapCost: 30
LightningSearchTime: 30
LightningRange: 240
LightningDamage:
  SOLO: 1.2
  ARENA: 1.5

#ShieldDuration: [600, 900, 1200, 1500, 1800]
ShieldDuration: [0, 0, 0, 0, 0]
ShieldHealth: [20, 35, 50, 75, 100]

TagDurationPerLevel: 1800

TeleportDelay: [25, 20, 15, 10, 5]

ManaBombTrapCost: 60
ManaBombInRadius: 150
ManaBombOutRadius: 300
ManaBombShakeMag: 30
# HP of damage the bomb starts with
ManaBombInitPower: [10, 20, 30, 40, 50]
# HP of damage increase per frame. Note that one point of
# mana is subtracted from the caster for each level of the spell.
# So a level 3 bomb (multiplayer strength) takes 3 mana per frame.
# If the power is 1,2,3,4,5, then this translates to 1 point of damage
# per mana point.
ManaBombDeltaPower: [1, 2, 3, 4, 5]
# How long it takes obliteration in a glyph to blow up (frames)
ManaBombGlyphDuration: 60

TurnUndeadKillPoints: [150, 200, 250, 300, 350]

# damage from the staff of oblivion
PlasmaDamage: 10
PlasmaDamageHecubah: 1
PlasmaSearchTime: 3

#
# recharge rate for the staff of oblivion (1 - 4, 4 is max for all recharging),
# this is how fast and much mana it can drain from an obelisk when standing
# next to it to recharge it
#
OblivionStaffRechargeRate: 2

# push and pull spell strength
PullPowerCoeff: 15
PushPowerCoeff: 15

# inversion range
InversionRange: 240.0

# glyph range
GlyphRange: 75.0

# enchantment durations in frames (30 fps assumed)
SlowEnchantDuration: 120
ConfuseEnchantDuration: 90
StunEnchantDuration: 60
AnchorEnchantDuration: 300
ShockEnchantDuration: 600
HasteEnchantDuration: 600
LightEnchantDuration: 9000
MoonglowEnchantDuration: 9000
InvisibilityEnchantDuration: 1800
InvulnerabilityEnchantDuration: 150
InfravisionEnchantDuration: 900

ProtectFireEnchantDuration: 1800
FireSpellProtection:
  SOLO: [0.4, 0.5, 0.6, 0.6, 0.6]
  ARENA: [0.5, 0.5, 0.5, 0.5, 0.5]

ProtectElectricityEnchantDuration: 1800
ElectricitySpellProtection:
  SOLO: [0.4, 0.5, 0.6, 0.6, 0.6]
  ARENA: [0.5, 0.5, 0.5, 0.5, 0.5]

ProtectPoisonEnchantDuration: 1800
PoisonSpellProtection:
  SOLO: [0.4, 0.5, 0.6, 0.6, 0.6]
  ARENA: [0.5, 0.5, 0.5, 0.5, 0.5]

FearEnchantDuration: 300

RunEnchantDuration:
  SOLO: 150
  ARENA: 90
VampirismEnchantDuration:
  SOLO: 300
  ARENA: 900

# time the fire remains from the Burn spell
BurnDuration: 300

# how many pixies are summoned for each level of the spell.  Note that in
# ARENA mode we're always use level 3 (which is currently 5 pixies)
PixieCount:
  SOLO: [2, 3, 4, 5, 6]
  ARENA: [2, 3, 4, 5, 6]

# how long it will take pixies to give up when they can't see their owner
# and get teleported back to them (In seconds)
PixieReturnTimeout: 3

# how many magic missiles are summoned for each level of the spell.  Note that
# in ARENA mode we always use level 3
MagicMissileCount:
  SOLO: [1, 2, 3, 4, 5]
  ARENA: [2, 3, 4, 5, 6]

# magic missile damage, splash damage, force, and damage/force ranges
MagicMissileDamage: 8
MagicMissileSplashDamage: 23
MagicMissileRange: 15.0
MagicMissilePushRange: 50.0
MagicMissileForce: 20.0

# force of nature damage.  The collide damage is when the ball touches a
# victim, the nearby damage is the damage it deals when grazing by victims
# (which falls off the further away from the ball the victim is which is
# dictated by the death ball in radius and out radius)
DeathBallCollideDamage:
  SOLO: 35
  ARENA: 255
DeathBallNearbyDamage:
  SOLO: 10
  ARENA: 100
DeathBallInRadius: 0.0
DeathBallOutRadius: 50.0
DeathBallCancelRange: 150.0

FireballSpeedCoeff: [1.6, 2.0, 2.4, 2.5, 2.6]

DeathRayOutRadius: 15
DeathRayInRadius: 10
DeathRayDamage:
  SOLO: 90
  ARENA: 100

FistOfVengeanceDamage: [50, 100, 200, 300, 400]
# NOTE: If you change to speed of the fist by a large amount be sure to
# update the FistUpdate() function so that it can sanity check the 
# lifetime of the fist and kill it if it gets stuck on elevators etc
FistSpeed: 10

CounterspellRange: 600

MeteorDamage: [45, 65, 85, 105, 125]
MeteorSpeed: 8

LesserHealAmount: 15

# Lifetime of toxic clouds in seconds
ToxicCloudLifetime: 15
SmallToxicCloudLifetime: 15

EarthquakeRange: 400
EarthquakeDamage: [10, 20, 30, 40, 50]
EarthquakeJiggle: [10, 20, 30, 40, 50]

ShockDamage: [15, 30, 45, 60, 75]
ShockTrapDamage: [15, 30, 45, 60, 75]

VampirismCoeff: [0.1, 0.2, 0.3, 0.4, 0.5]

# the minimum and maximum duration a zombie will remain dead
ZombieDeadDuration: [300, 600]

# Ability durations in frames ( 30 fps assumed )
BerserkerChargeDuration: 90
WarcryDuration: 120
HarpoonDuration: 0
TreadLightlyDuration: 99999
EyeOfTheWolfDuration: 300

# Ability usage delay in frames ( 30 fps assumed )
BerserkerChargeDelay: 300
WarcryDelay: 300
HarpoonDelay: 150
TreadLightlyDelay: 30
EyeOfTheWolfDelay: 600

# Harpoon Specific
# Damage done by the harpoon
HarpoonDamage: 1

# Max distance it can travel looking for target.
MaxHarpoonFlightDistance: 300

# Max number of frames the harpoon can be stuck in someone ( 30 fps assumed )
MaxHarpoonExistence: 150

# Max distance it can be with target.
MaxHarpoonDistance: 375

# Min distance when reeling in target when it lets go
MinHarpoonDistance: 20

# Force for pull
HarpoonForce: 10

# Radius to cancel tread lightly.
TreadLightlyRadiusInPixels: 230.0

# Summon times for small, medium, and large creatures
SummonDuration:
  SOLO: [60, 210, 300]
  ARENA: [60, 210, 375]

# Charm times (in frames) for creatures
CharmSmallDuration:
  SOLO: [45,  30,  15,  10,   5]
  ARENA: [45,  45,  45,  45,  45]

CharmMediumDuration:
  SOLO: [90,  75,  60,  45,  30]
  ARENA: [105, 105, 105, 105, 105]

CharmLargeDuration:
  SOLO: [120, 100,  80,  60,  45]
  ARENA: [150, 150, 150, 150, 150]

# Camper definitions : AlarmFreq is in seconds, Start & Fade time are in Frames
CamperRadiusSq: 22500
CamperStartTime: 150
CamperFadeTime: 0
CamperAlarmFreq: 1

# Flagball : maximum possession duration (in frames)
FlagballPossDuration: 300
FlagballResetVel: 0.5

# KotR definitions
KotRPawnKillsKingPoints: 1
KotRKingKillsPawnPoints: 1
KotRKingKillsKingPoints: 3

# Sudden Death definitions : SuddenDeathGracePeriod, SuddenDeathCountdown in seconds
# SuddenDeathLifeTime is the number of seconds before a fully-healthy player dies 
# from degeneration
# SuddenDeathCountdown is the number of seconds after the PlayerThreshold
# is reached that sudden death begins.
SuddenDeathCountdown: 180
SuddenDeathPlayerThreshold: 3
SuddenDeathLifeTime: 60

# damage done by Urchin's stones
UrchinStoneDamage:
  SOLO: 1
  ARENA: 15

# damage done by Imp's shots
ImpShotDamage:
  SOLO: 5
  ARENA: 5

# Number of creatures that a single monster generator can have out in 
# the world.  It is based of the selected spawn rate
GeneratorMaxActiveCreaturesHigh: 8
GeneratorMaxActiveCreaturesNormal: 5
GeneratorMaxActiveCreaturesLow: 2
GeneratorMaxActiveCreaturesSingular: 1

# This is the actual spawn rate in frames that will be used based on
# what the property of the generator was when selected in NoxEdit
# for a low/high/medium spawn rate (in frames)
SpawnRateHighValue: 60
SpawnRateNormalValue: 120
SpawnRateLowValue: 240
SpawnRateVeryLowValue: 480
SpawnRateVeryVeryLowValue: 960

# We use this in gauntlet games to limit the number of monsters any one player
# can have on their screen at any time
MaxOnscreenMonsterCount: 16

# How many lives we start with in a quest game
QuestGameStartingExtraLives: 2

# This is the starting value of the timer when a player hits the exit
QuestExitTimerStart: 720

#
# difficulty ratings, these formulas work as follows:
#
#	DifficultyIndex = Stage * (1+ (PlayerDifficultyDelta * (NumPlayers - 1)))
# Where:
#   NumPlayers = Number of players currently playing
#   Stage = The number of adventure maps completed during this game session
#   PlayerDifficultyDelta = The increase in difficulty for each additional player
#
# PlayerDamage = D0 + CD * (DifficultyIndex - 1)
# Where: 
#   D0 (Damage Initial) = 1 
#   CD (Damage Coeff) = 0.133
#
# SystemHealth = H0 + CH * (DifficultyIndex - 1)
# Where: 
#   H0 (Health Initial) = 1
#   CH (Health Coeff) = 0.166
#
# PlayerDamage refers to the multiplier on damage dealt to players
# SystemHealth refers to the HP multiplier of monsters and generators

PlayerDamageDiffInit: 0.5
PlayerDamageDiffCoeff: 0.3
PlayerDifficultyDelta: 0.08

SystemHealthDiffInit: 0.15
SystemHealthDiffCoeff: 0.151

# These are the caps for the system health and player damage multipliers
SystemHealthCap: 3.25
PlayerDamageCap: 6.4

# The max extra lives you can have in a gauntlet game, this currently works 
# in a BYTE network message so if we go over 255 we must change the msg
MaxExtraLives: 9

# Durability multiplier for the health of weapons and armor in the quest game
QuestDurabilityMultiplier: 3.0

# Charge multiplier for staves in quest mode
QuestStaffChargeMultiplier: 2.0

# the maximum hit points we allow monster generators to have
GeneratorMaxHealth: 400

# Duration of vampirism in the quest games
QuestVampDurMultiplier: 3.0

# Fraction we sell for in the shop in quest games
QuestSellMultiplier: 0.3

# Default ammo amounts for quest and other game modes.  
# This also applies to shurikens
DefaultAmmoAmount: 20
DefaultAmmoAmountQuest: 100

# All spellbook prices are multiplied by this number in quest games
QuestSpellWorthMultiplier: 3.0

# All field guides prices are multiplied by this in quest games
QuestGuideWorthMultiplier: 3.0

# All modifier prices are multiplied by this in quest games
QuestModifierWorthMultiplier: 3.0

# At this stage warp gates are no longer accessible
WarpGateCutoffStage: 20

# You can not have more than this number of FON staves in your inventory in the
# Nox Quest game
ForceOfNatureStaffLimit: 3

# When AT this stage AND above, ankhs are not available in the shop
ShopAnkhCutoffStage: 20

# Starting at this stage, Hecubah and her minions will always be present
MinionsAlwaysStage: 20

# This is Hecubah's skill in the quest game
HecubahQuestSkill: 0.5

#
# Starting at this stage, all non-singular generators double their max monsters
# and spawn rates begin to increase with each stage according to
# the rate defined as QuestHardcoreSpawnRateIncrease which represents how
# many frames of delay are removed per stage for the spawn wait time.  The
# spawn rates will never decrease below the percentage specified.
#
QuestHardcoreStage: 20
QuestHardcoreSpawnRateIncrease: 3
QuestHardcoreSpawnCap: 0.05