; Computer Player (so-called AI) configuration file version 1.0.
; Modify only if you know what you're doing!

; Don't change the [common] block!
[common]
ComputerAssists = 6 7 8 9
ChecksCount = 52
EventsCount = 31
ComputersCount = 17

; Defines which computer models are used in multiplayer/1player modes.
SkirmishFirst = 13
SkirmishLast = 16

; Processes, Checks and Events are used to define behaviour of computer players.
; These are defined in [processX], [checkX] and [eventX] blocks, and can be added to computer player ([computerX] block) by typing their mnemonic.
; All mnemonics should be unique. Note that length of mnemonic can't exceed 15 characters.
; Process names don't have to be unique and are limited to 160 characters.
; Computers are starting from 0, while other elements from 1.

; [PROCESSES]
; Definition of processes - their mnemonics will be later used to add them to computer players.

[process1]
Name = BUILD ALL ROOM 3x3
Mnemonic = RoomAll3
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
; <priority> - priority of the process, this parameter controls which process to choose if more than one process has met the conditions to be conducted. Can be negative.
; <room_width> - number of tiles width the room should have.
; <room_height> - number of tiles height the room should have, this value should not differ from room_width by more than 1, if it does then a room with non-rectangular shape can result.
; <room_kind> - the room kind to be built.
; <room_link> - the room kind which we'd prefer to build a connection from, if not available then build anywhere. -1 will build anywhere.
Values = 0 3 3 0 -1
Functions = check_build_all_rooms setup_any_room_continue process_task completed_build_a_room paused_task
Params = 0 0 0 0 0 0

[process2]
Name = BUILD ALL ROOM 4x4
Mnemonic = RoomAll4
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 4 4 0 -1
Functions = check_build_all_rooms setup_any_room_continue process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process3]
Name = BUILD A PRISON ROOM
Mnemonic = RoomPrisn
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 3 4 4 12
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process4]
Name = BUILD A TORTURE ROOM
Mnemonic = RoomTortr
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 3 4 5 12
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process5]
Name = BUILD A SCAVENGER ROOM
Mnemonic = RoomScavn
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 3 3 9 13
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process6]
Name = BUILD A TEMPLE ROOM
Mnemonic = RoomTempl
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 3 3 10 12
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process7]
Name = BUILD A GRAVEYARD ROOM
Mnemonic = RoomGrave
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 3 4 11 14
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process8]
Name = BUILD A BARRACK ROOM
Mnemonic = RoomBarrc
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 3 4 12 9
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process9]
Name = BUILD A TREASURE ROOM
Mnemonic = RoomTresr
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 10 5 5 2 6
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process10]
Name = BUILD A RESEARCH ROOM
Mnemonic = RoomRsrch
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 5 5 3 7
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process11]
Name = BUILD A HATCHERY
Mnemonic = RoomHatch
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 6 5 13 7
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process12]
Name = BUILD A LAIR ROOM
Mnemonic = RoomLair
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
; Lair size is also impacted by MAX_CREATURES in level script.
Values = 0 5 5 14 7
Functions = check_any_room setup_any_room process_task completed_task paused_task 
Params = 0 0 0 0 0 0

