; KeeperFX Creatures Configuration file
; file version 0.23

[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
JobsCount = 24
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
SpellDamageIncreaseOnExp = 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 = 4
; Percentage of creature defense increase for every experience level
DefenseIncreaseOnExp = 5
; Percentage of creature loyalty increase for every experience level
LoyaltyIncreaseOnExp = 35

[instance0]
Name = NULL
; Game turns duration (lifespan) of an instance; determines the length of shooting animation
Time = 0
; Point at which action function is executed within the instance lifespan (needs to be lower or equal to "Time")
ActionTime = 0
; Amount of game turns before the spell can be re-used after an instance finishes
ResetTime = 0
; Different times may be set for possession (First Person) mode
FPTime = 0
FPActionTime = 0
FPResetTime = 0
; How many game turns after using the instance creature can be spotted even if invisible
ForceVisibility = 0
; Graphics animation used to display creature during the instance
Graphics = STAND
; Instance property flags
Properties =
; Function used as the instance action, and its parameters
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
Properties = MELEE_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
Properties = MELEE_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
Properties =
Function = none 0 0

[instance4]
Name = FIRE_ARROW
Time = 10
ActionTime = 5
ResetTime = 16
FPTime = 5
FPActionTime = 2
FPResetTime = 8
ForceVisibility = 100
Graphics = ATTACK
Properties = RANGED_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
Properties = RANGED_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
Properties = RANGED_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
Properties = RANGED_DEBUFF
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
Properties = SELF_BUFF
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
Properties = RANGED_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
Properties = SELF_BUFF
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
Properties = SELF_BUFF
Function = creature_cast_spell SPELL_HEAL 0

[instance12]
Name = POISON_CLOUD
Time = 10
ActionTime = 6
ResetTime = 80
FPTime = 5
FPActionTime = 3
FPResetTime = 20
ForceVisibility = 20
Graphics = ATTACK
Properties = RANGED_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
Properties = SELF_BUFF
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
Properties =
Function = creature_cast_spell SPELL_TELEPORT 0

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

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

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

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

[instance19]
Name = MISSILE
Time = 10
ActionTime = 6
ResetTime = 25
FPTime = 5
FPActionTime = 3
FPResetTime = 2
ForceVisibility = 100
Graphics = ATTACK
Properties = RANGED_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 = 150
Graphics = ATTACK
Properties = RANGED_ATTACK
Function = creature_cast_spell SPELL_NAVI_MISSILE 0

[instance21]
Name = FLAME_BREATH
Time = 10
ActionTime = 10
ResetTime = 8
FPTime = 3
FPActionTime = 3
FPResetTime = 1
ForceVisibility = 100
Graphics = ATTACK
Properties = MELEE_ATTACK REPEAT_TRIGGER
Function = creature_cast_spell SPELL_FLAME_BREATH 0

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

[instance23]
Name = LIGHT
Time = 10
ActionTime = 6
ResetTime = 8
FPTime = 5
FPActionTime = 3
FPResetTime = 3
ForceVisibility = 100
Graphics = ATTACK
Properties = SELF_BUFF
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
Properties = SELF_BUFF
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
Properties = SELF_BUFF
Function = creature_cast_spell SPELL_SIGHT 0

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

[instance27]
Name = HAILSTORM
Time = 10
ActionTime = 6
ResetTime = 32
FPTime = 5
FPActionTime = 3
FPResetTime = 20
ForceVisibility = 80
Graphics = ATTACK
Properties = RANGED_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 = 100
Graphics = ATTACK
Properties = MELEE_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 = 10
Graphics = ATTACK
Properties = MELEE_ATTACK
Function = creature_fart 0 0

[instance30]
Name = DIG
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 40
Graphics = ATTACK
Properties =
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
Properties =
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
Properties =
Function = creature_destroy 0 0

[instance33]
Name = TUNNEL
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 0
Graphics = ATTACK
Properties =
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
Properties =
Function = none 3 0

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

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

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

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

[instance39]
Name = FIRST_PERSON_DIG
Time = 8
ActionTime = 4
ResetTime = 1
FPTime = 4
FPActionTime = 2
FPResetTime = 1
ForceVisibility = 3
Graphics = ATTACK
Properties =
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
Properties =
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 = 20
Graphics = ATTACK
Properties =
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 = 20
Graphics = ATTACK
Properties = RANGED_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
Properties =
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
Properties =
Function = none 4 0

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

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

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

[job0]
; Empty job, indicates no job assigned
Name = NULL
PlayerFunctions = none none
CoordsFunctions = none none

[job1]
; Tunneling, not used
Name = TUNNEL
PlayerFunctions = none none
CoordsFunctions = none none

[job2]
; Digging, not used
Name = DIG
PlayerFunctions = none none
CoordsFunctions = none none

[job3]
; Researching rooms and spells in the library
; 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 and how the job can be initiated by dropping creature into related room
; Options are:
;    OWNED_CREATURES,OWNED_DIGGERS,ENEMY_CREATURES,ENEMY_DIGGERS - selects kind of creatures
;        which can be assigned to this job
;    HUMAN_DROP_IN_ROOM,COMPUTER_DROP_IN_ROOM - whether human players and computer players can
;        assign the job by dropping a creature into related room
;    INIT_IN_ROOM - whether the job can be started when a creature is created within the room,
;        or level has a pre-placed creature in that room 
;    WHOLE_ROOM,CENTER_ONLY,BORDER_ONLY - room area selection where the creature have to
;        be dropped for the job to be assigned
;    NEEDS_HAVE_JOB - only allow to assign this job by human or computer player if it is
;        in primary or secondary jobs list of the creature
Assign = OWNED_CREATURES 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
PlayerFunctions = can_do_research work_in_room
; Function used to assign the job to a creature by dropping at specific map coordinates
; Not all jobs need to have this set - you may have "none" for jobs which are never assigned this way
CoordsFunctions = can_do_research work_in_room
; Job properties
; Options are:
;    NEEDS_CAPACITY - whether the job performed in a room requires and consumes worker capacity
;        within the room 
;    WORK_WHOLE_ROOM,WORK_CENTER_ONLY,WORK_BORDER_ONLY - room area selection where the creature will work
;        within related room 
;    NO_SELF_CONTROL - creature has no control over its job while doing this action, cannot stop by itself
;    NO_GROUPS - creature is removed from a group before the job is assigned
;    ALLOW_CHICKENIZED - allow creatures turned into chickens to be assigned to that job
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY

[job4]
; Training job
Name = TRAIN
RelatedRoom = TRAINING
InitialState = AtTrainingRoom
Assign = OWNED_CREATURES OWNED_DIGGERS HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
PlayerFunctions = can_do_training work_in_room
CoordsFunctions = can_do_training work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY

[job5]
; Manufacturing traps and doors in workshop
Name = MANUFACTURE
RelatedRoom = WORKSHOP
InitialState = AtWorkshopRoom
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
PlayerFunctions = can_do_manufacturing work_in_room
CoordsFunctions = can_do_manufacturing work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY

[job6]
; Scavenging enemy and neutral creatures to join the player
Name = SCAVENGE
RelatedRoom = SCAVENGER
InitialState = AtScavengerRoom
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
PlayerFunctions = can_do_scavenging work_in_room
CoordsFunctions = can_do_scavenging work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY

[job7]
; Torture for pleasure, with no health loss and possibility to quit any time; only creatures which
; have it as primary or secondary job can use it, others will start painful torture only
Name = KINKY_TORTURE
RelatedRoom = TORTURE
InitialState = AtKinkyTortureRoom
Assign = OWNED_CREATURES INIT_IN_ROOM HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM NEEDS_HAVE_JOB
PlayerFunctions = can_do_job_always work_in_room
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY NO_GROUPS

[job8]
; Joining an already started fight somewhere on the map
Name = FIGHT
RelatedEvent = MEVENT_ENEMYFIGHT
InitialState = CreatureDoingNothing
Assign = OWNED_CREATURES OWNED_DIGGERS ENEMY_CREATURES ENEMY_DIGGERS
PlayerFunctions = can_join_fight move_to_event
CoordsFunctions = none none
Properties = 

[job9]
; Looking for enemy to fight
; Computer player may use this jobs check function when picking creatures to attack
Name = SEEK_THE_ENEMY
InitialState = SeekTheEnemy
Assign = OWNED_CREATURES OWNED_DIGGERS ENEMY_CREATURES ENEMY_DIGGERS
PlayerFunctions = can_do_job_always in_state_internal
CoordsFunctions = can_do_job_always none
Properties = 

[job10]
; Walk around in guard post
Name = GUARD
RelatedRoom = GUARD_POST
InitialState = AtGuardPostRoom
Assign = OWNED_CREATURES INIT_IN_ROOM HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM WHOLE_ROOM
PlayerFunctions = can_do_job_always work_in_room
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY

[job11]
; Persuade other creatures to follow - not working
Name = GROUP
Assign = OWNED_CREATURES OWNED_DIGGERS ENEMY_CREATURES ENEMY_DIGGERS
PlayerFunctions = can_do_barracking none
CoordsFunctions = none none
Properties = 

[job12]
; Join other creatures into group in barracks
Name = BARRACK
RelatedRoom = BARRACKS
InitialState = AtBarrackRoom
; Maybe computer should be able to place creatures in barracks?
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM WHOLE_ROOM
PlayerFunctions = can_do_barracking work_in_room
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY

[job13]
; Pray in temple
Name = TEMPLE_PRAY
RelatedRoom = TEMPLE
InitialState = AtTemple
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM COMPUTER_DROP_IN_ROOM BORDER_ONLY
PlayerFunctions = can_do_job_always work_in_room
CoordsFunctions = can_do_job_always work_in_room_and_cure
Properties = WORK_BORDER_ONLY NEEDS_CAPACITY ALLOW_CHICKENIZED

[job14]
; Freeze any enemy creatures starving in prison
Name = FREEZE_PRISONERS
RelatedRoom = PRISON
InitialState = CreatureFreezePrisonrs
Assign = OWNED_CREATURES WHOLE_ROOM NEEDS_HAVE_JOB
PlayerFunctions = can_freeze_prisoners in_state_on_room_content
CoordsFunctions = none none
Properties = WORK_WHOLE_ROOM

[job15]
; Go into unexplored but accessible areas of the map
Name = EXPLORE
InitialState = CreatureExploreDungeon
Assign = OWNED_CREATURES OWNED_DIGGERS ENEMY_CREATURES ENEMY_DIGGERS
PlayerFunctions = can_do_job_always in_state_internal
CoordsFunctions = none none
Properties = 

[job16]
; Leave the dungeon through entrance
Name = EXEMPT
RelatedRoom = ENTRANCE
InitialState = CreatureExempt
Assign = OWNED_CREATURES ENEMY_CREATURES HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_CENTER_ONLY NO_GROUPS

[job17]
; Sink into temple waters as sacrifice for dark gods
Name = TEMPLE_SACRIFICE
RelatedRoom = TEMPLE
InitialState = CreatureSacrifice
Assign = OWNED_CREATURES OWNED_DIGGERS ENEMY_CREATURES ENEMY_DIGGERS HUMAN_DROP_IN_ROOM CENTER_ONLY ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_do_job_always in_state_internal
Properties = WORK_CENTER_ONLY NO_SELF_CONTROL NO_GROUPS

[job18]
; Torture which persuades enemies to convert, or motivates your creatures
Name = PAINFUL_TORTURE
RelatedRoom = TORTURE
InitialState = AtTortureRoom
Assign = OWNED_CREATURES ENEMY_CREATURES ENEMY_DIGGERS INIT_IN_ROOM HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY NO_SELF_CONTROL NO_GROUPS

[job19]
; Slowly dying of hunger at prison
Name = CAPTIVITY
RelatedRoom = PRISON
InitialState = CrtrArrivedAtPrison
Assign = OWNED_CREATURES ENEMY_CREATURES ENEMY_DIGGERS INIT_IN_ROOM HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_WHOLE_ROOM NEEDS_CAPACITY NO_SELF_CONTROL NO_GROUPS ALLOW_CHICKENIZED

[job20]
; Placing any valuables in pockets into players treasury
Name = PLACE_IN_VAULT
RelatedRoom = TREASURE
InitialState = ImpDropsGold
Assign = OWNED_DIGGERS HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_place_in_vault work_in_room
Properties = WORK_WHOLE_ROOM

[job21]
; Taking salary from the treasury
Name = TAKE_SALARY
RelatedRoom = TREASURE
InitialState = CreatureTakeSalary
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_take_salary work_in_room
Properties = WORK_WHOLE_ROOM

[job22]
; Eating in the hatchery
Name = TAKE_FEED
RelatedRoom = GARDEN
InitialState = CreatureArrivedAtGarden
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_do_job_always work_in_room
Properties = WORK_WHOLE_ROOM

[job23]
; Sleeping in lair, also includes making new lair in the room
Name = TAKE_SLEEP
RelatedRoom = LAIR
InitialState = CreatureGoingToSleep
Assign = OWNED_CREATURES HUMAN_DROP_IN_ROOM WHOLE_ROOM ONE_TIME
PlayerFunctions = can_do_job_always none
CoordsFunctions = can_take_sleep sleep_in_lair
; Sleeping doesn't consume room capacity, because the lair itself does - no NEEDS_CAPACITY here
Properties = WORK_WHOLE_ROOM

[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
