; 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 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
BoulderReduceHealthSlap = 18
BoulderReduceHealthWall = 6
BoulderReduceHealthRoom = 6
; Game turns between pay days.
PayDayGap = 10000
; How fast pay day comes percentage.
PayDaySpeed = 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
; 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
; Total Amount of Creatures on the map. The absolute maximum is 1022.
MapCreatureLimit = 1000
; 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 - 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]
; 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
; hold down speed key to immediately charge the magic to the highest level. The speed key can be redefined in Main Menu[Options > Define keys > Speed].
; 0: disabled, 1: enabled
AllowInstantChargeUp = 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
; Default speed of Training
TrainEfficiency = 256
; Default speed of Workshop
WorkEfficiency = 256
; Default speed of Research
ResearchEfficiency = 256
; Default speed of Scavenging
ScavengeEfficiency = 256
; 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. In xp per completed job. Try 100 for a slow but noticeable gain.
ImpWorkExperience = 0
; Imps should drag own units who are knocked out back to their lair to heal
; 1 = Imps save only own unconscious creatures with a lair.
; 2 = Imps save all of your own unconscious creatures with a lair and those capable of building one.
DragUnconsciousToLair = 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_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 - 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
;PosUniqFunc = ALL_CREATRS_HAPPY       TIME_MAGE FAIRY