[process13]
Name = BUILD A TRAINING ROOM
Mnemonic = RoomTrain
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 5 6 6 13
Functions = check_any_room setup_any_room process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process14]
Name = BUILD A WORKSHOP ROOM
Mnemonic = RoomWrksh
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 6 6 8 13
Functions = check_any_room setup_any_room process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process15]
; Process of tunnelling to entrance.
Name = DIG TO AN ENTRANCE
Mnemonic = DigEntrn
Values = 0 1700 0 0 0
Functions = check_dig_to_entrance setup_dig_to_entrance process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process16]
; Process of tunnelling to gold slabs and marking them for digging.
Name = DIG TO GOLD
Mnemonic = DigGold
; Values = <priority>, <money_below>, <distance_inc_turns>, <slabs_at_once>, <initial_distance>.
; <priority> - priority of the process, it is increased automatically evey time computer player lacks money.
; <money_below> - gold amount, the process is started only if prediction of gold left after next payday falls below it.
; <distance_inc_turns> - max digging distance increases with length of the gameplay, every given game turns amount it expands one subtile.
; <slabs_at_once> - amount of slabs marked for diggind during one run of the process.
; <initial_distance> - initial max distance at which digging is allowed, in subtiles, it is increased every few game turns.
Values = 0 10999 150 7 0
Functions = check_dig_to_gold setup_dig_to_gold process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process17]
Name = BUILD A TREASURE ROOM 4x4
Mnemonic = RoomTres4
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 10 4 4 2 7
Functions = check_any_room setup_any_room process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process18]
Name = BUILD A LAIR ROOM 4x4
Mnemonic = RoomLair4
; Values = <priority>, <room_width>, <room_height>, <room_kind>, <room_link>.
Values = 0 4 4 14 7
Functions = check_any_room setup_any_room process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process19]
Name = DIG TO CLOSE GOLD
Mnemonic = DigClGold
; Values = <priority>, <money_below>, <distance_inc_turns>, <slabs_at_once>, <initial_distance>.
Values = 0 30999 500 5 71
Functions = check_dig_to_gold setup_dig_to_gold process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process20]
Name = DIG TO GREEDY GOLD
Mnemonic = DigGrGold
; Values = <priority>, <money_below>, <distance_inc_turns>, <slabs_at_once>, <initial_distance>.
Values = 0 40999 400 7 900
Functions = check_dig_to_gold setup_dig_to_gold process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process21]
Name = DIG TO GREEDY GOLD2
Mnemonic = DigGrGld2
; Values = <priority>, <money_below>, <distance_inc_turns>, <slabs_at_once>, <initial_distance>.
Values = 1 40999 200 10 900
Functions = check_dig_to_gold setup_dig_to_gold process_task completed_task paused_task
Params = 0 0 0 0 0 0

[process22]
Name = SIGHT OF EVIL
Mnemonic = SplSOE
Values = 0 8 64 1500 0
Functions = check_sight_of_evil setup_sight_of_evil process_sight_of_evil completed_task paused_task
Params = 0 0 0 0 0 0

[process23]
Name = SIGHT OF EVIL SCARE
Mnemonic = SOEScare
Values = 0 8 10 5000 0
Functions = check_sight_of_evil setup_sight_of_evil process_sight_of_evil completed_task paused_task
Params = 0 0 0 0 0 0

[process24]
; Process of attacking any enemy. Each attack is based on hate level.
Name = ATTACK PLAN 1
Mnemonic = Attck1
; Values = <unused>, <percent_fighting_creatures>, <amount_fighting_creatures>, <percent_max_creatures_attracted>, <unused>.
; <percent_fighting_creatures> - percentage of fighting creatures, used to check how much creatures are fighting, process only trigger if there is less than X fighting creatures.
; <amount_fighting_creatures> - amount of fighting creatures, used to check how much creatures are fighting, process only trigger if there is less than X fighting creatures.
; <percent_max_creatures_attracted> - percentage of max creatures attracted required for the process to trigger.
Values = 0 55 6 80 0
Functions = check_attack1 setup_attack1 process_task completed_attack1 paused_task
Params = 0 0 0 0 0 0

[process25]
; Process of attacking the weakest enemy. Each attack is based on hate level.
Name = ATTACK SAFE ATTACK
Mnemonic = AttckSafe
; Values = <unused>, <percent_fighting_creatures>, <amount_fighting_creatures>, <percent_max_creatures_attracted>, <unused>.
Values = 0 25 4 80 0
Functions = check_safe_attack setup_attack1 process_task completed_attack1 paused_task
Params = 0 0 0 0 0 0

; [CHECKS]
; Definition of checks - their mnemonics will be later used to add them to computer players.
; Checks are simple periodic functions, used by computers to keep an eye on their dungeon.
; Values: Initial state, Every X game turns it's checked.
; Functions: The function that is called in the code by the check.
; Params: Up to three params may be used to configure the check, the fourth is 'not used before game turn X'.

