; KeeperFX Game Rules Configuration file version 1.0.
; Note that changing .cfg files will NOT affect saved games - only newly started maps.

[game]
; Amount of gold stored in undigged vein slab.
GoldPerGoldBlock = 1024
; Amount of gold stored in pots at start of level.
PotOfGoldHolds = 250
; Amount of gold stored in chests at start of level.
ChestGoldHold = 500
; Amount of gold stored in bags at start of level.
BagGoldHold = 100
; Amount of gold stored in piles at start of level.
GoldPileValue = 200
; Max gold per pile
GoldPileMaximum = 1024
; Max amount of gold stored in gold hoard in treasury.
GoldPerHoard = 2000
FoodLifeOutOfHatchery = 500
; Shows how many creatures the player can attract through the portal in query screen. 0: disable - 1: enable.
DisplayPortalLimit = 0
DoubleClickSpeed = 6
BoulderReduceHealthSlap = 18
BoulderReduceHealthWall = 6
BoulderReduceHealthRoom = 6
; Gold mining speed from gems, in percentage compared to mining gold blocks.
GemEffectiveness = 17
; Game turns between pay days.
PayDayGap = 10000
; How fast pay day comes percentage.
PayDaySpeed = 100
SlabCollapseTime = 100
; How many game turns between the heart recovering health.
DungeonHeartHealTime = 8
; How much health the heart recovers. Or loses when negative.
DungeonHeartHealHealth = 4
HeroDoorWaitTime = 200
RoomSellGoldBackPercent = 50
DoorSellValuePercent = 100
TrapSellValuePercent = 100
; Traps can be placed on subtiles, allowing you to place up to 9 traps per tiles, enable with 1 or disable with 0.
PlaceTrapsOnSubtiles = 0
; Torturing a creature changes the salary for its kind, value is a percentage, 100 for no change.
TorturePayday = 50
; Torturing a creature changes the cost of training for its kind, value is a percentage, 100 for no change.
TortureTrainingCost = 100
; Torturing a creature changes the cost of scavenging for its kind, value is a percentage, 100 for no change.
TortureScavengingCost = 100
; Allied players cast Call to Arms for free on each others land.
AlliesShareCta = 0
; Allied players can drop units on each others land.
AlliesShareDrop = 0
; Allied players share map vision, which is removed as soon as alliance is broken.
AlliesShareVision = 0
MaxThingsInHand = 8
; Global light strength and dynamic lighting (32 is full bright).
GlobalAmbientLight = 10
LightEnabled = 1
; Easter Egg Game Speech Frequency. Chance is 1 in <x>. Interval is turns between rolls.
EasterEggSpeechChance = 2000
EasterEggSpeechInterval = 20000
; Possible Classic Bugs: RESURRECT_FOREVER OVERFLOW_8BIT CLAIM_ROOM_ALL_THINGS RESURRECT_REMOVED NO_HAND_PURGE_ON_DEFEAT MUST_OBEY_KEEPS_NOT_DO_JOBS BREAK_NEUTRAL_WALLS ALWAYS_TUNNEL_TO_RED FULLY_HAPPY_WITH_GOLD FAINTED_IMMUNE_TO_BOULDER REBIRTH_KEEPS_SPELLS STUN_FRIENDLY_UNITS PASSIVE_NEUTRALS NEUTRAL_TORTURE_CONVERTS
PreserveClassicBugs = 

[computer]
; Maximum health percentage when creatures are considered to be put to temple to cure of disease.
DiseaseHPTemplePercentage = 100

[creatures]
RecoveryFrequency = 10
FightMaxHate = 200
FightBorderline = 0
FightMaxLove = -200
BodyRemainsFor = 2000
FightHateKillValue = -2
FleeZoneRadius = 1536
GameTurnsInFlee = 200
GameTurnsUnconscious = 2000
; Chance enemy creature gets stunned for prison, when possible, 0~100.
StunEvilEnemyChance = 100
; Chance enemy hero gets stunned for prison, when possible, 0~100.
StunGoodEnemyChance = 100
; Amount of health below which the creature ignores its other needs, except hunger and immediately goes to lair to heal itself, 0~99.
CriticalHealthPercentage = 13

