; KeeperFX Creatures Configuration file
; file version 0.22, by Mefistotelis

[common]
; Creatures used - note that the order is important
; Currently YOU CANNOT ADD NEW CREATURES; you can only replace existing ones
Creatures = WIZARD BARBARIAN ARCHER MONK DWARFA KNIGHT AVATAR TUNNELLER WITCH GIANT FAIRY THIEF SAMURAI HORNY SKELETON TROLL DRAGON DEMONSPAWN FLY DARK_MISTRESS SORCEROR BILE_DEMON IMP BUG VAMPIRE SPIDER HELL_HOUND GHOST TENTACLE ORC FLOATING_SPIRIT
InstancesCount = 48
; Unused - for now
JobsCount = 16
AngerJobsCount = 10
AttackPreferencesCount = 3

[experience]
; Percentage of creature pay increase for every experience level
PayIncreaseOnExp = 35
; Percentage of creature damage increase for every experience level
DamageIncreaseOnExp = 8
; Percentage of spell range/area of effect increase for every experience level
RangeIncreaseOnExp = 6
; Percentage of creature job value increase for every experience level
JobValueIncreaseOnExp = 35
; Percentage of creature health increase for every experience level
HealthIncreaseOnExp = 35
; Percentage of creature strength increase for every experience level
StrengthIncreaseOnExp = 35
; Percentage of creature dexterity increase for every experience level
DexterityIncreaseOnExp = 15
; Percentage of creature defense increase for every experience level
DefenseIncreaseOnExp = 20
; Percentage of creature loyalty increase for every experience level
LoyaltyIncreaseOnExp = 35

[instance0]
Name = NULL
Time = 0
ActionTime = 0
; Amount of game turns before the spell can be re-used after use
ResetTime = 0
; Different times may be set for possession (First Person) mode
FPTime = 0
FPActionTime = 0
FPResetTime = 0
ForceVisibility = 0
Graphics = STAND
Function = none 0 0

[instance1]
Name = SWING_WEAPON_SWORD
Time = 8
ActionTime = 4
ResetTime = 8
FPTime = 5
FPActionTime = 2
FPResetTime = 4
ForceVisibility = 100
Graphics = ATTACK
Function = creature_fire_shot SHOT_SWING_SWORD 0

[instance2]
Name = SWING_WEAPON_FIST
Time = 8
ActionTime = 4
ResetTime = 8
FPTime = 5
FPActionTime = 2
FPResetTime = 4
ForceVisibility = 100
Graphics = ATTACK
Function = creature_fire_shot SHOT_SWING_FIST 0

[instance3]
Name = ESCAPE
Time = 0
ActionTime = 0
ResetTime = 0
FPTime = 0
FPActionTime = 0
FPResetTime = 0
ForceVisibility = 0
Graphics = ATTACK
Function = none 0 0

[instance4]
Name = FIRE_ARROW
Time = 10
ActionTime = 5
ResetTime = 16
FPTime = 5
FPActionTime = 2
FPResetTime = 8
ForceVisibility = 100
Graphics = ATTACK
Function = creature_fire_shot SHOT_ARROW 0

[instance5]
Name = FIREBALL
Time = 10
ActionTime = 6
ResetTime = 32
FPTime = 4
FPActionTime = 2
FPResetTime = 4
ForceVisibility = 150
Graphics = ATTACK
Function = creature_cast_spell SPELL_FIREBALL 0

[instance6]
Name = FIRE_BOMB
Time = 10
ActionTime = 6
ResetTime = 100
FPTime = 5
FPActionTime = 3
FPResetTime = 16
ForceVisibility = 150
Graphics = ATTACK
Function = creature_cast_spell SPELL_FIREBOMB 0

[instance7]
Name = FREEZE
Time = 10
ActionTime = 6
ResetTime = 375
FPTime = 5
FPActionTime = 3
FPResetTime = 300
ForceVisibility = 150
Graphics = ATTACK
Function = creature_cast_spell SPELL_FREEZE 0

[instance8]
Name = ARMOUR
Time = 10
ActionTime = 6
ResetTime = 400
FPTime = 5
FPActionTime = 3
FPResetTime = 250
ForceVisibility = 10
Graphics = ATTACK
Function = creature_cast_spell SPELL_ARMOUR 0

[instance9]
Name = LIGHTNING
Time = 10
ActionTime = 6
ResetTime = 16
FPTime = 5
FPActionTime = 3
FPResetTime = 8
ForceVisibility = 150
Graphics = ATTACK
Function = creature_cast_spell SPELL_LIGHTNING 0

[instance10]
Name = REBOUND
Time = 10
ActionTime = 6
ResetTime = 400
FPTime = 5
FPActionTime = 3
FPResetTime = 250
ForceVisibility = 10
Graphics = ATTACK
Function = creature_cast_spell SPELL_REBOUND 0