[check1]
Name = CHECK MONEY
Mnemonic = Money1
Values = 0 100
; Function which reacts for player having low money, by increasing priority of gold digging,
; creating processes of selling traps and doors, moving creatures with expensive jobs to lair and moving unowned gold to treasury.
Functions = check_for_money
; Low gold and critical gold value.
; If after next payday, the planned amount of gold left is low, then actions are taken to get more gold.
; If remaining value is lower than critical, aggressive actions are taken.
Params = 500 -1000 0 0

[check2]
Name = CHECK EXPAND ROOM
Mnemonic = RoomExp1
Values = 0 301
Functions = check_for_expand_room
Params = 0 0 0 0

[check3]
Name = CHECK EXPAND ROOM
Mnemonic = RoomExp2
Values = 0 200
Functions = check_for_expand_room
Params = 0 0 0 0

[check4]
Name = CHECK EXPAND ROOM
Mnemonic = RoomExp3
Values = 0 101010
Functions = check_for_expand_room
Params = 0 0 0 0

[check5]
Name = CHECK EXPAND ROOM
Mnemonic = RoomExp4
Values = 0 210
Functions = check_for_expand_room
Params = 0 0 0 0

[check6]
Name = CHECK EXPAND ROOM
Mnemonic = RoomExp5
Values = 0 201
Functions = check_for_expand_room
Params = 0 0 0 0

[check7]
Name = CHECK EXPAND ROOM
Mnemonic = RoomExp6
Values = 0 10
Functions = check_for_expand_room
Params = 0 0 0 0

[check8]
Name = CHECK AVAILIABLE TRAP
Mnemonic = TrapAvl1
Values = 0 430
Functions = check_for_place_trap
; Params = <Allows placement of final trap>, <Trap amounts to place first>.
Params = 0 0 0 0

[check9]
Name = CHECK AVAILIABLE TRAP
Mnemonic = TrapAvl2
Values = 0 330
Functions = check_for_place_trap
; Params = <Allows placement of final trap>, <Trap amounts to place first>.
Params = 0 0 0 0

[check10]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc1
Values = 0 5580
Functions = check_neutral_places
Params = 0 0 0 15000

[check11]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc2
Values = 0 1780
Functions = check_neutral_places
Params = 0 0 0 15000

[check12]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc3
Values = 0 1780
Functions = check_neutral_places
Params = 0 0 0 20000

[check13]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc4
Values = 0 780
Functions = check_neutral_places
Params = 0 0 0 0

[check14]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc5
Values = 0 780
Functions = check_neutral_places
Params = 0 0 0 5000

[check15]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc6
Values = 0 5580
Functions = check_neutral_places
Params = 0 0 0 25000

[check16]
Name = CHECK FOR NEUTRAL PLACES
Mnemonic = NeutPlc7
Values = 0 5580
Functions = check_neutral_places
Params = 0 0 0 0

[check17]
Name = CHECK AVAILIABLE DOOR
Mnemonic = DoorAvl
Values = 0 330
Functions = check_for_place_door
Params = 0 0 0 0

[check18]
Name = CHECK FOR ENEMY ENTRANCES
Mnemonic = EnEntrn1
Values = 0 290
Functions = check_enemy_entrances
Params = 0 0 0 0

[check19]
Name = CHECK FOR ENEMY ENTRANCES
Mnemonic = EnEntrn2
Values = 0 690
Functions = check_enemy_entrances
Params = 0 0 0 0

[check20]
Name = CHECK FOR SLAP IMP
Mnemonic = ImpSlap1
Values = 0 250
Functions = check_slap_imps
Params = 75 0 0 -250

[check21]
Name = CHECK FOR SLAP IMP
Mnemonic = ImpSlap2
Values = 0 250
Functions = check_slap_imps
Params = 95 0 0 0

[check22]
Name = CHECK FOR SLAP IMP
Mnemonic = ImpSlap3
Values = 0 21
Functions = check_slap_imps
Params = 100 0 0 -250

[check23]
Name = CHECK FOR SPEED UP
Mnemonic = SplSpdu1
Values = 0 200
Functions = check_for_accelerate
; First room to check[Library(0), Library(1), Workshop(2), Training(3), Scavenger(4)], spell_level, needs X time spell price available, not used before game turn X.
Params = 0 8 3 0