[magic]
HoldAudienceTime = 500
ArmageddonTeleportYourTimeGap = 5
ArmageddonTeleportEnemyTimeGap = 10
ArmageddonTeleportNeutrals = 0
ArmageddonCountDown = 500
ArmageddonDuration = 4000
DiseaseTransferPercentage = 15
DiseaseLosePercentageHealth = 8
; Turns between health drop due to disease, 1~255.
DiseaseLoseHealthTime = 250
MinDistanceForTeleport = 20
CollapseDungeonDamage = 15
TurnsPerCollapseDungeonDamage = 4
; Percentage of spell area effect range used when inflicting friendly fire.
; This only affects values of AreaDamage, standard damage is not modified by it.
; Recommended value is 0~100, where 100 is the value which makes friendly and enemy fire equal.
FriendlyFightAreaRangePercent = 33
; Percentage of area effect damage inflicted when friendly creatures are attacked.
; This only affects values of AreaDamage, standard damage is not modified by it.
; Recommended value is 0~100, where 100 is the value which makes friendly and enemy fire equal.
FriendlyFightAreaDamagePercent = 33
; Maximum weight that can be pushed around by wind and shots. 0 no maximum.
; Set it to 600 and a creature with 300 weight will only get blown half as far as normal.
WeightCalculatePush = 0

[rooms]
ScavengeCostFrequency = 64
; Whether creatures on level which belong to good player can be scavenged, 0/1.
ScavengeGoodAllowed = 1
; Whether creatures on level which belong to neutral player can be scavenged, 0/1.
ScavengeNeutralAllowed = 1
; Amount of game turns a creature which was praying is protected from enemy scavenging after leaving the temple, 0~10000000.
TempleScavengeProtectionTime = 1000
TrainCostFrequency = 64
; Max level the training room can be used to train to. Set to 0 for no limit.
TrainingRoomMaxLevel = 0
; When the enemy has been broken during torture, it might die right away and the unit will turn into a ghost or a corpse.
; This defines the probability of death, 0~100.
TortureDeathChance = 0
; When the broken enemy does not die from torture, it can either reveal information or change its ownership.
; This defines the probability of converting and ending the torture, 0~100.
TortureConvertChance = 33
; Escape from prison is possible if it is next to an enemy slab.
; This defines the amount of game turns between a chance for breaking from jail 1~10000000.
TimeBetweenPrisonBreak = 400
; How long a creature must continously sit in jail to start getting break chances.
TimeSpentInPrisonWithoutBreak = 2400
; The chance of breaking from a prison, if all conditions towards the break are met.
PrisonBreakChance = 50
; Chance of a dying torture victim becoming undead, 0~100.
GhostConvertChance = 100
; For when the entrance generation speed is not set on map script, takes this value.
DefaultGenerateSpeed = 350
; For when max creature is not set on map script, takes this value.
DefaultMaxCreaturesGenerateEntrance = 200
BarrackTime = 100
BarrackMaxPartySize = 8
FoodGenerationSpeed = 2000
; Prisoner becoming skeleton chance, 0~100.
PrisonSkeletonChance = 100
BodiesForVampire = 10
GraveyardConvertTime = 300

[workers]
; Amount of hit points a single slab of a room has; used to compute complete amount of hit points of a room,
; which have to be depleted for the room to be taken over by enemy diggers.
HitsPerSlab = 2
ImpJobNotSoClose = 4
ImpJobFarAway = 10
ImpGenerateTime = 50
ImproveArea = 31
; Damage did by Imp while digging - to its own slabs, and other slabs.
DefaultImpDigDamage = 1
DefaultImpDigOwnDamage = 2
PerImpGoldDigSize = 30
; Experience imps gain from working.
ImpWorkExperience = 0

[health]
HungerHealthLoss = 50
GameTurnsPerHungerHealthLoss = 400
FoodHealthGain = 50
PrisonHealthGain = 50
GameTurnsPerPrisonHealthGain = 400
TortureHealthLoss = 50
GameTurnsPerTortureHealthLoss = 400