[instance11]
Name = HEAL
Time = 10
ActionTime = 6
ResetTime = 400
FPTime = 5
FPActionTime = 3
FPResetTime = 250
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_HEAL 0

[instance12]
Name = POISON_CLOUD
Time = 10
ActionTime = 6
ResetTime = 80
FPTime = 5
FPActionTime = 3
FPResetTime = 20
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_POISON_CLOUD 0

[instance13]
Name = INVISIBILITY
Time = 10
ActionTime = 6
ResetTime = 500
FPTime = 5
FPActionTime = 3
FPResetTime = 200
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_INVISIBILITY 0

[instance14]
Name = TELEPORT
Time = 10
ActionTime = 6
ResetTime = 6
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 10
Graphics = ATTACK
Function = creature_cast_spell SPELL_TELEPORT 0

[instance15]
Name = SPEED
Time = 10
ActionTime = 6
ResetTime = 550
FPTime = 5
FPActionTime = 3
FPResetTime = 500
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_SPEED 0

[instance16]
Name = SLOW
Time = 10
ActionTime = 6
ResetTime = 550
FPTime = 5
FPActionTime = 3
FPResetTime = 500
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_SLOW 0

[instance17]
Name = DRAIN
Time = 10
ActionTime = 6
ResetTime = 5
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_DRAIN 0

[instance18]
Name = FEAR
Time = 10
ActionTime = 6
ResetTime = 10
FPTime = 5
FPActionTime = 3
FPResetTime = 10
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_FEAR 0

[instance19]
Name = MISSILE
Time = 10
ActionTime = 6
ResetTime = 25
FPTime = 5
FPActionTime = 3
FPResetTime = 2
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_MISSILE 0

[instance20]
Name = NAVIGATING_MISSILE
Time = 10
ActionTime = 6
ResetTime = 50
FPTime = 5
FPActionTime = 3
FPResetTime = 2
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_NAVI_MISSILE 0

[instance21]
Name = FLAME_BREATH
Time = 10
ActionTime = 10
ResetTime = 8
FPTime = 5
FPActionTime = 5
FPResetTime = 4
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_FLAME_BREATH 0

[instance22]
Name = WIND
Time = 10
ActionTime = 6
ResetTime = 1600
FPTime = 5
FPActionTime = 3
FPResetTime = 800
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_WIND 0

[instance23]
Name = LIGHT
Time = 10
ActionTime = 6
ResetTime = 8
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_LIGHT 0

[instance24]
Name = FLY
Time = 10
ActionTime = 6
ResetTime = 400
FPTime = 5
FPActionTime = 3
FPResetTime = 250
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_FLIGHT 0

[instance25]
Name = SIGHT
Time = 10
ActionTime = 6
ResetTime = 200
FPTime = 5
FPActionTime = 3
FPResetTime = 150
ForceVisibility = 0
Graphics = ATTACK
Function = creature_cast_spell SPELL_SIGHT 0

[instance26]
Name = GRENADE
Time = 10
ActionTime = 6
ResetTime = 60
FPTime = 5
FPActionTime = 3
FPResetTime = 20
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_GRENADE 0

[instance27]
Name = HAILSTORM
Time = 10
ActionTime = 6
ResetTime = 32
FPTime = 5
FPActionTime = 3
FPResetTime = 20
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_HAILSTORM 0

[instance28]
Name = WORD_OF_POWER
Time = 10
ActionTime = 6
ResetTime = 400
FPTime = 5
FPActionTime = 3
FPResetTime = 250
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_WORD_OF_POWER 0

[instance29]
Name = FART
Time = 8
ActionTime = 4
ResetTime = 150
FPTime = 4
FPActionTime = 2
FPResetTime = 100
ForceVisibility = 1
Graphics = ATTACK
Function = creature_fart 0 0

[instance30]
Name = DIG
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 100
Graphics = ATTACK
Function = creature_dig 0 0

[instance31]
Name = PRETTY_PATH
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = PRETTYDANCE
Function = creature_pretty_path 0 0

[instance32]
Name = DESTROY_AREA
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = PRETTYDANCE
Function = creature_destroy 0 0

[instance33]
Name = TUNNEL
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = ATTACK
Function = creature_tunnel 0 0

[instance34]
Name = CELEBRATE_SHORT
Time = 8
ActionTime = 1
ResetTime = 1
FPTime = 4
FPActionTime = 1
FPResetTime = 1
ForceVisibility = 0
Graphics = CELEBRATE
Function = none 3 0

[instance35]
Name = REINFORCE
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = PRETTYDANCE
Function = creature_reinforce 0 0

[instance36]
Name = EAT
Time = 16
ActionTime = 8
ResetTime = 1
FPTime = 8
FPActionTime = 4
FPResetTime = 1
ForceVisibility = 0
Graphics = EATCHICKEN
Function = creature_eat 0 0