[check24]
Name = CHECK FOR SPEED UP
Mnemonic = SplSpdu2
Values = 0 19
Functions = check_for_accelerate
Params = 0 8 3 0

[check25]
Name = CHECK FOR QUICK ATTACK
Mnemonic = AtckQck1
Values = 0 690
Functions = check_for_quick_attack
; Params = <Percentage of free creatures to attack with>, <Call to Arms duration> , <min creatures>, <use turn>
Params = 90 3000 7 9500

[check26]
Name = CHECK FOR QUICK ATTACK
Mnemonic = AtckQck2
Values = 0 390
Functions = check_for_quick_attack
Params = 60 1 0 0

[check27]
Name = CHECK FOR QUICK ATTACK
Mnemonic = AtckQck3
Values = 0 390
Functions = check_for_quick_attack
Params = 90 1 14 112000

[check28]
Name = CHECK FOR QUICK ATTACK
Mnemonic = AtckQck4
Values = 0 390
Functions = check_for_quick_attack
Params = 90 0 24 3000

[check29]
Name = CHECK FOR QUICK ATTACK
Mnemonic = AtckQck5
Values = 0 390
Functions = check_for_quick_attack
Params = 90 0 14 24000

[check30]
Name = CHECK FOR QUICK ATTACK
Mnemonic = AtckQck6
Values = 0 390
Functions = check_for_quick_attack
Params = 90 0 14 14000

[check31]
Name = CHECK TO PRETTY
Mnemonic = DnPrtty1
Values = 0 405
Functions = check_for_pretty
Params = 7 0 0 0

[check32]
Name = CHECK TO PRETTY
Mnemonic = DnPrtty2
Values = 0 400
Functions = check_for_pretty
Params = 7 0 0 0

[check33]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh1
; Flags and game turns interval between checks.
Values = 0 203
; Function which uses digger creation spell if player has not enough diggers.
Functions = check_no_imps
; Params = <Preferred amount of diggers>, <Minimal amount of diggers>, <Increase per gems faces>.
; When player has less than minimum, or less than maximum and spare money, then he will use digger creation spell.
; Both the minimum and maximum are increased by the third amount times number of gems faces marked for digging.
Params = 16 9 3 0

[check34]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh2
Values = 0 200
Functions = check_no_imps
Params = 11 5 1 0

[check35]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh3
Values = 0 200
Functions = check_no_imps
Params = 14 12 2 0

[check36]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh4
Values = 0 200
Functions = check_no_imps
Params = 3 3 0 0

[check37]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh5
Values = 0 200
Functions = check_no_imps
Params = 13 5 2 0

[check38]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh6
Values = 0 200
Functions = check_no_imps
Params = 13 2 0 0

[check39]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh7
Values = 0 203
Functions = check_no_imps
Params = 13 9 3 0

[check40]
Name = CHECK FOR ENOUGH IMPS
Mnemonic = ImpEngh8
Values = 0 20
Functions = check_no_imps
Params = 99 9 0 0

[check41]
Name = MOVE CREATURE TO ROOM
Mnemonic = MvTrain1
; Flags and game turns interval between checks.
Values = 0 400
; Function which moves creatures to the specified room kind.
Functions = check_move_to_room
; Params = <Percentage of active creatures>, <Room kind>, <unused>, <First possible game turn>.
Params = 95 6 0 7000

[check42]
Name = MOVE CREATURE TO ROOM
Mnemonic = MvGuard1
Values = 0 400
Functions = check_move_to_room
; Params = <Percentage of active creatures>, <Room kind>, <unused>, <First possible game turn>.
Params = 10 16 0 7000

[check43]
Name = MOVE CREATURE TO BEST ROOM
Mnemonic = MvBest1
Values = 0 270
Functions = check_move_to_best_room
; Params = <Percentage of active creatures>.
Params = 75 0 0 0

[check44]
Name = MOVE CREATURE TO BEST ROOM
Mnemonic = MvBest2
Values = 0 270
Functions = check_move_to_best_room
; Params = <Percentage of active creatures>.
Params = 70 0 0 0

[check45]
Name = COMPUTER CHECK HATES
Mnemonic = Hates1
Values = 0 400
Functions = checks_hates
; Params = <Hate for no reason after X game turns>, <unused>, <unused>, <First possible game turn>.
Params = 8000 0 0 1600

