; KeeperFX Game Rules Configuration file version 1.0.
; Note that editing .cfg files won't affect saved games - only newly started maps.

[game]
; Default amount of gold stored in Gold Pots.
PotOfGoldHolds = 250
; Default amount of gold stored in Large Gold Pots.
ChestGoldHold = 500
; Default amount of gold stored in Gold Bags.
BagGoldHold = 100
; Default amount of gold stored in Gold Piles.
GoldPileValue = 200
; Maximum amount of gold that can be accumulated in a loose Gold Pile.
GoldPileMaximum = 1024
; Maximum amount of gold stored per treasury tile.
GoldPerHoard = 2000
; Game turns before chickens expire after leaving Hatchery rooms.
FoodLifeOutOfHatchery = 500
; In the query screen, display how many creatures a player can attract through the portal. [0 = Disable, 1 = Enable]
DisplayPortalLimit = 0
; Health points removed from boulder when slapped.
BoulderReduceHealthSlap = 18
; Health points removed from boulder when it collides with walls.
BoulderReduceHealthWall = 6
; Health points removed from boulder when it hits room structures.
BoulderReduceHealthRoom = 6
; Game turns between pay days.
PayDayGap = 10000
; How fast pay day arrives as a percentage. [200 = twice as fast]
PayDaySpeed = 100
; How many game turns between the heart recovering health.
DungeonHeartHealTime = 8
; How much health the heart recovers. Negative values cause gradual decay instead.
DungeonHeartHealHealth = 4
; Game turns heroes wait at locked doors before attacking them.
HeroDoorWaitTime = 200
; Gold percentage refunded when selling rooms.
RoomSellGoldBackPercent = 50
; Gold percentage refunded when selling doors.
DoorSellValuePercent = 100
; Gold percentage refunded when selling traps.
TrapSellValuePercent = 100
; Adjust salary percentage for all creatures of its type after torturing one [100 = no change]
TorturePayday = 50
; Adjust training cost percentage for all creatures of its type after torturing one [100 = no change]
TortureTrainingCost = 100
; Adjust scavenging cost percentage for all creatures of its type after torturing one [100 = no change]
TortureScavengingCost = 100
; Allow allied players to cast Call to Arms for free on each others land. [0-1]
AlliesShareCta = 0
; Allow allied players to drop units on each others land. [0-1]
AlliesShareDrop = 0
; Allow allied players to share map vision, which is removed as soon as alliance is broken. [0-1]
AlliesShareVision = 0
; Maximum number of objects or creatures a player can hold simultaneously. [0-64]
MaxThingsInHand = 8
; Total number of creatures allowed on the map at once. [0-1022]
MapCreatureLimit = 1000
; Global ambient light strength, determines how bright unlit dungeon areas are. [0-32]
GlobalAmbientLight = 10
; Minimum value at which things get lighted, in low ambient light.
ThingMinimumIllumination = 32
; Dynamic lighting system. [0-1]
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 - Dead creatures can be resurrected multiple times with specials.
; OVERFLOW_8BIT - Creatures stats when growing past 255 would go to 0 again.
; CLAIM_ROOM_ALL_THINGS - Claiming a room makes spells/crates on it unuseable.
; RESURRECT_REMOVED - Fainted creatures can be resurrected (copied) with a special.
; NO_HAND_PURGE_ON_DEFEAT - When you die you can hold on to creatures in your hand.
; MUST_OBEY_KEEPS_NOT_DO_JOBS - Creatures refuse jobs they dislike even with 'Must Obey' enabled.
; BREAK_NEUTRAL_WALLS - In possession you can dig through neutral walls.
; ALWAYS_TUNNEL_TO_RED - Heroes will always target the red keeper.
; FULLY_HAPPY_WITH_GOLD - Any creature will be fully happy with any gold given.
; FAINTED_IMMUNE_TO_BOULDER - Boulders are destroyed when hitting fainted creatures.
; REBIRTH_KEEPS_SPELLS - Vampires keep the spells they learned after resurrection.
; STUN_FRIENDLY_UNITS - Infighting with imprisonment on will not kill your creatures.
; PASSIVE_NEUTRALS - Neutral creatures placed in prison or torture room wander out.
; NEUTRAL_TORTURE_CONVERTS - Neutral torture rooms convert creatures into neutral creatures.
PreserveClassicBugs = 

[computer]
; Computer AI will pick up diseased creatures with health at or below this percentage and place them in the Temple to be healed of disease.
DiseaseHPTemplePercentage = 100

