; KeeperFX Creature Kind Configuration file version 1.0.
; Note that most of the creature parameters are affected by creature level.
; For every level above 1, they are raised by 35%.

[attributes]
; Name is the creature identifier which should be used in level script.
; Note that this file name must match the name here.
Name = IMP
; Language-specific name of the creature, as index in translation strings file.
NameTextID = 259
; Base health a creature has at level 1. The minimum is 1, and the recommended maximum is 100000, though exceeding this is possible.
Health = 75
; When a creature health falls below requirement, the creature refuse work and go to sleep.
; In battle, it will priorize using the Heal spell when available.
; Also a computer player will pick the creature and place it in lair.
; This works for autonomous computer players and for assistance players.
; The value is scaled 0..255, where 0 means never heal and 255 means heal even if small fraction of health was lost.
; Should be larger than CriticalHealthPercentage in rules.cfg.
HealRequirement = 20
; When a creature health falls below threshold, it means he could use healing.
; If an idle creature has Heal spell available, it will try to use it when below the treshold.
; Creatures sleeping to heal up, will stop sleeping when they go above the treshold.
; The value is scaled 0..255, like HealRequirement. HealThreshold needs to be larger or equal than HealRequirement.
HealThreshold = 200
; Strength is equal to the amount of melee combat damage a creature makes.
Strength = 5
; Percentage of damage points absorbed by creature armour.
; Scaled 0..200, where 0 is no absorption and 200 is 80% absorption.
; Value of armour is increased by 25% by the protect spell.
; It does not increase with experience, and can never exceed 80%.
Armour = 5
; Dexterity influences the odds for successful attack. It is scaled 0..255.
; If it is higher than attacked creature defence, then odds are higher than 50%.
; Every 26 points of difference between shooter dexterity and victim defence gives ~10% to the odds.
; Also, odds can never get higher than 88% or lower than 12%.
Dexterity = 60
; Wounded fear set to 101 will make creature escape from any combat other than protecting heart, or a combat with single creature of the same kind.
; This special value works the same way regardless of creature tendencies.
; Smaller value will make the creature escape if it has less than given percentage of health left.
; 0: never escape, 100: escape even if no health is lost.
FearWounded = 101
; Fear of stronger creatures - how many times the enemy has to be stronger in order for the creature to escape.
; Value of 100 will make the creature fear an enemy with same strength,
; 200 will make it fear enemies which are twice as strong, etc.
; It uses melee damage, calculated based on strength, luck and creature level.
; The proper range of this value is 100..30000 %. Allows 0 to disable it.
FearStronger = 800
; FearStronger values are based on Melee damage and Health, so spells and abilities are ignored.
; To compensate, units with good skills get a bonus factor. 
; Both fear and intimidation are multiplied by FearsomeFactor before they are used.
; A value of 100 leaves it unchanged, 200 will make it appear twice as strong, etc.
; The proper range of this value is 10..10000 %.
FearsomeFactor = 100
; Defence influences the odds for blocking an enemy attack. It is scaled 0..255.
; It is used to counter dexterity. Details are provided in the dexterity explanation above.
Defence = 7
; Luck is the chance of inflicting double damage or getting half damage from hit.
; It is ranged 0..100, and it's constant - doesn't change with experience level.
Luck = 0
; Amount of health points regenerated every RecoveryFrequency turns when sleeping in lair.
; Note that the amount is scaled with creature level - so always the same part of creature health is regenerated.
; Default value of RecoveryFrequency is 10 turns.
Recovery = 0
; Amount of health points regenerated every RecoveryFrequency turns when Toking.
; It is what creatures do without HealRequirement or LairSize, so Imps.
TokingRecovery = 10
; Amount of game turns before the creature gets hungry and needs to eat at the Hatchery.
HungerRate = 0
; Amount of food the creature must eat to stop being hungry and leave the Hatchery.
HungerFill = 0
; Defines how much capacity the lair totem of the creature will take on the lair.
LairSize = 0
; Amount of damage points inflicted (every game turns) when a creature walks on lava slabs.
; Setting this to 0 will make the creature immune to lava.
HurtByLava = 2
; Defines the movement speed of the creature, range is 0..255.
BaseSpeed = 96
; Defines the maximum gold the creature can hold at a time.
GoldHold = 500
; Creature clipbox size - XY and Z.
Size = 200 256
; Defines how the creature will fight. MELEE: close combat - RANGED: at distance.
AttackPreference = MELEE
; Amount of gold the creature takes at payday.
Pay = 0
; Amount of slap required to kill the creature at full health. Affected by Armour.
SlapsToKill = 20
; Amount of health substracted to the Boulder when it hits the creature.
DamageToBoulder = 30
; Creature thing size - XY and Z, one cube is 256x256.
ThingSize = 240 400
; The object the creature will create to use as a lair. Object needs to be configured correctly in objects.cfg too.
LairObject = LAIR_IMP
; Defines the kind of creature it will become if it dies of starvation while imprisoned.
; Setting this to NULL will check if the creature has the 'HUMANOID_SKELETON' property and will default to the room creature creation specified in terrain.cfg.
PrisonKind = NULL
; Defines the kind of creature it will become if it dies from torture.
; The same rule applies as above, except it does not consider the 'HUMANOID_SKELETON' property.
TortureKind = NULL
; The creature engages in combat with any defined creatures it encounters, regardless of alliance or ownership. Accepts ANY_CREATURE.
HostileTowards = NULL
; Creature immunities. Takes 'SpellFlags', see magic.cfg for the names or numbers.
; Special cases:
; LIGHT - Prevents 'LIGHT', but does not stop 'ILLUMINATED' from working.
; POISON_CLOUD - Prevents damages/status from effects with 'AreaAffectType' set to 1/2/3.
; MAD_KILLING - Prevents 'MAD_KILLING', but does not stop 'MAD_PSYCHO' anger job.
; FEAR - Prevents 'FEAR', but does not stop fleeing/real fear.
; WIND - Prevents the creature from being blown away from shots with 'UpdateLogic' set to 2.
; Set to 0, leave empty, or remove the field for the creature to have no immunities.
SpellImmunity = 0
; Creature properties:
;   BLEEDS - the creature leaves blood when is hit, slapped, dying or being injured in any way.
;   HUMANOID_SKELETON - the creature leaves a skeleton if left in prison to die.
;   PISS_ON_DEAD - creature feels urge to piss on nearby dead bodies.
;   FLYING - creature normally isn't touching ground when moving and can move up and down.
;   SEE_INVISIBLE - creature has natural ability which works like Sight spell.
;   PASS_LOCKED_DOORS - creature can move through locked doors and won't fight with doors.
;   SPECIAL_DIGGER - creature is different from 'real' creatures can dig and perform other dungeon tasks. Like an Imp.
;   DIGGING_CREATURE - creature is a 'real' creature but can also dig and perform other dungeon task. Like a Tunneller.
;   ARACHNID - creature is kind of spider.
;   DIPTERA - creature is kind of fly.
;   LORD - creature is lord of the land, usually arrives to level as final boss, and at arrival you can hear "beware, the lord of the land approaches".
;   EVENTFUL_DEATH - when the creature dies the LAST_DEATH_EVENT[] script variable is updated, so mapmaker can use the location.
;   SPECTATOR - creature is just a spectator for multiplayer games.
;   EVIL - creature has evil nature.
;   IMMUNE_TO_BOULDER - when boulder trap hits the creature, falls apart without dealing any damage.
;   NO_CORPSE_ROTTING - Creature body can't be taken to rot on graveyard and will disappear quickly.
;   NO_ENMHEART_ATTCK - Creature won't attack enemy dungeon heart on sight.
;   TREMBLING - Creature is so heavy that ground trembles when it falls.
;   FAT - Creature is so fat that he needs a brief rest during his movement animation.
;   FEMALE - Creature is a female, does female sounds and has female name.
;   INSECT - Creature is an insect (note that DIPTERA and ARACHNID creatures should also have INSECT set explicitly).
;   ONE_OF_KIND - Creature name is set to kind name defined by 'NameTextID'.
;   NO_IMPRISONMENT - Creature cannot be stunned for prison.
;   NO_RESURRECT - Creature cannot be resurrected with a resurrect creature special.
;   NO_TRANSFER - Creature cannot be transferred with a transfer creature special.
;   NO_STEAL_HERO - Creature cannot be stolen from a steal hero special.
;   PREFER_STEAL - Creature can be generated from steal hero special if there is nothing to steal from.
;   ILLUMINATED - A bright light will shine from the Creature.
;   ALLURING_SCVNGR - When scavenging will give the keeper a portal boost compared to rival keepers.
Properties = BLEEDS SPECIAL_DIGGER EVIL NO_ENMHEART_ATTCK NO_CORPSE_ROTTING