[check46]
Name = COMPUTER CHECK HATES
Mnemonic = Hates2
Values = 0 500
Functions = checks_hates
; Params = <Hate for no reason after X game turns>, <unused>, <unused>, <First possible game turn>.
Params = 4000 0 0 0

[check47]
Name = COMPUTER CHECK HATES
Mnemonic = Hates3
Values = 0 500
Functions = checks_hates
; Params = <Hate for no reason after X game turns>, <unused>, <unused>, <First possible game turn>.
Params = 40000 0 0 2000

[check48]
Name = COMPUTER CHECK HATES
Mnemonic = Hates4
Values = 0 400
Functions = checks_hates
; Params = <Hate for no reason after X game turns>, <unused>, <unused>, <First possible game turn>.
Params = 4000 0 0 2000

[check49]
Name = COMPUTER CHECK IMPRISONMENT
Mnemonic = Prison1
Values = 0 400
Functions = check_prison_tendency
; param 1 - 0 for disabled, 1 for enabled, 2 may only switch on, 3 may only switch off.
; param 2 - is minimum required total prison capacity before prison is enabled.
; param 3 - at max creatures in dungeon. If allowed, switches off at this creature count.
; parem 4 - is amount of game turns before it checks for the first time.
Params = 1 2 50 200

[check50]
Name = CHECK FOR FLIGHT UP
Mnemonic = SplFly
Values = 0 200
Functions = check_for_flight
; First room to check[Library(0), Library(1), Workshop(2), Training(3), Scavenger(4)], spell_level, needs X time spell price available, not used before game turn X.
Params = 0 8 3 0

[check51]
Name = CHECK FOR VISION UP
Mnemonic = SplVsn
Values = 0 200
Functions = check_for_vision
; First room to check[Library(0), Library(1), Workshop(2), Training(3), Scavenger(4)], spell_level, needs X time spell price available, not used before game turn X.
Params = 0 8 3 0

; [EVENTS]
; Definition of events - their mnemonics will be later used to add them to computer players.
; Note that some events have processes attached to them.

[event1]
Name = EVENT DUNGEON BREACH
Mnemonic = DnBreach
; <type>, <kind>, <test_interval> - kind is from EvKind enum.
Values = 0 4 295
; <event_fn>, <test_fn>.
; There is a minor difference between event_fn and test_fn.
; event_fn is watching for event list in game.event.
; test_fn is a periodic check.
; Both of them also contain reaction on it.
Functions = event_battle none
Params = 75 1 0 0

[event2]
Name = EVENT ROOM ATTACK
Mnemonic = AttkRom1
Values = 0 19 295
Functions = event_battle none
Params = 75 1 0 0

[event3]
Name = EVENT ROOM ATTACK
Mnemonic = AttkRom2
Values = 0 19 295
Functions = event_battle none
Params = 75 3 0 0

[event4]
Name = EVENT HEART UNDER ATTACK
Mnemonic = AttkHrt1
Values = 0 1 295
Functions = event_battle none
Params = 99 3 0 0

[event5]
Name = EVENT TREASURE ROOM FULL
Mnemonic = RomFTrsr
Values = 0 11 1195
Functions = event_find_link none
Process = RoomTresr
Params = 0 0 0 0

[event6]
Name = EVENT LIVING SPACE FULL
Mnemonic = RomFLair
Values = 0 17 1195
Functions = event_find_link none
Process = RoomLair
Params = 0 0 0 0

[event7]
Name = EVENT FIGHT
Mnemonic = Fight1
Values = 0 2 -2
Functions = event_battle none
Params = 75 1 0 0

[event8]
Name = EVENT FIGHT
Mnemonic = Fight2
Values = 0 2 -2
Functions = event_battle none
Params = 25 1 0 0

[event9]
Name = EVENT FIGHT TEST
Mnemonic = FghTest
Values = 1 1 10
Functions = none event_battle_test
Params = 75 1 0 0

[event10]
Name = EVENT CHECK FIGHTERS
Mnemonic = FghtrChk
Values = 1 1 100
Functions = none event_check_fighters
Params = 5 0 0 0