[instance37]
Name = ATTACK_ROOM_SLAB
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 1
Graphics = ATTACK
Function = attack_room_slab 0 0

[instance38]
Name = DAMAGE_WALL
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 1
Graphics = ATTACK
Function = creature_damage_wall 21 0

[instance39]
Name = FIRST_PERSON_DIG
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 1
Graphics = ATTACK
Function = first_person_do_imp_task 0 0

[instance40]
Name = CAST_SPELL_GROUP
Time = 10
ActionTime = 6
ResetTime = 6
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_GROUP 0

[instance41]
Name = CAST_SPELL_DISEASE
Time = 10
ActionTime = 6
ResetTime = 6
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_DISEASE 0

[instance42]
Name = CAST_SPELL_CHICKEN
Time = 10
ActionTime = 6
ResetTime = 6
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 1
Graphics = ATTACK
Function = creature_cast_spell SPELL_CHICKEN 0

[instance43]
Name = CAST_SPELL_TIME_BOMB
Time = 10
ActionTime = 6
ResetTime = 6
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 0
Graphics = ATTACK
Function = creature_cast_spell SPELL_TIME_BOMB 0

[instance44]
Name = MOAN
Time = 8
ActionTime = 1
ResetTime = 1
FPTime = 4
FPActionTime = 1
FPResetTime = 1
ForceVisibility = 0
Graphics = SCREAM
Function = none 4 0

[instance45]
Name = TORTURED
Time = 16
ActionTime = 8
ResetTime = 1
FPTime = 8
FPActionTime = 4
FPResetTime = 1
ForceVisibility = 0
Graphics = TORTURE
Function = creature_tortured 0 0

[instance46]
Name = TOKING
Time = 16
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = SMOKE
Function = none 0 0

[instance47]
Name = RELAXING
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = RELAX
Function = none 0 0

[job0]
Name = NULL
Functions = none

[job1]
Name = TUNNEL
Functions = none

[job2]
Name = DIG
Functions = none

[job3]
; Name of the job
Name = RESEARCH
; A room kind in which the job is being done
RelatedRoom = RESEARCH
; Initial creature state to enter when starting the job
InitialState = AtResearchRoom
; Whether the job can be initiated by dropping creature into related room
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
; Function used to assign the job to a creature after a break, or if it's primary/secondary job
; Not all jobs need to have this set - you may have "none" for jobs which are never assigned this way
Functions = work_in_room

[job4]
Name = TRAIN
RelatedRoom = TRAINING
InitialState = AtTrainingRoom
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
Functions = work_in_room

[job5]
Name = MANUFACTURE
RelatedRoom = WORKSHOP
InitialState = AtWorkshopRoom
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
Functions = work_in_room

[job6]
Name = SCAVENGE
RelatedRoom = SCAVENGER
InitialState = AtScavengerRoom
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
Functions = work_in_room

[job7]
Name = KINKY_TORTURE
RelatedRoom = TORTURE
InitialState = AtKinkyTortureRoom
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
Functions = work_in_room

[job8]
Name = FIGHT
RelatedEvent = MEVENT_ENEMYFIGHT
InitialState = CreatureDoingNothing
Functions = move_to_event

[job9]
Name = SEEK_THE_ENEMY
InitialState = SeekTheEnemy
Functions = in_state_internal

[job10]
Name = GUARD
RelatedRoom = GUARD_POST
InitialState = AtGuardPostRoom
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
Functions = work_in_room

[job11]
Name = GROUP
Functions = none

[job12]
Name = BARRACK
RelatedRoom = BARRACKS
InitialState = AtBarrackRoom
; Maybe computer should be able to place creatures in barracks?
Assign = HUMAN_DROP_IN_ROOM WHOLE_ROOM
Functions = work_in_room

[job13]
Name = TEMPLE_PRAY
RelatedRoom = TEMPLE
InitialState = AtTemple
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM BORDER_ONLY
Functions = work_in_room

[job14]
Name = FREEZE_PRISONERS
RelatedRoom = PRISON
InitialState = CreatureFreezePrisonrs
Assign = HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
Functions = in_state_on_room_content

[job15]
Name = EXPLORE
InitialState = CreatureExploreDungeon
Functions = in_state_internal

[angerjob0]
Name = NULL

[angerjob1]
Name = KILL_CREATURES

[angerjob2]
Name = DESTROY_ROOMS

[angerjob3]
Name = LEAVE_DUNGEON

[angerjob4]
Name = STEAL_GOLD

[angerjob5]
Name = DAMAGE_WALLS

[angerjob6]
Name = MAD_PSYCHO

[angerjob7]
Name = PERSUADE

[angerjob8]
Name = JOIN_ENEMY

[angerjob9]
Name = UNKNOWN1

[attackpref0]
Name = NULL

[attackpref1]
Name = MELEE

[attackpref2]
Name = RANGED