[attraction]
; Rooms required to attract the creature from entrance, and number of slabs which is needed (max 3 rooms).
; Order of the rooms here affects chances of attraction - if the room in first slot is large, it greatly increases attraction chance.
; If 2nd slot room is large, it adds half the attraction points the first slot would.
; Third slot gives 1/3 points. Sometimes you may want to leave first slot empty to make attraction more stable.
EntranceRoom = NULL NULL NULL
; Amount of slabs required of each room defined above, follow the same order.
RoomSlabsRequired = 0 0 0
; Base chance of attraction. This value, added to room attractiveness and divided by sum of scores for all creatures,
; determines the chance of the creature of this kind being attracted from entrance pool.
; Standard value is 10, range is 0..1000.
BaseEntranceScore = 2
; Determines the amount of scavenge points required for a first lv1 creature of this kind to be scavenged.
; The amount of points required to scavenge next creature is a multiplication of this value.
ScavengeRequirement = 0
; Amount of game turns after which the creature reacts to torture, by either revealing information or converting to enemy.
TortureTime = 50

[annoyance]
; How many anger points are generated while doing various tasks. Use negative value to reduce annoyance.
; Whenever the creature eats.
EatFood = 0
; Whenever the creature is dropped on a room if the job is defined in 'NotDoJobs'.
WillNotDoJob = 0
; Whenever the creature is picked up by hand, apply every game turns while in hand.
InHand = 0
; Whenever the creature doesn't have access to a Lair and wants to rest.
NoLair = 0
; Whenever the creature doesn't have access to a Hatchery and wants to eat.
NoHatchery = 0
; Whenever the creature is awakened by a fight, picked up by hand, or slapped.
WokenUp = 0
; Whenever the creature stand/walk on a dead enemy body, apply every game turns while on the dead enemy body. Usually negative.
StandingOnDeadEnemy = 0
; Whenever the creature starts to get annoyed, apply every game turns.
Sulking = 0
; Whenever the creature is not paid during payday, either with no access to a Treasure Room or not enough gold.
NoSalary = 0
; Whenever the creature is slapped.
Slapped = 0
; Whenever the creature stand/walk on a dead friend body, apply every game turns while on the dead friend body.
StandingOnDeadFriend = 0
; Whenever the creature is tortured, apply every game turns.
InTorture = 0
; Whenever the creature prays at temple, apply every game turns. Usually negative.
InTemple = 0
; Whenever the creature sleeps at their lair, apply every game turns. Usually negative.
Sleeping = 0
; Whenever the creature gets paid. Usually negative.
GotWage = 0
; Whenever the creature wins a battle. Usually negative.
WinBattle = 0
; Amount of game turns required before the creature gets annoyed if not trained.
; Example: 20 100, every 20 game turns, give 100 anger points.
Untrained = 0 0
; Whenever the creature sees others exiting through the entrance.
OthersLeaving = 0
; Annoyance caused by performing stressful jobs defined in 'StressfulJobs', apply every game turns.
; Value of 0 will disable annoyance by stressful job.
JobStress = 0
; Annoyance caused by going postal during a primary job.
; Creature goes postal if other creatures, which wouldn't normally select that job, have been assigned to do it.
; In that case, the target is attacked and forced to evacuate, and attacker working in the room gains annoyance.
; Value of 0 will cause the creature never go postal.
GoingPostal = 0
; Whenever the creature has to wait before performing a job it wants to do (the room is full) or to eat.
Queue = 0
; The creature engages in combat when it encounters the defined creature in a lair.
; Will avoid sharing lairs if possible. Up to 5 creature types. Accepts ANY_CREATURE.
LairEnemy = NULL
; Amount of annoyance which makes the creature angry. 0 will make creature never get angry, range is 0..32767.
AnnoyLevel = 0
; Defines what the creature will do when they are fully annoyed. It's possible to define multiples.
;   KILL_CREATURES - Creature will attempt to kill others creatures.
;   DESTROY_ROOMS - Creature will destroy your rooms.
;   LEAVE_DUNGEON - Creature will exit the dungeon through the entrance.
;   STEAL_GOLD - Creature will steal your gold, the maximum amount is defined with 'GoldHold' parameter.
;   DAMAGE_WALLS - Creature will destroy your walls.
;   MAD_PSYCHO - Creature goes into a frenzy and will attack on sight, creature cannot become happy again.
;   PERSUADE - Creature will annoy other, increasing their anger points.
;   JOIN_ENEMY - Creature may join the enemy keeper if they can reach their dungeon.
; Leave it empty if you don't want the creature to do anything when they are angry.
AngerJobs =