[event11]
Name = EVENT MAGIC FOE
Mnemonic = MagcFoe
Values = 2 2 100
; Function to attack enemy creatures in battle with predefined attack spells.
Functions = none event_attack_magic_foe
; Params = <Default spell level>, <Default repeat number>.
; The spell level is hardcoded for each spell, the repeat is used once. If available, the AI will cast: [disease], [lightning], [chicken], [freeze], 5x[lightning].
Params = 1 5 0 0

[event12]
Name = EVENT CHECK ROOMS FULL
Mnemonic = RomFull
Values = 3 3 400
Functions = none event_check_rooms_full
Params = 0 0 72 0

[event13]
Name = EVENT SAVE IMPS
Mnemonic = SaveImp
Values = 4 4 40
Functions = none event_check_imps_danger
Params = 0 0 0 0

[event14]
Name = EVENT PAY DAY
Mnemonic = PayDay1
Values = 0 12 1195
Functions = event_check_payday none
Params = 0 0 0 0

[event15]
Name = EVENT ROOM LOST
Mnemonic = RoomLost
Values = 0 22 100
Functions = event_rebuild_room none
Params = 0 0 0 0

[event16]
Name = EVENT MOANING PRISONER
Mnemonic = MoanPris1
Values = 0 31 100
Functions = event_handle_prisoner none
; Params = <Allowed actions>, <Heal power level>, <Gold reserve must be X time power cost>, <Not used before game turn X>.
; Allowed actions: 0, nothing. - 1, Torture already healed only. - 2, Heal any creatures. - 3, Heal non-humanoids creatures only.
Params = 2 8 20 0

[event17]
Name = EVENT MOANING PRISONER
Mnemonic = MoanPris2
Values = 0 31 100
Functions = event_handle_prisoner none
Params = 1 0 0 0

[event18]
Name = EVENT MOANING PRISONER
Mnemonic = MoanPris3
Values = 0 31 100
Functions = event_handle_prisoner none
Params = 3 8 20 0

[event19]
Name = EVENT SAVE TORTURED
Mnemonic = SaveTort1
Values = 4 32 800
Functions = none event_save_tortured
; Params = <Health% below it will look into saving the victim>.
Params = 15 0 0 0

[event20]
Name = EVENT ENEMY DOOR
Mnemonic = DoorAtck1
Values = 0 33 400
Functions = event_attack_door none
; Params = <Minimum available creatures>, <CTA for X game turns when comp has no hand>, <Number of creatures under CTA influence>.
Params = 5 2500 2 0

[event21]
Name = UNUSED

[event22]
Name = UNUSED

[event23]
Name = UNUSED

[event24]
Name = UNUSED

[event25]
Name = UNUSED

[event26]
Name = UNUSED

[event27]
Name = UNUSED

[event28]
Name = UNUSED

[event29]
Name = UNUSED

[event30]
Name = UNUSED

[event31]
Name = UNUSED

; [COMPUTERS]
; Definition of computer players.
; Every computer player can have 20 processes, 32 checks and 33 events attached.
; Amount of computer players is fixed and cannot be changed by updating this file.
; An update to the game would be required. (For developers, see player_computer.h).

[computer0]
Name = General build, defend and attack Computer.
NameTextID = 201
TooltipTextID = 201
; Values = <dig stack size>, <processes_time>, <click_rate>, <max_room_build_tasks>, <turn_begin>, <sim_before_dig>, <min_drop_delay>.
; <dig stack size> - how much digging a computer starts, as a percentage of the current dungeon area.
; <processes_time> - game turns interval between performing processes.
; <click_rate> - game turns interval between actions: each room tile placed, each dirt highlighted, each creature dropped.
; <max_room_build_tasks> - how many rooms can be built at once.
; <turn_begin> - game turns until AI initializes.
; <sim_before_dig> - simulate outcome before starting action.
; <min_drop_delay> - when the click rate is faster, take this as a minimum delay between dropping creatures.
Values = 60 1 1 1 100 1 5
Processes = RoomTresr RoomLair DigEntrn DigClGold RoomHatch RoomRsrch RoomWrksh RoomTrain SplSOE AttckSafe Attck1 RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = Hates1 MvBest1 MvTrain1 ImpEngh1 DnPrtty1 AtckQck1 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc1 TrapAvl1 RoomExp1 Money1 Prison1 SplFly SplVsn
Events = DnBreach AttkRom1 AttkHrt1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RomFull RoomLost SaveImp PayDay1 MoanPris1 SaveTort1 DoorAtck1