[creatures]
; Game turns between health recovery when creatures are sleeping in their Lair. [0-255]
RecoveryFrequency = 10
; Game turns corpses remain on the map before disappearing.
BodyRemainsFor = 2000
; Creatures will not flee when within this distance of their home (lair/heart/herogate).
FleeZoneRadius = 1536
; Game turns creatures spend in flee state after being frightened.
GameTurnsInFlee = 200
; Game turns creatures spend unconscious after being knocked out. Creatures wake up when this time expires.
GameTurnsUnconscious = 2000
; Chance creatures get knocked unconscious instead of dying when defeated by a player who has imprisoning on. [0-100]
StunEvilEnemyChance = 100
; Chance heroes get knocked unconscious instead of dying when defeated by a player who has imprisoning on. [0-100]
StunGoodEnemyChance = 100
; Creature health percentage threshold below which the creature will prioritize sleeping in Lair over all other activities, ignoring Call to Arms. But doesn't affect fleeing from ongoing fights. [0-100]
CriticalHealthPercentage = 13

[magic]
; Game turns creatures remain around Dungeon Heart during Hold Audience spell effect.
HoldAudienceTime = 500
; Game turns between teleporting your creatures during Armageddon spell.
ArmageddonTeleportYourTimeGap = 5
; Game turns between teleporting enemy creatures during Armageddon spell.
ArmageddonTeleportEnemyTimeGap = 10
; Whether neutral creatures are affected by Armageddon teleportation. [0-1]
ArmageddonTeleportNeutrals = 0
; Warning game turns before Armageddon spell begins teleporting creatures.
ArmageddonCountDown = 500
; Total game turns duration of the Armageddon spell effect.
ArmageddonDuration = 4000
; Percentage chance disease spreads from infected to nearby healthy creatures per check. [0-100]
DiseaseTransferPercentage = 15
; Health percentage lost each time disease damages infected creatures.
DiseaseLosePercentageHealth = 8
; Game turns between health loss from disease. [1-255]
DiseaseLoseHealthTime = 250
; A creature will only use their teleportation spell if the distance is further than this value.
MinDistanceForTeleport = 20
; Health damage dealt each time Cave-In spell damages creatures.
CollapseDungeonDamage = 15
; Game turns between Cave-In spell damage to creatures.
TurnsPerCollapseDungeonDamage = 4
; Area of Effect spells only use this percentage of their original area when checking to see if an allied creature is hit. Applies to both Creature Spells and Keeper Powers. [0-100]
FriendlyFightAreaRangePercent = 33
; When allied creatures are hit by an Area of Effect spell, only deal this percentage of their original damage. Applies to both Creature Spells and Keeper Powers. [0-100]
FriendlyFightAreaDamagePercent = 33
; Maximum creature weight that can be pushed around by wind and shots. For example, when set to 600 a creature with 300 weight will only get blown half as far as normal. [0 = no maximum]
WeightCalculatePush = 0
; Allows magic spells to instantly charge to maximum power when holding Left Shift. Redefine Speed key in Main Menu->Options->Define Keys->Speed. [0-1]
AllowInstantChargeUp = 0

[rooms]
; Game turns between payouts to creatures in Scavenger 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.
TempleScavengeProtectionTime = 1000
; Game turns between payouts to creatures in Training Rooms.
TrainCostFrequency = 64
; Max level the training room can be used to train to. [0 = No limit]
TrainingRoomMaxLevel = 0
; Default speed of Training
TrainEfficiency = 256
; Default speed of Workshop
WorkEfficiency = 256
; Default speed of Research
ResearchEfficiency = 256
; Default speed of Scavenging
ScavengeEfficiency = 256
; Percentage chance a creature will suddenly die when their resistance breaks during torture, otherwise they convert or reveal map info. [0-100]
TortureDeathChance = 0
; Percentage chance a creature will convert to your side when their resistance breaks during torture, otherwise they reveal map info. [0-100]
TortureConvertChance = 33
; If Prison is adjacent to an enemy slab, number of game turns between prisoner escape attempts.
TimeBetweenPrisonBreak = 400
; How long a creature must first continously sit in jail before prison break even becomes possible.
TimeSpentInPrisonWithoutBreak = 2400
; Percentage chance per creature to escape from prison when conditions are met (timing + prison adjacent to enemy slab). [0-100]
PrisonBreakChance = 50
; Percentage chance a creature will become a Ghost if they die during torture, otherwise they become a corpse. [0-100]
GhostConvertChance = 100
; If SET_GENERATE_SPEED is not set in script, then use this default value.
DefaultGenerateSpeed = 350
; If MAX_CREATURES is not set in script, then use this default value.
DefaultMaxCreaturesGenerateEntrance = 200
; Game turns creatures spend organizing in Barracks before forming groups.
BarrackTime = 100
; Maximum number of creatures that can form a single group in the Barracks. [0-30]
BarrackMaxPartySize = 8
; Game turns required to grow and produce one chicken in the Hatchery.
FoodGenerationSpeed = 2000
; Percentage chance a prisoner who starves in prison will become a Skeleton. [0-100]
PrisonSkeletonChance = 100
; Number of corpses required in Graveyard to create one Vampire. [0-255]
BodiesForVampire = 10
; Game turns required for Graveyard to convert accumulated corpses into Vampire.
GraveyardConvertTime = 300