[senses]
; Hearing distance of a creature, in subtiles.
Hearing = 5
; Determines the position of the eye, useful for possession view.
EyeHeight = 256
; Determines the angle from which the creature can see. Every 256 is 45 degrees, range is 0..2047.
FieldOfView = 1024
; Eye lens used to show possession view, see lenses.cfg for details.
EyeEffect = NULL
; Speed of turning around.
; Determines how many degrees a creature can rotate itself on a single game turn, range is 1..180 degrees.
MaxAngleChange = 25

[appearance]
; Determines the 'Ambulate' animation speed.
WalkingAnimSpeed = 96
; Walking animation speed is normally modified by creature movement speed. Set it to 1 to use the fixed value.
FixedAnimSpeed = 0
; Pitch used when making footstep sounds.
FootstepPitch = 100
; Determines how far the creature can see, in subtiles.
VisualRange = 5
; This index refers to the different half-transparent swipe animations that appear during melee combat in a possession context.
; Each number corresponds to a specific type of swipe:
; 1: Bare Hand: Single short swipe like the Imp has.
; 2: Sword: Longer simple swipe.
; 3: Scythe: The signature swipe of Horny.
; 4: Horizontal Stick: Long swipe from side to side.
; 5: Vertical Stick: Long swipe from top to bottom.
; 6: Claw: A set of three forming a claw.
; 7: Teeth: A biting animation with sharp teeth.
PossessSwipeIndex = 1
; The way of dying if there are no special circumstances to select another death kind.
; NORMAL - FLESHEXPLODE - GASFLESHEXPLODE - SMOKEEXPLODE - ICEEXPLODE.
NaturalDeathKind = NORMAL
; Place where a shot fired by the creature originates, relative to creature position.
ShotOrigin = 0 0 256
; Effect or EffectElement(on negative numbers) which replaces the creature corpse when it disappears.
CorpseVanishEffect = -63
; Position of the 'PowerGrab' sprite relative to the hand sprite when picked up.
PickUpOffset = -2 46
; Position of the status sprites showing creature mood or activity.
StatusOffset = 128
; Makes creature transparant in different ways. Range: 0~3, where 3 is both 1 and 2 together.
TransparencyFlags = 0