[computer1]
Name = Build and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 70 1 8 1 100 1 5
Processes = RoomTresr RoomLair RoomHatch DigEntrn DigGold RoomRsrch RoomWrksh RoomTrain DigGrGold SplSOE RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn AttckSafe
Checks = Hates2 MvBest1 MvTrain1 ImpEngh2 DnPrtty2 AtckQck2 SplSpdu1 ImpSlap2 EnEntrn2 DoorAvl TrapAvl1 RoomExp2 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 DoorAtck1

[computer2]
Name = Build and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 90 1 10 1 100 1 5
Processes = RoomTresr RoomLair DigClGold RoomHatch DigEntrn RoomRsrch RoomWrksh RoomTrain SOEScare RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl
Checks = Hates3 MvBest1 MvTrain1 ImpEngh3 SplSpdu1 ImpSlap1 DoorAvl RoomExp3 TrapAvl1 AtckQck3 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 DoorAtck1

[computer3]
Name = Build and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 70 1 10 1 100 1 5
Processes = RoomTres4 RoomLair4 RoomAll3 DigEntrn DigClGold AttckSafe
Checks = Hates4 MvBest1 ImpEngh4 SplSpdu1 ImpSlap1 DoorAvl TrapAvl1 RoomExp2 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 DoorAtck1

[computer4]
Name = Build basic 4x4 and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 70 1 6 1 100 1 5
Processes = RoomTres4 RoomLair4 DigEntrn DigClGold RoomAll4 AttckSafe
Checks = Hates4 MvBest1 ImpEngh4 SplSpdu1 ImpSlap1 DoorAvl NeutPlc2 TrapAvl1 RoomExp5 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RomFull SaveImp PayDay1

[computer5]
Name = Build and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 85 1 10 1 500 1 10
Processes = RoomTres4 RoomLair4 DigEntrn DigClGold RoomAll4 AttckSafe SplSOE
Checks = Hates4 MvBest1 ImpEngh5 DnPrtty2 SplSpdu1 ImpSlap1 DoorAvl NeutPlc3 TrapAvl1 RoomExp5 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight2 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1

[computer6]
Name = Computer Assist, Aggressive.
NameTextID = 201
TooltipTextID = 729
Values = 95 1 1 1 100 1 5
Processes = RoomTresr RoomLair DigEntrn DigClGold RoomHatch RoomRsrch RoomWrksh RoomTrain SplSOE AttckSafe Attck1 RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = Hates4 MvBest1 ImpEngh6 DnPrtty2 AtckQck4 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc4 TrapAvl2 RoomExp5 Money1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RomFull SaveImp PayDay1 MoanPris2 DoorAtck1

[computer7]
Name = Computer Assist, Defensive.
NameTextID = 201
TooltipTextID = 730
Values = 45 1 1 1 100 1 5
Processes = RoomTresr RoomLair RoomHatch DigClGold DigEntrn RoomRsrch RoomWrksh RoomTrain RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = Hates4 MvBest1 ImpEngh6 DnPrtty2 SplSpdu1 ImpSlap1 DoorAvl NeutPlc5 TrapAvl2 RoomExp5 Money1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RomFull SaveImp PayDay1

[computer8]
Name = Computer Assist, Build Only.
NameTextID = 201
TooltipTextID = 731
Values = 50 1 1 1 100 1 5
Processes = RoomTresr RoomLair RoomHatch RoomRsrch RoomWrksh RoomTrain DigEntrn RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = TrapAvl1 DoorAvl RoomExp6
Events = AttkHrt1 RomFTrsr RomFLair