[workers]
; Health points per room slab. Determines maximum room health (hits_per_slab * slabs) which imps must deplete to claim the entire room.
HitsPerSlab = 2
; Damage imps deal per hit when digging enemy/neutral slabs.
DefaultImpDigDamage = 1
; Damage imps deal per hit when digging their own player's slabs.
DefaultImpDigOwnDamage = 2
; Experience imps gain from working. In XP per completed job. Try 100 for a slow but noticeable gain.
ImpWorkExperience = 0
; Allow imps to automatically drag unconscious friendly creatures to Lairs. [0=Disabled, 1=Drag only creatures which have Lairs, 2=Drag all creatures]
DragUnconsciousToLair = 0

[health]
; Health points lost each time a hungry creature takes starvation damage.
HungerHealthLoss = 50
; Frequency of starvation damage, game turns between each health loss when hungry.
GameTurnsPerHungerHealthLoss = 400
; Health points restored each time a creature eats food.
FoodHealthGain = 50
; Health points lost each time a creature takes torture damage.
TortureHealthLoss = 50
; Frequency of torture damage, game turns between each health loss during torture.
GameTurnsPerTortureHealthLoss = 400

[research]
; Research order, type, kind and points needed for every research.
; Possible types are: 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_TUNNELLER          3500
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 = MAGIC POWER_VISION            10000
Research = ROOM  BARRACKS                12000
Research = MAGIC POWER_FLIGHT            10000
Research = MAGIC POWER_HOLD_AUDIENCE     11000
Research = ROOM  PRISON                  20000
Research = MAGIC POWER_SLOW              11000
Research = MAGIC POWER_CAVE_IN           25000
Research = ROOM  TORTURE                 20000
Research = MAGIC POWER_FREEZE            13000
Research = MAGIC POWER_HEAL_CREATURE     14000
Research = MAGIC POWER_TIME_BOMB         18000
Research = ROOM  TEMPLE                  25000
Research = MAGIC POWER_LIGHTNING         15000
Research = ROOM  GRAVEYARD               25000
Research = MAGIC POWER_PROTECT           15000
Research = MAGIC POWER_REBOUND           17000
Research = ROOM  SCAVENGER               27500
Research = MAGIC POWER_CHICKEN           20000
Research = MAGIC POWER_DISEASE           20000
Research = MAGIC POWER_ARMAGEDDON       100000
Research = MAGIC POWER_DESTROY_WALLS    750000

[sacrifices]
; Sacrifice recipes. First the result, then followed by up to six ingredients. To disable a sacrifice, put a ";" before it - this will turn it into comment. Be careful to avoid conflicts.
; 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
; Available reward types: MkCreature, MkGoodHero, NegSpellAll, PosSpellAll, NegUniqFunc, PosUniqFunc.
; Unique functions for PosUniqFunc/NegUniqFunc: ALL_CREATRS_ANGRY, ALL_CREATRS_HAPPY, ALL_CREATRS_VER_ANGRY, COMPLETE_RESEARCH, COMPLETE_MANUFACTR, KILL_ALL_CHICKENS, CHEAPER_IMPS, COSTLIER_IMPS.
; Creatures for MkCreature/MkGoodHero: refer to creature.cfg for the full list. MkCreature creates creature that belong to their own side, while creature created by MkGoodHero belong to the Good/Hero side.
; Spells for PosSpellAll/NegSpellAll: refer to magic.cfg for the full list. The spell effects of PosSpellAll and NegSpellAll are the same, with the only difference being the sound.