[research]
; Research order - type, kind and points needed for every research.
; Kind: MAGIC, ROOM, CREATURE
Research = MAGIC POWER_HAND             250
Research = MAGIC POWER_POSSESS          500
Research = MAGIC POWER_SLAP             500
Research = MAGIC POWER_IMP             1000
Research = ROOM  TREASURE              1000
Research = ROOM  LAIR                  1000
Research = ROOM  GARDEN                1000
Research = ROOM  TRAINING              1000
Research = ROOM  RESEARCH              1000
Research = MAGIC POWER_SIGHT           3800
Research = ROOM  BRIDGE                4600
Research = MAGIC POWER_SPEED           5700
Research = MAGIC POWER_OBEY            6000
Research = ROOM  GUARD_POST            6700
Research = MAGIC POWER_CALL_TO_ARMS    7400
Research = ROOM  WORKSHOP              9000
Research = MAGIC POWER_CONCEAL         9400
Research = ROOM  BARRACKS             12000
Research = MAGIC POWER_HOLD_AUDIENCE  11000
Research = ROOM  PRISON               20000
Research = MAGIC POWER_CAVE_IN        25000
Research = ROOM  TORTURE              20000
Research = MAGIC POWER_HEAL_CREATURE  14000
Research = ROOM  TEMPLE               25000
Research = MAGIC POWER_LIGHTNING      15000
Research = ROOM  GRAVEYARD            25000
Research = MAGIC POWER_PROTECT        15000
Research = ROOM  SCAVENGER            27500
Research = MAGIC POWER_CHICKEN        20000
Research = MAGIC POWER_DISEASE        20000
Research = MAGIC POWER_TIME_BOMB      25000
Research = MAGIC POWER_VISION          9000
Research = MAGIC POWER_FLIGHT         10000
Research = MAGIC POWER_SLOW           11000
Research = MAGIC POWER_REBOUND        12000
Research = MAGIC POWER_FREEZE         13000
Research = MAGIC POWER_ARMAGEDDON    100000
Research = MAGIC POWER_DESTROY_WALLS 750000

[sacrifices]
; Sacrifice recipes - Be careful, avoid conflicts!
; Possible commands are: MkCreature, MkGoodHero, NegSpellAll, PosSpellAll, NegUniqFunc, PosUniqFunc.
; First the result, then up to six ingredients. To disable a sacrifice, put a ";" before it - this will turn it into comment.
; Original Dungeon Keeper sacrifices.
MkCreature =  BILE_DEMON         SPIDER SPIDER SPIDER
MkCreature =  HORNY              TROLL BILE_DEMON DARK_MISTRESS
PosUniqFunc = COMPLETE_RESEARCH  FLY FLY
PosUniqFunc = COMPLETE_MANUFACTR BUG BUG
NegSpellAll = SPELL_DISEASE      VAMPIRE VAMPIRE
MkCreature =  SORCEROR           FLY SPIDER
MkCreature =  DARK_MISTRESS      BUG SPIDER
NegSpellAll = SPELL_CHICKEN      BILE_DEMON BILE_DEMON
PosUniqFunc = CHEAPER_IMPS       IMP
NegUniqFunc = ALL_CREATRS_ANGRY  HORNY
NegUniqFunc = KILL_ALL_CHICKENS  GHOST
; KeeperFX specific sacrifices.
MkGoodHero =  SKELETON           SKELETON SKELETON
MkCreature =  TENTACLE           TROLL SPIDER
MkCreature =  HELL_HOUND         DRAGON FLY
PosSpellAll = SPELL_SPEED        FLY HELL_HOUND
PosSpellAll = SPELL_INVISIBILITY TROLL FLY
PosSpellAll = SPELL_HEAL         ORC SPIDER
PosSpellAll = SPELL_REBOUND      DARK_MISTRESS BUG
PosSpellAll = SPELL_ARMOUR       BILE_DEMON BUG
PosSpellAll = SPELL_FLIGHT       DEMONSPAWN FLY
NegSpellAll = SPELL_FREEZE       VAMPIRE SPIDER
NegSpellAll = SPELL_SLOW         VAMPIRE DEMONSPAWN
; Extra sacrifices - disabled for some reason.
;MkGoodHero = AVATAR                   KNIGHT SAMURAI WIZARD GIANT MONK
;NegUniqFunc = COSTLIER_IMPS           TUNNELLER
;NegUniqFunc = ALL_CREATRS_VER_ANGRY   VAMPIRE HORNY