[computer9]
Name = Computer Assist, Move Only.
NameTextID = 201
TooltipTextID = 732
Values = 95 1 1 1 100 1 5
Processes = SplSOE AttckSafe Attck1 SplSOE
Checks = MvBest1 MvTrain1 ImpEngh7 SplSpdu1 ImpSlap1 TrapAvl1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RomFull SaveImp PayDay1 MoanPris2 

[computer10]
Name = Build and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 90 1 6 1 200 1 5
Processes = RoomTresr RoomLair DigEntrn DigClGold RoomHatch RoomRsrch RoomWrksh RoomTrain SplSOE AttckSafe Attck1 RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = Hates1 MvBest2 MvTrain1 ImpEngh7 AtckQck5 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc6 TrapAvl2 RoomExp5 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 DoorAtck1

[computer11]
Name = Build and defend Computer.
NameTextID = 201
TooltipTextID = 201
Values = 60 1 1 1 100 1 5
Processes = RoomTresr RoomLair RoomHatch DigEntrn RoomRsrch RoomWrksh RoomTrain SplSOE AttckSafe Attck1 RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = Hates1 MvBest1 MvTrain1 ImpEngh7 DnPrtty1 AtckQck6 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc7 TrapAvl1 RoomExp5 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom2 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 DoorAtck1

[computer12]
Name = Rapid Gold Digging Computer with Imp Army.
NameTextID = 201
TooltipTextID = 201
Values = 60 1 1 1 1 1 1
Processes = DigGrGld2 DigGrGld2 DigGrGld2 DigGrGld2
Checks = ImpEngh8 SplSpdu2 ImpSlap3 SplFly SplVsn
Events = MagcFoe

[computer13]
Name = Skirmish Defensive.
NameTextID = 201
TooltipTextID = 201
Values = 60 1 1 1 100 1 5
Processes = RoomTresr RoomLair RoomHatch DigClGold DigEntrn RoomRsrch RoomWrksh RoomTrain AttckSafe RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn Attck1
Checks = Hates1 MvBest1 MvTrain1 ImpEngh1 DnPrtty1 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc1 TrapAvl1 RoomExp1 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 MoanPris1 DoorAtck1

[computer14]
Name = Skirmish Peculiar.
NameTextID = 201
TooltipTextID = 201
Values = 60 1 1 1 100 1 5
Processes = RoomTres4 RoomTres4 RoomLair4 RoomLair4 RoomLair4 RoomHatch RoomTrain RoomRsrch DigEntrn DigClGold RoomWrksh AttckSafe RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn Attck1
Checks = Hates1 MvBest1 MvTrain1 ImpEngh1 DnPrtty1 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc1 TrapAvl1 RoomExp1 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 MoanPris3 DoorAtck1

[computer15]
Name = Skirmish Balanced.
NameTextID = 201
TooltipTextID = 201
Values = 45 1 1 1 100 1 5
Processes = RoomTresr RoomLair RoomHatch DigClGold DigEntrn RoomRsrch RoomWrksh RoomTrain RoomPrisn RoomTortr RoomBarrc RoomGrave RoomTempl RoomScavn
Checks = Hates4 MvBest1 ImpEngh1 DnPrtty2 AtckQck3 SplSpdu1 ImpSlap1 DoorAvl NeutPlc5 TrapAvl2 RoomExp5 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 MoanPris1 DoorAtck1

[computer16]
Name = Skirmish Rush.
NameTextID = 201
TooltipTextID = 201
Values = 60 1 1 2 60 1 5
Processes = DigEntrn RoomTres4 RoomLair RoomTrain DigGrGld2 RoomHatch RoomRsrch Attck1 DigGrGold RoomTres4 RoomBarrc RoomWrksh RoomTortr RoomGrave RoomPrisn RoomTempl RoomScavn 
Checks = Hates1 MvBest1 MvTrain1 ImpEngh1 AtckQck5 DnPrtty1 SplSpdu1 ImpSlap1 EnEntrn1 DoorAvl NeutPlc1 TrapAvl1 RoomExp1 Money1 Prison1 SplFly SplVsn
Events = AttkHrt1 DnBreach AttkRom1 RomFTrsr RomFLair Fight1 FghTest FghtrChk MagcFoe RoomLost RomFull SaveImp PayDay1 MoanPris1 DoorAtck1