[experience]
; Creature spells (instance names), and the creature level at which they're given (max 10).
; Instances are defined in creature.cfg - an instance may fire a shot, cast spell or do other action.
Powers = FIRST_PERSON_DIG SWING_WEAPON_SWORD SPEED NULL NULL NULL NULL NULL NULL TELEPORT
; Level at which an instance defined above is learned.
PowersLevelRequired = 1 1 3 0 0 0 0 0 0 10
; Training values required to reach higher creature levels.
LevelsTrainValues = 2500 3500 5000 6500 8500 10500 13000 16000 20000
; Growing beyond max level - training value, new creature kind and its level. Example: 20000 FLY 5.
; Accepts ANY_CREATURE for random but evil will stay evil and good will stay good. Set level to 0 to randomise it.
GrowUp = 0 NULL 0
; Gaining experience from sleeping - slab required near lair and amount of experience.
; It is enough if one slab of given type exists anywhere next to the room slab, and all creatures inside get the bonus.
; The formula is 256 for 1 experience point every game turns while sleeping. See terrain.cfg for a list of slab names.
SleepExperience = HARD 0
; Sets the multiplier for BaseExperienceGain defined in magic.cfg for shots. This value is applied for other creatures when they attack this creature kind.
ExperienceForHitting = 1
; Level at which the creature gains the ability to resurrect, at one lower xp level.
; Setting this parameter to 1 makes the creature "immortal" as long as it has a lair. 0 disable this ability.
Rebirth = 0

[jobs]
; The jobs a creature selects for itself if given a choice. See creature.cfg for a list of job names.
; 'PrimaryJobs', 'SecondaryJobs', 'NotDoJobs', 'StressfulJobs', can all have more than one job defined.
PrimaryJobs = DIG
; The creature selects primary job, unless there is no way to perform such job - in that case, it takes secondary job.
SecondaryJobs =
; Jobs which a creature won't do, even if assigned, unless 'Must Obey' power is active.
NotDoJobs =
; Jobs which a creature can do, but doesn't really like.
; Doing these jobs makes the creature irritated, increasing its anger points every game turns, amount defined with 'JobStress'.
StressfulJobs =
; Amount of experience points produced by the creature while training. 0 make the creature unable to train.
TrainingValue = 1
; Amount of gold required to train, default frequency is 64 game turns - defined in rules.cfg.
TrainingCost = 10
; Amount of scavenge points produced by the creature while scavenging. 0 make the creature unable to scavenge.
ScavengeValue = 0
; Amount of gold required to scavenge, default frequency is 64 game turns - defined in rules.cfg.
ScavengerCost = 0
; Amount of research points produced by the creature while researching. 0 make the creature unable to research.
ResearchValue = 0
; Amount of manufacture points produced by the creature while manufacturing. 0 make the creature unable to manufacture.
ManufactureValue = 0
; Chance of selecting training with another creature instead of training with just the mechanical training post. 0..100%.
PartnerTraining = 0

[sprites]
; The following are indices of graphics sprites used to draw the creature.
; Graphics sprites are animations made from images, shown while performing various tasks.
; Linked to from 'Graphics' field of instances in creature.cfg. Numbers from sprites-32.
; The animation used for standing still.
Stand = 556
; The animation used for walking.
Ambulate = 554
; The animation used for dragging an object, only used by workers.
Drag = 566
; The animation used for melee attacks.
Attack = 558
; The animation used for ranged attacks.
RangedAttack = 558
; The animation used for instant casts like self buffs.
CastSpell = 558
; The animation used for digging and tunneling.
Dig = 558
; Imps can smoke to heal up, other units do not. It uses the 'Smoke' and 'Relax' animations.
Smoke = 568
; The animation used for relaxing.
Relax = 562
; The animation used for claiming floors and rooms, reinforcing walls.
PrettyDance = 564
; The animation used for when the creature gets hit.
GotHit = 560
; The animation used for dangling in the Hand of Evil.
PowerGrab = 574
; Reaction to being slapped. Some creatures have animations.
GotSlapped = 576
; Reaction upon researching a new spell/room, manufacturing a door/trap, gaining a level or receiving gold.
Celebrate = 564
; The animation used for when the creature sleeps in its lair.
Sleep = 556
; The animation used for when the creature eats.
EatChicken = 556
; The animation used for being tortured. 48 is generic.
Torture = 56
; The animation used for moaning, when assigned to a job it cannot do or in prison.
Scream = 570
; The animation used for dying/unconscious. Last frame is the dead body.
DropDead = 572
; Gib animation (from meteor/freeze). All creatures use 946.
DeadSplat = 946
; The animation used for when the creature is going mad psycho.
Roar = 568
; Creature portrait. So an image, not a sprite/animation. Numbers from gui1.
QuerySymbol = 154
; Creature icon. So an image, not a sprite/animation. Numbers from gui2.
HandSymbol = 222
; The animation used for when the creature is pissing on corpses.
Piss = 562
; For use with instances with animation set to 'CUSTOM'.
Custom = 570

[sounds]
; The first value is the index and the second value is the count.
; The sound used for footsteps.
Foot = 9 4
; The sound used for hitting.
Hit = 490 3
; The sound used for celebrating.
Happy = 488 1
; The sound used for moaning.
Sad = 489 1
; The sound used for getting hurt.
Hurt = 490 3
; The sound used for dying.
Die = 493 2
; The sound used for being grabbed by the hand.
Hang = 495 1
; The sound used for being dropped by the hand.
Drop = 496 1
; The sound used for being tortured.
Torture = 497 3
; The sound used for being slapped.
Slap = 490 3
; The sound used for fighting.
Fight = 485 3
; The sound used for pissing.
Piss = 171 1
