LEVEL_VERSION(1)

REM REVEAL_MAP_RECT(ALL_PLAYERS,194,194,500,400)

REM CUSTOM MAP SETTINGS
SET_PLAYER_COLOR(PLAYER0,orange)

SET_GAME_RULE(ImpWorkExperience,500)

SET_CREATURE_INSTANCE(MONK,2,RANGED_HEAL,2)
SET_CREATURE_INSTANCE(MONK,3,RANGED_ARMOUR,3)
SET_CREATURE_INSTANCE(MONK,8,RANGED_REBOUND,8)

SET_TEXTURE(PLAYER0,LATERITE_CAVERN)
SET_TEXTURE(PLAYER1,WINTER)
SET_TEXTURE(PLAYER2,SWAMP_SERPENT)
SET_TEXTURE(PLAYER3,DESERT_TOMB)

SET_CREATURE_CONFIGURATION(AVATAR,Health,2250) REM 3/4
SET_CREATURE_CONFIGURATION(AVATAR,Strength,75) REM 50%
SET_CREATURE_CONFIGURATION(AVATAR,Armour,60) REM 50%
SET_CREATURE_CONFIGURATION(AVATAR,Dexterity,106) REM 2/3
SET_CREATURE_CONFIGURATION(AVATAR,Defence,110) REM 2/3
SET_CREATURE_CONFIGURATION(AVATAR,Pay,675)
SET_CREATURE_CONFIGURATION(AVATAR,TrainingCost,50) REM 50%
SET_CREATURE_CONFIGURATION(AVATAR,TrainingValue,2) REM 50%
SET_CREATURE_CONFIGURATION(AVATAR,PrimaryJobs,NULL)
SET_CREATURE_PROPERTY(AVATAR,NO_IMPRISONMENT,1)
SET_CREATURE_PROPERTY(AVATAR,LORD,0)
SET_CREATURE_PROPERTY(AVATAR,ONE_OF_KIND,0)
SET_CREATURE_CONFIGURATION(MONK,Health,406) REM 125%
SET_CREATURE_PROPERTY(IMP,NO_IMPRISONMENT,1)
SET_CREATURE_PROPERTY(GHOST,NO_IMPRISONMENT,1)
SET_CREATURE_CONFIGURATION(WITCH,EntranceRoom,RESEARCH)
SET_POWER_CONFIGURATION(POWER_FLIGHT,Cost,500,1)

REM ACTIONPOINTS
REM 1 - 4: used for moving the Neutral avatar towards the inner ring of the HUMAN player

REM FLAG/TIMERS
REM FLAG0 is used for randomize starting dungeon for AI's
REM FLAG1 is used for determine the human player
REM FLAG2 is used to count the times that AI is given money.
REM FLAG3 is used for small variation on main dungeon chosen by FLAG0

REM TIMER0 (all players) is used when AI is limiting gold donation for AI when running low
REM TIMER1 is used for triggering healing Avatar (by AI keeper) in combat
REM TIMER2 is used for triggering healing Any Creature (by AI keeper) in combat
REM TIMER3 is used for reactivating healing loop after FLAG2 has paused it.
REM TIMER4 Is used to loop the check on which player is possibly controlling the middle area
REM TIMER5 is used to delay the messages about the Monk-'story'

REM BASIC MAP SETTINGS
SET_GENERATE_SPEED(350)
START_MONEY(ALL_PLAYERS,17500)
MAX_CREATURES(ALL_PLAYERS,10)

ADD_CREATURE_TO_POOL(THIEF,5)
ADD_CREATURE_TO_POOL(DWARFA,20)
ADD_CREATURE_TO_POOL(ARCHER,20)
ADD_CREATURE_TO_POOL(BARBARIAN,30)
ADD_CREATURE_TO_POOL(MONK,20)
ADD_CREATURE_TO_POOL(FAIRY,20)
ADD_CREATURE_TO_POOL(WITCH,10)
ADD_CREATURE_TO_POOL(WIZARD,20)
ADD_CREATURE_TO_POOL(GIANT,25)
ADD_CREATURE_TO_POOL(SAMURAI,17)
ADD_CREATURE_TO_POOL(TIME_MAGE,10)
ADD_CREATURE_TO_POOL(SKELETON,5)
ADD_CREATURE_TO_POOL(KNIGHT,3)

CREATURE_AVAILABLE(ALL_PLAYERS,THIEF,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DWARFA,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ARCHER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BARBARIAN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,MONK,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,FAIRY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,WITCH,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,WIZARD,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,GIANT,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SAMURAI,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TIME_MAGE,1,0)

IF(ALL_PLAYERS,GAME_TURN>=20000) REM For HUMAN player, same rooms are available from the start. This is made available after determine which player is HUMAN. For AI it is delayed to ensure script for their starting dungeon is completed.
    ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
    ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
    ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
    ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1)
    ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
    REM SET_COMPUTER_CHECKS(PLAYER0,"CHECK FOR ENOUGH IMPS",100,20,15,2,0)
    REM SET_COMPUTER_CHECKS(PLAYER1,"CHECK FOR ENOUGH IMPS",100,20,15,2,0)
    REM SET_COMPUTER_CHECKS(PLAYER2,"CHECK FOR ENOUGH IMPS",100,20,15,2,0)
    REM SET_COMPUTER_CHECKS(PLAYER3,"CHECK FOR ENOUGH IMPS",100,20,15,2,0)
ENDIF
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_POSSESS,1,1)
IF(ALL_PLAYERS,GAME_TURN>=6000)
    MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
ENDIF
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_ARMAGEDDON,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_REBOUND,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLOW,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_FLIGHT,1,0)

TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,2)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,2)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,2)

DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,2)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,2)
DOOR_AVAILABLE(ALL_PLAYERS,SECRET,1,1)

REM Check which player is human player 

IF(PLAYER0,GAME_TURN<=10) REM Check the game is starting
    IF(PLAYER0,VIEW_TYPE==0)
        SET_FLAG(PLAYER0,FLAG1,1)
    ENDIF
ENDIF

IF(PLAYER1,GAME_TURN<=10) REM Check the game is starting
    IF(PLAYER1,VIEW_TYPE==0)
        SET_FLAG(PLAYER1,FLAG1,1)
    ENDIF
ENDIF

IF(PLAYER2,GAME_TURN<=10) REM Check the game is starting
    IF(PLAYER2,VIEW_TYPE==0)
        SET_FLAG(PLAYER2,FLAG1,1)
    ENDIF
ENDIF

IF(PLAYER3,GAME_TURN<=10) REM Check the game is starting
    IF(PLAYER3,VIEW_TYPE==0)
        SET_FLAG(PLAYER3,FLAG1,1)
    ENDIF
ENDIF

REM SPECIFIC SETTINGS IF PLAYER0 = HUMAN
IF(PLAYER1,FLAG1==1)
    IF(PLAYER2,FLAG1==1)
        IF(PLAYER3,FLAG1==1)
            REM BASIC MAP SETTINGS FOR HUMAN PLAYER
            ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
            ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
            ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
            ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
            ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
            ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)
            ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)
            ROOM_AVAILABLE(PLAYER0,TORTURE,1,0)
            ROOM_AVAILABLE(PLAYER0,PRISON,1,0)
            ROOM_AVAILABLE(PLAYER0,BARRACKS,1,0)
            ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)

            MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
            MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,0)

            DOOR_AVAILABLE(PLAYER0,MIDAS,1,1)

            COMPUTER_PLAYER(PLAYER1,0)
            SET_COMPUTER_GLOBALS(PLAYER1,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A PRISON ROOM",0,3,4,4,-1)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A TORTURE ROOM",0,4,5,5,-1)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A WORKSHOP ROOM",0,6,7,8,-1)
            COMPUTER_PLAYER(PLAYER2,0)
            SET_COMPUTER_GLOBALS(PLAYER2,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A PRISON ROOM",0,4,5,4,-1)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A TORTURE ROOM",0,4,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A WORKSHOP ROOM",0,5,5,8,-1)
            COMPUTER_PLAYER(PLAYER3,0)
            SET_COMPUTER_GLOBALS(PLAYER3,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A PRISON ROOM",0,5,6,4,-1)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A TORTURE ROOM",0,3,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A WORKSHOP ROOM",0,6,6,8,-1)
            SET_COMPUTER_CHECKS(PLAYER3,"CHECK FOR ENOUGH IMPS",100,20,12,3,0)
            IF(PLAYER0,ENTRANCE==9)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER0,10)
            ENDIF
            If(PLAYER0,ENTRANCE==18)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER0,20)
            ENDIF
            IF(PLAYER0,ENTRANCE==27)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER0,25)
            ENDIF
            IF(PLAYER0,ENTRANCE==36)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER0,30)
            ENDIF
            REM SETTING HUMANS AVATAR, MONK and additional starting IMPS
            MOVE_CREATURE(PLAYER6,AVATAR,ANYWHERE,1,1,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,AVATAR,ANYWHERE,PLAYER_NEUTRAL)
            ADD_CREATURE_TO_LEVEL(PLAYER0,IMP,PLAYER0,2,5,0)
            MOVE_CREATURE(PLAYER6,MONK,ANYWHERE,1,77,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,MONK,ANYWHERE,PLAYER_NEUTRAL)
            REM MAKE SURE HUMAN HAS SOME WIZARDS FOR RESEARCH
            IF(PLAYER0,RESEARCH>0)
                CREATURE_AVAILABLE(PLAYER0,WIZARD,1,2)
            ENDIF
            REM HUMAN PLAYER SPECIFIC EVENTS
            IF_CONTROLS(PLAYER0,AVATAR==1)
                QUICK_INFORMATION(1,"Life of an Avatar is hard these days, so he decided to relax a bit more! He will only use half his potential and will train only half as efficient. For such disobedience, and as evil as you are, you did cut his wage and will pay only half for his training.")
            ENDIF
            If(PLAYER0,TOTAL_CREATURES==10)
                QUICK_INFORMATION(2,"We have reached max creature limit, but we'll need more! Find more portals for you to get behind!")
            ENDIF

            IF_CONTROLS(PLAYER0,MONK==1)
                QUICK_INFORMATION(15,"Looks like you've found a young lost Monk, normally they live in the Eastern and Western Temple.")
                SET_TIMER(PLAYER0,TIMER5)
                IF(PLAYER0,TIMER5>=900)
                    QUICK_INFORMATION(14,"The lost Monk informed you that, in this realm, Monks prayed a lot and were rewarded the knowledge of new spells which they can use to buff their allies. Of course young Monks still have to learn it and such power needs training to master.")
                ENDIF
            ENDIF

            IF(PLAYER0,ALL_DUNGEONS_DESTROYED==1)
                WIN_GAME
            ENDIF

            IF(PLAYER0,DUNGEON_DESTROYED==1)
                LOSE_GAME
            ENDIF
        ENDIF
    ENDIF
ENDIF
REM SPECIFIC SETTINGS IF PLAYER1 = HUMAN
If(PLAYER0,FLAG1==1)
    If(PLAYER2,FLAG1==1)
        IF(PLAYER3,FLAG1==1)
            REM BASIC MAP SETTINGS FOR HUMAN PLAYER
            ROOM_AVAILABLE(PLAYER1,TREASURE,1,1)
            ROOM_AVAILABLE(PLAYER1,LAIR,1,1)
            ROOM_AVAILABLE(PLAYER1,GARDEN,1,1)
            ROOM_AVAILABLE(PLAYER1,TRAINING,1,1)
            ROOM_AVAILABLE(PLAYER1,RESEARCH,1,1)
            ROOM_AVAILABLE(PLAYER1,GUARD_POST,1,0)
            ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,0)
            ROOM_AVAILABLE(PLAYER1,TORTURE,1,0)
            ROOM_AVAILABLE(PLAYER1,PRISON,1,0)
            ROOM_AVAILABLE(PLAYER1,BARRACKS,1,0)
            ROOM_AVAILABLE(PLAYER1,TEMPLE,1,0)

            MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
            MAGIC_AVAILABLE(PLAYER1,POWER_OBEY,1,0)

            DOOR_AVAILABLE(PLAYER1,MIDAS,1,1)

            COMPUTER_PLAYER(PLAYER2,0)
            SET_COMPUTER_GLOBALS(PLAYER2,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A PRISON ROOM",0,3,4,4,-1)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A TORTURE ROOM",0,4,5,5,-1)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A WORKSHOP ROOM",0,6,7,8,-1)
            COMPUTER_PLAYER(PLAYER3,0)
            SET_COMPUTER_GLOBALS(PLAYER3,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A PRISON ROOM",0,4,5,4,-1)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A TORTURE ROOM",0,4,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A WORKSHOP ROOM",0,5,5,8,-1)
            COMPUTER_PLAYER(PLAYER0,0)
            SET_COMPUTER_GLOBALS(PLAYER0,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A PRISON ROOM",0,5,6,4,-1)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A TORTURE ROOM",0,3,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A WORKSHOP ROOM",0,6,6,8,-1)
            IF(PLAYER1,ENTRANCE==9)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER1,10)
            ENDIF
            If(PLAYER1,ENTRANCE==18)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER1,20)
            ENDIF
            IF(PLAYER1,ENTRANCE==27)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER1,25)
            ENDIF
            IF(PLAYER1,ENTRANCE==36)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER1,30)
            ENDIF
            REM SETTING HUMANS AVATAR, MONK and additional starting IMPS
            MOVE_CREATURE(PLAYER6,AVATAR,ANYWHERE,1,4,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,AVATAR,ANYWHERE,PLAYER_NEUTRAL)
            ADD_CREATURE_TO_LEVEL(PLAYER1,IMP,PLAYER1,2,5,0)
            MOVE_CREATURE(PLAYER6,MONK,ANYWHERE,1,80,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,MONK,ANYWHERE,PLAYER_NEUTRAL)
            REM HUMAN PLAYER SPECIFIC EVENTS
            IF_CONTROLS(PLAYER1,AVATAR==1)
                QUICK_INFORMATION(4,"Life of an Avatar is hard these days, so he decided to relax a bit more! He will only use half his potential and will train only half as efficient. For such disobedience, and as evil as you are, you did cut his wage and will pay only half for his training.")
            ENDIF
            If(PLAYER1,TOTAL_CREATURES==10)
                QUICK_INFORMATION(5,"We have reached max creature limit, but we'll need more! Find more portals for you to get behind!")
            ENDIF

            IF_CONTROLS(PLAYER1,MONK==1)
                QUICK_INFORMATION(16,"Looks like you've found a young lost Monk, normally they live in the Eastern and Western Temple.")
                SET_TIMER(PLAYER1,TIMER5)
                IF(PLAYER1,TIMER5>=900)
                    QUICK_INFORMATION(17,"The lost Monk informed you that, in this realm, Monks prayed a lot and were rewarded the knowledge of new spells which they can use to buff their allies. Of course young Monks still have to learn it and such power needs training to master.")
                ENDIF
            ENDIF

            IF(PLAYER1,ALL_DUNGEONS_DESTROYED==1)
                WIN_GAME
            ENDIF

            IF(PLAYER1,DUNGEON_DESTROYED==1)
                LOSE_GAME
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM SPECIFIC SETTINGS IF PLAYER2 = HUMAN
IF(PLAYER1,FLAG1==1)
    IF(PLAYER0,FLAG1==1)
        IF(PLAYER3,FLAG1==1)
            REM BASIC MAP SETTINGS FOR HUMAN PLAYER
            ROOM_AVAILABLE(PLAYER2,TREASURE,1,1)
            ROOM_AVAILABLE(PLAYER2,LAIR,1,1)
            ROOM_AVAILABLE(PLAYER2,GARDEN,1,1)
            ROOM_AVAILABLE(PLAYER2,TRAINING,1,1)
            ROOM_AVAILABLE(PLAYER2,RESEARCH,1,1)
            ROOM_AVAILABLE(PLAYER2,GUARD_POST,1,0)
            ROOM_AVAILABLE(PLAYER2,WORKSHOP,1,0)
            ROOM_AVAILABLE(PLAYER2,TORTURE,1,0)
            ROOM_AVAILABLE(PLAYER2,PRISON,1,0)
            ROOM_AVAILABLE(PLAYER2,BARRACKS,1,0)
            ROOM_AVAILABLE(PLAYER2,TEMPLE,1,0)

            MAGIC_AVAILABLE(PLAYER2,POWER_IMP,1,1)
            MAGIC_AVAILABLE(PLAYER2,POWER_OBEY,1,0)

            DOOR_AVAILABLE(PLAYER2,MIDAS,1,1)

            COMPUTER_PLAYER(PLAYER3,0)
            SET_COMPUTER_GLOBALS(PLAYER3,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A PRISON ROOM",0,3,4,4,-1)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A TORTURE ROOM",0,4,5,5,-1)
            SET_COMPUTER_PROCESS(PLAYER3,"BUILD A WORKSHOP ROOM",0,6,7,8,-1)
            COMPUTER_PLAYER(PLAYER0,0)
            SET_COMPUTER_GLOBALS(PLAYER0,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A PRISON ROOM",0,4,5,4,-1)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A TORTURE ROOM",0,4,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A WORKSHOP ROOM",0,5,5,8,-1)
            COMPUTER_PLAYER(PLAYER1,0)
            SET_COMPUTER_GLOBALS(PLAYER1,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A PRISON ROOM",0,5,6,4,-1)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A TORTURE ROOM",0,3,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A WORKSHOP ROOM",0,6,6,8,-1)
            IF(PLAYER2,ENTRANCE==9)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER2,10)
            ENDIF
            If(PLAYER2,ENTRANCE==18)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER2,20)
            ENDIF
            IF(PLAYER2,ENTRANCE==27)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER2,25)
            ENDIF
            IF(PLAYER2,ENTRANCE==36)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER2,30)
            ENDIF
            REM SETTING HUMANS AVATAR, MONK and additional starting IMPS
            MOVE_CREATURE(PLAYER6,AVATAR,ANYWHERE,1,2,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,AVATAR,ANYWHERE,PLAYER_NEUTRAL)
            MOVE_CREATURE(PLAYER6,MONK,ANYWHERE,1,78,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,MONK,ANYWHERE,PLAYER_NEUTRAL)
            ADD_CREATURE_TO_LEVEL(PLAYER2,IMP,PLAYER2,2,5,0)
            REM HUMAN PLAYER SPECIFIC EVENTS
            IF_CONTROLS(PLAYER2,AVATAR==1)
                QUICK_INFORMATION(7,"Life of an Avatar is hard these days, so he decided to relax a bit more! He will only use half his potential and will train only half as efficient. For such disobedience, and as evil as you are, you did cut his wage and will pay only half for his training.")
            ENDIF
            If(PLAYER2,TOTAL_CREATURES==10)
                QUICK_INFORMATION(8,"We have reached max creature limit, but we'll need more! Find more portals for you to get behind!")
            ENDIF

            IF_CONTROLS(PLAYER2,MONK==1)
                QUICK_INFORMATION(18,"Looks like you've found a young lost Monk, normally they live in the Eastern and Western Temple.")
                SET_TIMER(PLAYER2,TIMER5)
                IF(PLAYER2,TIMER5>=900)
                    QUICK_INFORMATION(19,"The lost Monk informed you that, in this realm, Monks prayed a lot and were rewarded the knowledge of new spells which they can use to buff their allies. Of course young Monks still have to learn it and such power needs training to master.")
                ENDIF
            ENDIF

            IF(PLAYER2,ALL_DUNGEONS_DESTROYED==1)
                WIN_GAME
            ENDIF

            IF(PLAYER2,DUNGEON_DESTROYED==1)
                LOSE_GAME
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM SPECIFIC SETTINGS IF PLAYER3 = HUMAN
If(PLAYER1,FLAG1==1)
    If(PLAYER2,FLAG1==1)
        IF(PLAYER0,FLAG1==1)
            REM BASIC MAP SETTINGS FOR HUMAN PLAYER
            ROOM_AVAILABLE(PLAYER3,TREASURE,1,1)
            ROOM_AVAILABLE(PLAYER3,LAIR,1,1)
            ROOM_AVAILABLE(PLAYER3,GARDEN,1,1)
            ROOM_AVAILABLE(PLAYER3,TRAINING,1,1)
            ROOM_AVAILABLE(PLAYER3,RESEARCH,1,1)
            ROOM_AVAILABLE(PLAYER3,GUARD_POST,1,0)
            ROOM_AVAILABLE(PLAYER3,WORKSHOP,1,0)
            ROOM_AVAILABLE(PLAYER3,TORTURE,1,0)
            ROOM_AVAILABLE(PLAYER3,PRISON,1,0)
            ROOM_AVAILABLE(PLAYER3,BARRACKS,1,0)
            ROOM_AVAILABLE(PLAYER3,TEMPLE,1,0)

            MAGIC_AVAILABLE(PLAYER3,POWER_IMP,1,1)
            MAGIC_AVAILABLE(PLAYER3,POWER_OBEY,1,0)

            DOOR_AVAILABLE(PLAYER3,MIDAS,1,1)

            COMPUTER_PLAYER(PLAYER0,0)
            SET_COMPUTER_GLOBALS(PLAYER0,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A PRISON ROOM",0,3,4,4,-1)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A TORTURE ROOM",0,4,5,5,-1)
            SET_COMPUTER_PROCESS(PLAYER0,"BUILD A WORKSHOP ROOM",0,6,7,8,-1)
            COMPUTER_PLAYER(PLAYER1,0)
            SET_COMPUTER_GLOBALS(PLAYER1,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A PRISON ROOM",0,4,5,4,-1)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A TORTURE ROOM",0,4,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER1,"BUILD A WORKSHOP ROOM",0,5,5,8,-1)
            COMPUTER_PLAYER(PLAYER2,0)
            SET_COMPUTER_GLOBALS(PLAYER2,60,1,1,1,DRAWFROM(1200~1800),1,5)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A PRISON ROOM",0,5,6,4,-1)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A TORTURE ROOM",0,3,4,5,-1)
            SET_COMPUTER_PROCESS(PLAYER2,"BUILD A WORKSHOP ROOM",0,6,6,8,-1)
            IF(PLAYER3,ENTRANCE==9)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER3,10)
            ENDIF
            If(PLAYER3,ENTRANCE==18)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER3,20)
            ENDIF
            IF(PLAYER3,ENTRANCE==27)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER3,25)
            ENDIF
            IF(PLAYER3,ENTRANCE==36)
                NEXT_COMMAND_REUSABLE
                MAX_CREATURES(PLAYER3,30)
            ENDIF
            REM SETTING HUMANS AVATAR, MONK and additional starting Imps
            MOVE_CREATURE(PLAYER6,AVATAR,ANYWHERE,1,3,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,AVATAR,ANYWHERE,PLAYER_NEUTRAL)
            MOVE_CREATURE(PLAYER6,MONK,ANYWHERE,1,79,NULL)
            CHANGE_CREATURE_OWNER(PLAYER6,MONK,ANYWHERE,PLAYER_NEUTRAL)
            ADD_CREATURE_TO_LEVEL(PLAYER3,IMP,PLAYER3,2,5,0)
            REM HUMAN PLAYER SPECIFIC EVENTS
            IF_CONTROLS(PLAYER3,AVATAR==1)
                QUICK_INFORMATION(10,"Life of an Avatar is hard these days, so he decided to relax a bit more! He will only use half his potential and will train only half as efficient. For such disobedience, and as evil as you are, you did cut his wage and will pay only half for his training.")
            ENDIF
            If(PLAYER3,TOTAL_CREATURES==10)
                QUICK_INFORMATION(11,"We have reached max creature limit, but we'll need more! Find more portals for you to get behind!")
            ENDIF

            IF_CONTROLS(PLAYER3,MONK==1)
                QUICK_INFORMATION(20,"Looks like you've found a young lost Monk, normally they live in the Eastern and Western Temple.")
                SET_TIMER(PLAYER3,TIMER5)
                IF(PLAYER3,TIMER5>=900)
                    QUICK_INFORMATION(21,"The lost Monk informed you that, in this realm, Monks prayed a lot and were rewarded the knowledge of new spells which they can use to buff their allies. Of course young Monks still have to learn it and such power needs training to master.")
                ENDIF
            ENDIF

            IF(PLAYER3,ALL_DUNGEONS_DESTROYED==1)
                WIN_GAME
            ENDIF

            IF(PLAYER3,DUNGEON_DESTROYED==1)
                LOSE_GAME
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM HUMAN PLAYER INDEPENDANT EVENTS
QUICK_OBJECTIVE(13,"Bring your drinks and join us for a round of darts, Dungeon Keeper style of course! Maybe you should score a treble right from the start?")

REM The flag is used to randomize the 3 AI starting dungeons, so it isn't always the same AI that has the same starting dungeon.
REM 1 - Early Temple or Early Torture
REM 2 - Early Prison / Large Workshop (ONLY PLAYER1 AND PLAYER3, due to script commands limits)
REM 3 - Large Training / Normal Workshop

SET_FLAG(PLAYER0,FLAG0,DRAWFROM(1,3))
SET_FLAG(PLAYER0,FLAG3,DRAWFROM(1,2))
SET_FLAG(PLAYER1,FLAG0,DRAWFROM(1~3))
SET_FLAG(PLAYER1,FLAG3,DRAWFROM(1,2))
SET_FLAG(PLAYER2,FLAG0,DRAWFROM(1,3))
SET_FLAG(PLAYER2,FLAG3,DRAWFROM(1,2))
SET_FLAG(PLAYER3,FLAG0,DRAWFROM(1~3))
SET_FLAG(PLAYER3,FLAG3,DRAWFROM(1,2))

REM SETTINGS AND PREBUILD DUNGEON IF PLAYER0 = AI
IF(PLAYER0,FLAG1==1)
    REM Set FLEE on to increase the survival chance of strong units in the long run
    SET_CREATURE_TENDENCIES(PLAYER0,FLEE,1)
    IF(PLAYER0,ENTRANCE==9)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER0,12)
    ENDIF
    If(PLAYER0,ENTRANCE==18)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER0,22)
    ENDIF
    IF(PLAYER0,ENTRANCE==27)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER0,27)
    ENDIF
    IF(PLAYER0,ENTRANCE==36)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER0,32)
    ENDIF
    ADD_GOLD_TO_PLAYER(PLAYER0,12500)
    If(PLAYER0,GAME_TURN>=DRAWFROM(8500~11000))
        IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==0)
            ADD_OBJECT_TO_LEVEL(SPELLBOOK_HEAL,PLAYER0,0)
        ENDIF
    ENDIF
    REM A first dig for gold is set in the outer ring to let him dig safely and to decrease the chance of an early breakout
    IF(ALL_PLAYERS,GAME_TURN>=100)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,57,61)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,61,65)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,69,73)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,77,81)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,85,89)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,93,97)
    ENDIF
    REM AVATAR AND STARTING FORCE 
    REM Dig is set towards where the Avatar should have been, so it is possible to assume/know for human player that the AI did find his Avatar and it feels organic.
    ADD_CREATURE_TO_LEVEL(PLAYER0,GIANT,PLAYER0,1,6,0)
    ADD_CREATURE_TO_LEVEL(PLAYER0,SAMURAI,PLAYER0,1,1,0)
    IF(ALL_PLAYERS,GAME_TURN>=DRAWFROM(1900~2500))
        ADD_CREATURE_TO_LEVEL(PLAYER0,AVATAR,PLAYER0,1,2,0)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,5,9)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,13,17)
        COMPUTER_DIG_TO_LOCATION(PLAYER0,21,25)
    ENDIF
    REM Ensures AI doesn't run out of money
    SET_TIMER(PLAYER0,TIMER0)
    SET_TIMER(PLAYER0,TIMER4)
    IF_SLAB_OWNER(62,59,PLAYER0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER4) REM TIMER4 stays at 0 as long player is in control of the slab
    ENDIF
    IF(PLAYER0,MONEY<5000)
        IF(PLAYER0,TIMER0>1200)
            IF(PLAYER0,TIMER4>=10) REM Doesn't is in center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER0,10000)
            ENDIF
            IF(PLAYER0,TIMER4<10) REM is active in the center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER0,25000)
            ENDIF
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,IMP,PLAYER0,2,3,0)
            IF(PLAYER0,FLAG2==0) REM TIMER 3 only triggers here if healing loop is active, else it is used in the cooldown section of the healing loop
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER0,TIMER3)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER0,FLAG2,2)
            ENDIF
            IF(PLAYER0,FLAG2>0)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER0,FLAG2,2)
            ENDIF
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER0)
        ENDIF
    ENDIF
    REM HEALING LOOP (AI uses Keeper spel 'Heal')
    IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE>=1)
        SET_FLAG(PLAYER0,FLAG2,0)
        SET_TIMER(PLAYER0,TIMER1)
        SET_TIMER(PLAYER0,TIMER2)
        IF(PLAYER0,FLAG2==0) REM Healing loop ACTIVE: AI didn't ran out of money (=money donation wasn't activated)
            IF(PLAYER0,TIMER1>=200)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER0,AVATAR,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER0,TIMER1)
            ENDIF
            IF(PLAYER0,TIMER2>=225)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER0,ANY_CREATURE,MOST_EXP_FIGHTING,PLAYER0,POWER_HEAL_CREATURE,7,0)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER0,TIMER2)
            ENDIF
        ENDIF
        IF(PLAYER0,FLAG2>0) REM Healing loop COOLDOWN: AI did ran out of money (=AI was giving money), using heal as keeper is paused due to 'lack of money'. COOLDOWN CAN STACK!!
            IF(PLAYER0,TIMER3>=750)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER0,FLAG2,-1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER0,TIMER3)
            ENDIF
        ENDIF
    ENDIF
    REM PREBUILD DUNGEON
    IF(PLAYER0,FLAG0==1)
        REM FLOOR
        CHANGE_SLAB_TYPE(52,17,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,23,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,30,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,28,PRETTY_PATH)
        CHANGE_SLAB_TYPE(54,35,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,33,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,34,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,35,PRETTY_PATH)
        CHANGE_SLAB_TYPE(46,18,PRETTY_PATH)

        REM TREASURE ROOM
        CHANGE_SLAB_TYPE(47,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(48,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,15,TREASURY_AREA)
        CHANGE_SLAB_TYPE(50,15,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,15,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(50,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(48,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,17,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(49,17,PLAYER0)
        CHANGE_SLAB_TYPE(51,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,36,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,36,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,36,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,35,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(52,35,PLAYER0)

        REM HATCHERY
        CHANGE_SLAB_TYPE(57,21,HATCHERY)
        CHANGE_SLAB_TYPE(56,21,HATCHERY)
        CHANGE_SLAB_TYPE(55,21,HATCHERY)
        CHANGE_SLAB_TYPE(54,21,HATCHERY)
        CHANGE_SLAB_TYPE(53,21,HATCHERY)
        CHANGE_SLAB_TYPE(53,22,HATCHERY)
        CHANGE_SLAB_TYPE(53,23,HATCHERY)
        CHANGE_SLAB_TYPE(53,24,HATCHERY)
        CHANGE_SLAB_TYPE(53,25,HATCHERY)
        CHANGE_SLAB_TYPE(53,26,HATCHERY)
        CHANGE_SLAB_TYPE(53,27,HATCHERY)
        CHANGE_SLAB_TYPE(54,27,HATCHERY)
        CHANGE_SLAB_TYPE(55,27,HATCHERY)
        CHANGE_SLAB_TYPE(56,27,HATCHERY)
        CHANGE_SLAB_TYPE(57,27,HATCHERY)
        CHANGE_SLAB_TYPE(57,26,HATCHERY)
        CHANGE_SLAB_TYPE(57,25,HATCHERY)
        CHANGE_SLAB_TYPE(57,24,HATCHERY)
        CHANGE_SLAB_TYPE(57,23,HATCHERY)
        CHANGE_SLAB_TYPE(57,22,HATCHERY)
        CHANGE_SLAB_TYPE(56,22,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(56,22,PLAYER0)

        REM LAIR
        CHANGE_SLAB_TYPE(51,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(46,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,22,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,23,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,24,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(46,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,24,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,23,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,22,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,22,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(50,22,PLAYER0)

        REM TRAINING
        CHANGE_SLAB_TYPE(58,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(56,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(55,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,30,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,31,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(55,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(56,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,31,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,30,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,30,TRAINING_AREA,MATCH)
        CHANGE_SLAB_OWNER(57,30,PLAYER0)

        REM LIBRARY
        CHANGE_SLAB_TYPE(48,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(49,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(50,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,28,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,29,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,30,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(50,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(49,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,30,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,29,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,28,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(50,31,BOOK_SHELVES,MATCH)
        CHANGE_SLAB_OWNER(50,31,PLAYER0)
        IF(PLAYER0,FLAG3==1)
            CREATURE_AVAILABLE(PLAYER0,MONK,1,3)

            REM FLOOR
            CHANGE_SLAB_TYPE(55,36,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(53,15,GUARD_AREA)
            CHANGE_SLAB_TYPE(53,19,GUARD_AREA)
            CHANGE_SLAB_TYPE(57,15,GUARD_AREA)
            CHANGE_SLAB_TYPE(57,19,GUARD_AREA)

            REM TEMPLE
            CHANGE_SLAB_TYPE(43,17,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(44,17,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(45,17,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(45,18,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(45,19,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(44,19,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(43,19,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(43,18,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(44,18,TEMPLE_POOL)
            CHANGE_SLAB_OWNER(44,18,PLAYER0)
        ENDIF
        IF(PLAYER0,FLAG3==2)
            REM FLOOR
            CHANGE_SLAB_TYPE(56,34,PRETTY_PATH)
            CHANGE_SLAB_TYPE(58,35,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(57,34,GUARD_AREA)
            CHANGE_SLAB_TYPE(58,34,GUARD_AREA)
            CHANGE_SLAB_TYPE(59,34,GUARD_AREA)
            CHANGE_SLAB_OWNER(59,34,PLAYER0)

            REM TORTURE
            CHANGE_SLAB_TYPE(43,17,TORTURE_AREA)
            CHANGE_SLAB_TYPE(44,17,TORTURE_AREA)
            CHANGE_SLAB_TYPE(45,17,TORTURE_AREA)
            CHANGE_SLAB_TYPE(45,18,TORTURE_AREA)
            CHANGE_SLAB_TYPE(45,19,TORTURE_AREA)
            CHANGE_SLAB_TYPE(44,19,TORTURE_AREA)
            CHANGE_SLAB_TYPE(43,19,TORTURE_AREA)
            CHANGE_SLAB_TYPE(43,18,TORTURE_AREA)
            CHANGE_SLAB_TYPE(44,18,TORTURE_AREA)
            CHANGE_SLAB_OWNER(44,18,PLAYER0)
        ENDIF
    ENDIF
    IF(PLAYER0,FLAG0==3)
        REM FLOOR
        CHANGE_SLAB_TYPE(52,17,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(48,18,PRETTY_PATH)
        CHANGE_SLAB_TYPE(50,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,23,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,25,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,30,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,31,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,32,PRETTY_PATH)
        CHANGE_SLAB_TYPE(50,32,PRETTY_PATH)
        CHANGE_SLAB_TYPE(54,32,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,36,PRETTY_PATH)

        REM TREASURY
        CHANGE_SLAB_TYPE(44,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(45,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(46,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(46,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(45,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(44,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(44,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(45,18,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(45,18,PLAYER0)
        CHANGE_SLAB_TYPE(51,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,33,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,33,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,32,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(52,32,PLAYER0)

        REM LAIR
        CHANGE_SLAB_TYPE(49,15,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,15,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,15,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,16,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,17,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,18,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,19,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,19,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,19,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,18,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,17,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,16,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,16,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(50,16,PLAYER0)
        CHANGE_SLAB_TYPE(47,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,28,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,28,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,27,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(48,27,PLAYER0)

        REM HATCHERY
        CHANGE_SLAB_TYPE(45,21,HATCHERY)
        CHANGE_SLAB_TYPE(46,21,HATCHERY)
        CHANGE_SLAB_TYPE(47,21,HATCHERY)
        CHANGE_SLAB_TYPE(48,21,HATCHERY)
        CHANGE_SLAB_TYPE(49,21,HATCHERY)
        CHANGE_SLAB_TYPE(50,21,HATCHERY)
        CHANGE_SLAB_TYPE(51,21,HATCHERY)
        CHANGE_SLAB_TYPE(51,22,HATCHERY)
        CHANGE_SLAB_TYPE(51,23,HATCHERY)
        CHANGE_SLAB_TYPE(51,24,HATCHERY)
        CHANGE_SLAB_TYPE(50,24,HATCHERY)
        CHANGE_SLAB_TYPE(49,24,HATCHERY)
        CHANGE_SLAB_TYPE(48,24,HATCHERY)
        CHANGE_SLAB_TYPE(47,24,HATCHERY)
        CHANGE_SLAB_TYPE(46,24,HATCHERY)
        CHANGE_SLAB_TYPE(45,24,HATCHERY)
        CHANGE_SLAB_TYPE(45,23,HATCHERY)
        CHANGE_SLAB_TYPE(45,22,HATCHERY)
        CHANGE_SLAB_TYPE(46,22,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(46,22,PLAYER0)

        REM TRAINING
        CHANGE_SLAB_TYPE(53,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(55,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(56,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,22,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,23,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,24,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,24,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,23,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,22,TRAINING_AREA)

        REM LIBRARY
        CHANGE_SLAB_TYPE(59,30,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,33,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(58,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(57,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(56,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,33,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,30,BOOK_SHELVES)

        REM GUARD ROOM
        CHANGE_SLAB_TYPE(51,37,GUARD_AREA)
        CHANGE_SLAB_TYPE(52,37,GUARD_AREA)
        CHANGE_SLAB_TYPE(53,37,GUARD_AREA)
        CHANGE_SLAB_OWNER(53,37,PLAYER0)

        IF(PLAYER0,FLAG3==1)
            IF(PLAYER0,KNIGHT==0)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER0,KNIGHT,1,1)
            ENDIF
            IF(PLAYER0,KNIGHT==1)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER0,KNIGHT,0,0)
            ENDIF
            REM FLOOR
            CHANGE_SLAB_TYPE(52,26,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(58,25,TRAINING_AREA)
            CHANGE_SLAB_TYPE(58,26,TRAINING_AREA)
            CHANGE_SLAB_TYPE(53,26,TRAINING_AREA)
            CHANGE_SLAB_TYPE(53,25,TRAINING_AREA)
            CHANGE_SLAB_TYPE(58,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(57,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(56,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(55,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(54,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(53,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(54,22,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(54,22,PLAYER0)

            REM LIBRARY
            CHANGE_SLAB_TYPE(55,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(56,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(57,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(58,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(59,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(56,33,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(56,33,PLAYER0)
        ENDIF

        IF(PLAYER0,FLAG3==2)
            CREATURE_AVAILABLE(PLAYER0,DWARFA,1,4)
            REM FLOOR
            CHANGE_SLAB_TYPE(52,27,PRETTY_PATH)
            CHANGE_SLAB_TYPE(55,25,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(54,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(55,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(56,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(57,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(54,22,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(54,22,PLAYER0)

            REM LIBRARY
            CHANGE_SLAB_TYPE(56,30,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(57,30,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(58,30,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(56,33,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(56,33,PLAYER0)

            REM WORKSHOP
            CHANGE_SLAB_TYPE(53,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(54,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(55,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(56,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(57,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(58,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(58,27,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(58,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(57,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(56,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(55,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(54,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(53,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(53,27,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(54,27,WORKSHOP_AREA,MATCH)
            CHANGE_SLAB_OWNER(54,27,PLAYER0)
        ENDIF
    ENDIF

    REM FORTIFIES  DUNGEON
    IF(PLAYER0,GAME_TURN>150)
        MAKE_SAFE(PLAYER0)
    ENDIF

    REM PRISON SETTINGS
    REM Allowing AI to gather numbers by prison, but there is a limit to prevent AI going WILD.
    REM It is theoretically possible for the AI, even without having sufficient portals to attract creatures, to have high numbers through prison.
    REM gives a second fortication to ensure the prison (and dungeon) is efficient
    IF(PLAYER0,PRISON>2)
        SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,1) REM IMRISON ON whenever AI builds prison even if build late and AI has already bigger numbers
        IF(PLAYER0,TOTAL_CREATURES>=40)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,0) REM Stops IMPRISON
        ENDIF
        IF(PLAYER0,TOTAL_CREATURES<=35)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,1) REM Reactivates IMPRISON when numbers are getting lower.
        ENDIF
        MAKE_SAFE(PLAYER0)
    ENDIF
ENDIF

REM SETTINGS AND PREBUILD DUNGEON IF PLAYER1 = AI
IF(PLAYER1,FLAG1==1)
    SET_CREATURE_TENDENCIES(PLAYER1,FLEE,1)

    IF(PLAYER1,ENTRANCE==9)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER1,12)
    ENDIF
    If(PLAYER1,ENTRANCE==18)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER1,22)
    ENDIF
    IF(PLAYER1,ENTRANCE==27)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER1,27)
    ENDIF
    IF(PLAYER1,ENTRANCE==36)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER1,32)
    ENDIF
    ADD_GOLD_TO_PLAYER(PLAYER1,12500)
    If(PLAYER1,GAME_TURN>=DRAWFROM(8500~11000))
        IF_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE==0)
            ADD_OBJECT_TO_LEVEL(SPELLBOOK_HEAL,PLAYER1,0)
        ENDIF
    ENDIF
    REM A first dig for gold is set in the outer ring to let him dig safely and to decrease the chance of an early breakout
    IF(ALL_PLAYERS,GAME_TURN>=100)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,60,64)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,64,68)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,72,76)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,80,84)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,88,92)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,96,100)
    ENDIF
    REM AVATAR AND STARTING FORCE 
    REM Dig is set towards where the Avatar should have been, so it is possible to assume/know for human player that the AI did find his Avatar and it feels organic.
    ADD_CREATURE_TO_LEVEL(PLAYER1,GIANT,PLAYER1,1,6,0)
    ADD_CREATURE_TO_LEVEL(PLAYER1,SAMURAI,PLAYER1,1,1,0)
    IF(ALL_PLAYERS,GAME_TURN>=DRAWFROM(1900~2500))
        ADD_CREATURE_TO_LEVEL(PLAYER1,AVATAR,PLAYER1,1,2,0)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,8,12)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,16,20)
        COMPUTER_DIG_TO_LOCATION(PLAYER1,24,28)
    ENDIF
    REM Ensures AI doesn't run out of money
    SET_TIMER(PLAYER1,TIMER0)
    SET_TIMER(PLAYER1,TIMER4)

    IF_SLAB_OWNER(67,70,PLAYER1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1,TIMER4) REM TIMER4 stays at 0 as long player is in control of the slab
    ENDIF
    IF(PLAYER1,MONEY<5000)
        IF(PLAYER1,TIMER0>1200)
            IF(PLAYER1,TIMER4>=10) REM Doesn't is in center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER1,10000)
            ENDIF
            IF(PLAYER1,TIMER4<10) REM is active in the center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER1,25000)
            ENDIF
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER1,IMP,PLAYER1,2,3,0)
            IF(PLAYER1,FLAG2==0) REM TIMER 3 only triggers here if healing loop is active, else it is used in the cooldown section of the healing loop
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1,TIMER3)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER1,FLAG2,2)
            ENDIF
            IF(PLAYER1,FLAG2>0)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER1,FLAG2,2)
            ENDIF
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER1,TIMER0)
        ENDIF
    ENDIF
    REM HEALING LOOP (AI uses Keeper spel 'Heal')
    IF_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE>=1)
        SET_FLAG(PLAYER1,FLAG2,0)
        SET_TIMER(PLAYER1,TIMER1)
        SET_TIMER(PLAYER1,TIMER2)
        IF(PLAYER1,FLAG2==0) REM Healing loop ACTIVE: AI didn't ran out of money (=money donation wasn't activated)
            IF(PLAYER1,TIMER1>=200)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,AVATAR,ANYWHERE,PLAYER1,POWER_HEAL_CREATURE,9,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1,TIMER1)
            ENDIF
            IF(PLAYER1,TIMER2>=225)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,MOST_EXP_FIGHTING,PLAYER1,POWER_HEAL_CREATURE,7,0)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1,TIMER2)
            ENDIF
        ENDIF
        IF(PLAYER1,FLAG2>0) REM Healing loop COOLDOWN: AI did ran out of money (=AI was giving money), using heal as keeper is paused due to 'lack of money'. COOLDOWN CAN STACK!!
            IF(PLAYER1,TIMER3>=750)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER1,FLAG2,-1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1,TIMER3)
            ENDIF
        ENDIF
    ENDIF
    REM PREBUILD DUNGEON
    IF(PLAYER1,FLAG0==1)
        REM FLOOR
        CHANGE_SLAB_TYPE(77,112,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,106,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,101,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,99,PRETTY_PATH)
        CHANGE_SLAB_TYPE(75,94,PRETTY_PATH)

        CHANGE_SLAB_TYPE(74,94,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,95,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,96,PRETTY_PATH)
        CHANGE_SLAB_TYPE(83,111,PRETTY_PATH)

        REM TREASURE ROOM
        CHANGE_SLAB_TYPE(82,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(81,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,114,TREASURY_AREA)
        CHANGE_SLAB_TYPE(79,114,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,114,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(79,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(81,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,112,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(80,112,PLAYER1)

        CHANGE_SLAB_TYPE(78,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,93,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,93,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,93,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,94,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(77,94,PLAYER1)

        REM HATCHERY
        CHANGE_SLAB_TYPE(76,108,HATCHERY)
        CHANGE_SLAB_TYPE(75,108,HATCHERY)
        CHANGE_SLAB_TYPE(74,108,HATCHERY)
        CHANGE_SLAB_TYPE(73,108,HATCHERY)
        CHANGE_SLAB_TYPE(72,108,HATCHERY)
        CHANGE_SLAB_TYPE(72,107,HATCHERY)
        CHANGE_SLAB_TYPE(72,106,HATCHERY)
        CHANGE_SLAB_TYPE(72,105,HATCHERY)
        CHANGE_SLAB_TYPE(72,104,HATCHERY)
        CHANGE_SLAB_TYPE(72,103,HATCHERY)
        CHANGE_SLAB_TYPE(72,102,HATCHERY)
        CHANGE_SLAB_TYPE(73,102,HATCHERY)
        CHANGE_SLAB_TYPE(74,102,HATCHERY)
        CHANGE_SLAB_TYPE(75,102,HATCHERY)
        CHANGE_SLAB_TYPE(76,102,HATCHERY)
        CHANGE_SLAB_TYPE(76,103,HATCHERY)
        CHANGE_SLAB_TYPE(76,104,HATCHERY)
        CHANGE_SLAB_TYPE(76,105,HATCHERY)
        CHANGE_SLAB_TYPE(76,106,HATCHERY)
        CHANGE_SLAB_TYPE(76,107,HATCHERY)
        CHANGE_SLAB_TYPE(75,107,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(75,107,PLAYER1)

        REM LAIR
        CHANGE_SLAB_TYPE(78,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(83,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,105,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,106,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,107,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(83,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,107,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,106,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,105,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,105,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,105,PLAYER1)


        REM TRAINING
        CHANGE_SLAB_TYPE(71,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(73,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(74,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,99,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,98,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(74,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(73,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,98,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,99,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,99,TRAINING_AREA,MATCH)
        CHANGE_SLAB_OWNER(72,99,PLAYER1)

        REM LIBRARY
        CHANGE_SLAB_TYPE(78,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,101,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,100,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(79,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(80,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,100,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,101,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(80,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(79,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(79,101,BOOK_SHELVES,MATCH)
        CHANGE_SLAB_OWNER(79,101,PLAYER1)

        IF(PLAYER1,FLAG3==1)
            CREATURE_AVAILABLE(PLAYER1,MONK,1,3)
            REM FLOOR
            CHANGE_SLAB_TYPE(74,93,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(72,110,GUARD_AREA)
            CHANGE_SLAB_TYPE(76,110,GUARD_AREA)
            CHANGE_SLAB_TYPE(72,114,GUARD_AREA)
            CHANGE_SLAB_TYPE(76,114,GUARD_AREA)

            REM TEMPLE
            CHANGE_SLAB_TYPE(84,110,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(85,110,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(86,110,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(86,111,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(86,112,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(85,112,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(84,112,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(84,111,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(85,111,TEMPLE_POOL)
            CHANGE_SLAB_OWNER(85,111,PLAYER1)
        ENDIF

        IF(PLAYER1,FLAG3==2)
            REM FLOOR
            CHANGE_SLAB_TYPE(73,95,PRETTY_PATH)
            CHANGE_SLAB_TYPE(71,94,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(70,95,GUARD_AREA)
            CHANGE_SLAB_TYPE(71,95,GUARD_AREA)
            CHANGE_SLAB_TYPE(72,95,GUARD_AREA)
            CHANGE_SLAB_OWNER(72,95,PLAYER1)

            REM TORTURE
            CHANGE_SLAB_TYPE(84,110,TORTURE_AREA)
            CHANGE_SLAB_TYPE(85,110,TORTURE_AREA)
            CHANGE_SLAB_TYPE(86,110,TORTURE_AREA)
            CHANGE_SLAB_TYPE(86,111,TORTURE_AREA)
            CHANGE_SLAB_TYPE(86,112,TORTURE_AREA)
            CHANGE_SLAB_TYPE(85,112,TORTURE_AREA)
            CHANGE_SLAB_TYPE(84,112,TORTURE_AREA)
            CHANGE_SLAB_TYPE(84,111,TORTURE_AREA)
            CHANGE_SLAB_TYPE(85,111,TORTURE_AREA)
            CHANGE_SLAB_OWNER(85,111,PLAYER1)
        ENDIF
    ENDIF
    IF(PLAYER1,FLAG0==2)
        REM FLOOR
        CHANGE_SLAB_TYPE(77,112,PRETTY_PATH)
        CHANGE_SLAB_TYPE(58,112,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(76,106,PRETTY_PATH)
        CHANGE_SLAB_TYPE(79,103,PRETTY_PATH)
        CHANGE_SLAB_TYPE(73,100,PRETTY_PATH)
        CHANGE_SLAB_TYPE(71,96,PRETTY_PATH)
        CHANGE_SLAB_TYPE(71,94,PRETTY_PATH)
        CHANGE_SLAB_TYPE(82,111,PRETTY_PATH)

        REM TREASURY
        CHANGE_SLAB_TYPE(83,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(86,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(86,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(86,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,111,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(84,111,PLAYER1)
        CHANGE_SLAB_TYPE(70,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(71,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,99,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,100,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,101,TREASURY_AREA)
        CHANGE_SLAB_TYPE(71,101,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,101,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,100,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,99,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(71,98,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(71,98,PLAYER1)

        REM LAIR

        CHANGE_SLAB_TYPE(81,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,101,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(77,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(76,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(75,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(74,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(74,101,LAIR_AREA)
        CHANGE_SLAB_TYPE(74,100,LAIR_AREA)

        REM HATCHERY
        CHANGE_SLAB_TYPE(77,104,HATCHERY)
        CHANGE_SLAB_TYPE(78,104,HATCHERY)
        CHANGE_SLAB_TYPE(79,104,HATCHERY)
        CHANGE_SLAB_TYPE(80,104,HATCHERY)
        CHANGE_SLAB_TYPE(81,104,HATCHERY)
        CHANGE_SLAB_TYPE(82,104,HATCHERY)
        CHANGE_SLAB_TYPE(82,105,HATCHERY)
        CHANGE_SLAB_TYPE(82,106,HATCHERY)
        CHANGE_SLAB_TYPE(82,107,HATCHERY)
        CHANGE_SLAB_TYPE(82,108,HATCHERY)
        CHANGE_SLAB_TYPE(81,108,HATCHERY)
        CHANGE_SLAB_TYPE(80,108,HATCHERY)
        CHANGE_SLAB_TYPE(79,108,HATCHERY)
        CHANGE_SLAB_TYPE(78,108,HATCHERY)
        CHANGE_SLAB_TYPE(77,108,HATCHERY)
        CHANGE_SLAB_TYPE(77,107,HATCHERY)
        CHANGE_SLAB_TYPE(77,106,HATCHERY)
        CHANGE_SLAB_TYPE(77,105,HATCHERY)
        CHANGE_SLAB_TYPE(78,105,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(78,105,PLAYER1)

        REM TRAINING
        CHANGE_SLAB_TYPE(78,110,TRAINING_AREA)
        CHANGE_SLAB_TYPE(79,110,TRAINING_AREA)
        CHANGE_SLAB_TYPE(80,110,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,110,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,111,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,112,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,113,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,114,TRAINING_AREA)
        CHANGE_SLAB_TYPE(80,114,TRAINING_AREA)
        CHANGE_SLAB_TYPE(79,114,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,114,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,113,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,112,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,111,TRAINING_AREA)
        CHANGE_SLAB_TYPE(79,111,TRAINING_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,111,PLAYER1)

        REM LIBRARY
        CHANGE_SLAB_TYPE(71,104,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,104,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(73,104,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,104,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,104,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,105,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,106,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,107,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,108,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,108,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(73,108,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,108,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,108,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,107,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,106,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,105,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,105,BOOK_SHELVES,MATCH)
        CHANGE_SLAB_OWNER(72,105,PLAYER1)

        REM GUARD POST
        CHANGE_SLAB_TYPE(70,95,GUARD_AREA)
        CHANGE_SLAB_TYPE(71,95,GUARD_AREA)
        CHANGE_SLAB_TYPE(72,95,GUARD_AREA)
        CHANGE_SLAB_OWNER(72,95,PLAYER1)

        IF(PLAYER1,FLAG3==1)
            IF(PLAYER1,SKELETON<=5)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER1,SKELETON,1,4)
            ENDIF
            IF(PLAYER1,SKELETON>=5)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER1,SKELETON,0,0)
            ENDIF

            REM FLOOR
            CHANGE_SLAB_TYPE(73,95,PRETTY_PATH)

            REM LAIR
            CHANGE_SLAB_TYPE(74,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(75,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(76,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(77,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(78,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(79,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(80,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(81,98,LAIR_AREA)
            CHANGE_SLAB_TYPE(81,99,LAIR_AREA)
            CHANGE_SLAB_TYPE(74,99,LAIR_AREA)
            CHANGE_SLAB_TYPE(75,101,LAIR_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,101,PLAYER1)

            REM PRISON
            CHANGE_SLAB_TYPE(74,94,PRISON_AREA)
            CHANGE_SLAB_TYPE(75,94,PRISON_AREA)
            CHANGE_SLAB_TYPE(76,94,PRISON_AREA)
            CHANGE_SLAB_TYPE(77,93,PRISON_AREA)
            CHANGE_SLAB_TYPE(78,93,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,93,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,94,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,95,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,96,PRISON_AREA)
            CHANGE_SLAB_TYPE(78,96,PRISON_AREA)
            CHANGE_SLAB_TYPE(77,96,PRISON_AREA)
            CHANGE_SLAB_TYPE(76,96,PRISON_AREA)
            CHANGE_SLAB_TYPE(75,96,PRISON_AREA)
            CHANGE_SLAB_TYPE(74,96,PRISON_AREA)
            CHANGE_SLAB_TYPE(74,95,PRISON_AREA)
            CHANGE_SLAB_TYPE(75,95,PRISON_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,95,PLAYER1)
        ENDIF

        IF(PLAYER1,FLAG3==2)
            CREATURE_AVAILABLE(PLAYER1,ARCHER,1,4)
            REM FLOOR
            CHANGE_SLAB_TYPE(83,106,PRETTY_PATH)
            CHANGE_SLAB_TYPE(77,99,PRETTY_PATH)
            REM LAIR
            CHANGE_SLAB_TYPE(75,100,LAIR_AREA)
            CHANGE_SLAB_TYPE(76,100,LAIR_AREA)
            CHANGE_SLAB_TYPE(77,100,LAIR_AREA)
            CHANGE_SLAB_TYPE(78,100,LAIR_AREA)
            CHANGE_SLAB_TYPE(79,100,LAIR_AREA)
            CHANGE_SLAB_TYPE(80,100,LAIR_AREA)
            CHANGE_SLAB_TYPE(75,101,LAIR_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,101,PLAYER1)
            CHANGE_SLAB_TYPE(84,105,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,105,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,106,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,107,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,108,LAIR_AREA)
            CHANGE_SLAB_TYPE(84,108,LAIR_AREA)
            CHANGE_SLAB_TYPE(84,107,LAIR_AREA)
            CHANGE_SLAB_TYPE(84,106,LAIR_AREA)
            CHANGE_SLAB_OWNER(84,105,PLAYER1)
            REM WORKSHOP
            CHANGE_SLAB_TYPE(74,94,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,94,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,94,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(77,94,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(78,94,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(79,94,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(80,95,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(80,96,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(81,97,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(81,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(80,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(79,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(78,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(77,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,98,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,97,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,96,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,95,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,95,WORKSHOP_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,95,PLAYER1)
        ENDIF
    ENDIF
    IF(PLAYER1,FLAG0==3)
        REM FLOOR
        CHANGE_SLAB_TYPE(77,112,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(81,111,PRETTY_PATH)
        CHANGE_SLAB_TYPE(79,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,106,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,104,PRETTY_PATH)
        CHANGE_SLAB_TYPE(75,97,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,93,PRETTY_PATH)
        CHANGE_SLAB_TYPE(79,97,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,97,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,98,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,99,PRETTY_PATH)

        REM TREASURY
        CHANGE_SLAB_TYPE(82,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,111,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(83,111,PLAYER1)
        CHANGE_SLAB_TYPE(78,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,96,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,96,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,95,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(77,95,PLAYER1)

        REM LAIR
        CHANGE_SLAB_TYPE(78,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,101,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,101,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,101,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,101,PLAYER1)
        CHANGE_SLAB_TYPE(78,110,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,110,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,110,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,111,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,112,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,113,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,114,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,114,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,114,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,113,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,112,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,111,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,111,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,111,PLAYER1)

        REM HATCHERY
        CHANGE_SLAB_TYPE(78,105,HATCHERY)
        CHANGE_SLAB_TYPE(79,105,HATCHERY)
        CHANGE_SLAB_TYPE(80,105,HATCHERY)
        CHANGE_SLAB_TYPE(81,105,HATCHERY)
        CHANGE_SLAB_TYPE(82,105,HATCHERY)
        CHANGE_SLAB_TYPE(83,105,HATCHERY)
        CHANGE_SLAB_TYPE(84,105,HATCHERY)
        CHANGE_SLAB_TYPE(84,106,HATCHERY)
        CHANGE_SLAB_TYPE(84,107,HATCHERY)
        CHANGE_SLAB_TYPE(84,108,HATCHERY)
        CHANGE_SLAB_TYPE(83,108,HATCHERY)
        CHANGE_SLAB_TYPE(82,108,HATCHERY)
        CHANGE_SLAB_TYPE(81,108,HATCHERY)
        CHANGE_SLAB_TYPE(80,108,HATCHERY)
        CHANGE_SLAB_TYPE(79,108,HATCHERY)
        CHANGE_SLAB_TYPE(78,108,HATCHERY)
        CHANGE_SLAB_TYPE(78,107,HATCHERY)
        CHANGE_SLAB_TYPE(78,106,HATCHERY)
        CHANGE_SLAB_TYPE(79,106,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(79,106,PLAYER1)

        REM TRAINING ROOM
        CHANGE_SLAB_TYPE(76,105,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,106,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,107,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(74,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(73,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,107,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,106,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,105,TRAINING_AREA)

        REM LIBRARY
        CHANGE_SLAB_TYPE(70,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(73,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,96,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,99,BOOK_SHELVES)

        CHANGE_SLAB_TYPE(70,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,96,BOOK_SHELVES)

        REM GUARD POST
        CHANGE_SLAB_TYPE(76,92,GUARD_AREA)
        CHANGE_SLAB_TYPE(77,92,GUARD_AREA)
        CHANGE_SLAB_TYPE(78,92,GUARD_AREA)
        CHANGE_SLAB_OWNER(78,92,PLAYER1)

        IF(PLAYER1,FLAG3==1)
            IF(PLAYER1,KNIGHT==0)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER1,KNIGHT,1,1)
            ENDIF
            IF(PLAYER1,KNIGHT==1)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER1,KNIGHT,0,0)
            ENDIF
            REM FLOOR
            CHANGE_SLAB_TYPE(77,103,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(71,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(72,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(73,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(74,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(75,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(76,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(76,103,TRAINING_AREA)
            CHANGE_SLAB_TYPE(71,103,TRAINING_AREA)
            CHANGE_SLAB_TYPE(71,104,TRAINING_AREA)
            CHANGE_SLAB_TYPE(76,104,TRAINING_AREA)
            CHANGE_SLAB_TYPE(72,107,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(72,107,PLAYER1)

            REM LIBRARY
            CHANGE_SLAB_TYPE(74,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(73,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(72,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(71,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(70,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(71,96,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(71,96,PLAYER1)
        ENDIF

        IF(PLAYER1,FLAG3==2)
            CREATURE_AVAILABLE(PLAYER1,DWARFA,1,4)
            REM FLOOR
            CHANGE_SLAB_TYPE(74,104,PRETTY_PATH)
            CHANGE_SLAB_TYPE(77,102,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(72,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(73,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(74,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(75,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(72,107,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(72,107,PLAYER1)

            REM LIBRARY
            CHANGE_SLAB_TYPE(71,99,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(72,99,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(73,99,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(71,96,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(71,96,PLAYER1)

            REM WORKSHOP
            CHANGE_SLAB_TYPE(71,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(72,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(73,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,102,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(73,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(72,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(71,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(71,102,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(72,102,WORKSHOP_AREA,MATCH)
            CHANGE_SLAB_OWNER(72,102,PLAYER1)
        ENDIF
    ENDIF
    REM FORTIFIES  DUNGEON
    IF(PLAYER1,GAME_TURN>150)
        MAKE_SAFE(PLAYER1)
    ENDIF
    REM PRISON SETTINGS
    REM Allowing AI to gather numbers by prison, but there is a limit to prevent AI going WILD.
    REM It is theoretically possible for the AI, even without having sufficient portals to attract creatures, to have high numbers through prison.
    REM gives a second fortication to ensure the prison (and dungeon) is efficient
    IF(PLAYER1,PRISON>2)
        SET_CREATURE_TENDENCIES(PLAYER1,IMPRISON,1) REM IMRISON ON whenever AI builds prison even if build late and AI has already bigger numbers
        IF(PLAYER1,TOTAL_CREATURES>=40)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER1,IMPRISON,0) REM Stops IMPRISON
        ENDIF
        IF(PLAYER1,TOTAL_CREATURES<=35)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER1,IMPRISON,1) REM Reactivates IMPRISON when numbers are getting lower.
        ENDIF
        MAKE_SAFE(PLAYER1)
    ENDIF
ENDIF

REM SETTINGS AND PREBUILD DUNGEON IF PLAYER2 = AI
IF(PLAYER2,FLAG1==1)
    SET_CREATURE_TENDENCIES(PLAYER2,FLEE,1)
    IF(PLAYER2,ENTRANCE==9)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER2,12)
    ENDIF
    If(PLAYER2,ENTRANCE==18)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER2,22)
    ENDIF
    IF(PLAYER2,ENTRANCE==27)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER2,27)
    ENDIF
    IF(PLAYER2,ENTRANCE==36)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER2,32)
    ENDIF
    ADD_GOLD_TO_PLAYER(PLAYER2,12500)
    If(PLAYER2,GAME_TURN>=DRAWFROM(8500~11000))
        IF_AVAILABLE(PLAYER2,POWER_HEAL_CREATURE==0)
            ADD_OBJECT_TO_LEVEL(SPELLBOOK_HEAL,PLAYER2,0)
        ENDIF
    ENDIF
    REM A first dig for gold is set in the outer ring to let him dig safely and to decrease the chance of an early breakout
    IF(ALL_PLAYERS,GAME_TURN>=100)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,58,62)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,62,66)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,70,74)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,78,82)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,86,90)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,94,98)
    ENDIF

    REM AVATAR AND STARTING FORCE
    REM Dig is set towards where the Avatar should have been, so it is possible to assume/know for human player that the AI did find his Avatar and it feels organic.
    ADD_CREATURE_TO_LEVEL(PLAYER2,GIANT,PLAYER2,1,6,0)
    ADD_CREATURE_TO_LEVEL(PLAYER2,SAMURAI,PLAYER2,1,1,0)
    IF(ALL_PLAYERS,GAME_TURN>=DRAWFROM(1900~2500))
        ADD_CREATURE_TO_LEVEL(PLAYER2,AVATAR,PLAYER2,1,2,0)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,22,26)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,14,18)
        COMPUTER_DIG_TO_LOCATION(PLAYER2,6,10)
    ENDIF
    REM Ensures AI doesn't run out of money
    SET_TIMER(PLAYER2,TIMER0)
    SET_TIMER(PLAYER2,TIMER4)
    IF_SLAB_OWNER(62,70,PLAYER2)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER2,TIMER4) REM TIMER4 stays at 0 as long player is in control of the slab
    ENDIF
    IF(PLAYER2,MONEY<5000)
        IF(PLAYER2,TIMER0>1200)
            IF(PLAYER2,TIMER4>=10) REM Doesn't is in center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER2,10000)
            ENDIF
            IF(PLAYER2,TIMER4<10) REM is active in the center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER2,25000)
            ENDIF
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,IMP,PLAYER2,2,3,0)
            IF(PLAYER2,FLAG2==0) REM TIMER 3 only triggers here if healing loop is active, else it is used in the cooldown section of the healing loop
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER2,TIMER3)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER2,FLAG2,2)
            ENDIF
            IF(PLAYER2,FLAG2>0)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER2,FLAG2,2)
            ENDIF
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER0)
        ENDIF
    ENDIF
    REM HEALING LOOP (AI uses Keeper spel 'Heal')
    IF_AVAILABLE(PLAYER2,POWER_HEAL_CREATURE>=1)
        SET_FLAG(PLAYER2,FLAG2,0)
        SET_TIMER(PLAYER2,TIMER1)
        SET_TIMER(PLAYER2,TIMER2)
        IF(PLAYER2,FLAG2==0) REM Healing loop ACTIVE: AI didn't ran out of money (=money donation wasn't activated)
            IF(PLAYER2,TIMER1>=200)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER2,AVATAR,ANYWHERE,PLAYER2,POWER_HEAL_CREATURE,9,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER2,TIMER1)
            ENDIF
            IF(PLAYER2,TIMER2>=225)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER2,ANY_CREATURE,MOST_EXP_FIGHTING,PLAYER2,POWER_HEAL_CREATURE,7,0)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER2,TIMER2)
            ENDIF
        ENDIF
        IF(PLAYER2,FLAG2>0) REM Healing loop COOLDOWN: AI did ran out of money (=AI was giving money), using heal as keeper is paused due to 'lack of money'. COOLDOWN CAN STACK!!
            IF(PLAYER2,TIMER3>=750)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER2,FLAG2,-1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER2,TIMER3)
            ENDIF
        ENDIF
    ENDIF
    REM PREBUILD DUNGEON
    IF(PLAYER2,FLAG0==1)
        REM FLOOR
        CHANGE_SLAB_TYPE(52,112,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,106,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,101,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,99,PRETTY_PATH)
        CHANGE_SLAB_TYPE(54,94,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,94,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,95,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,96,PRETTY_PATH)
        CHANGE_SLAB_TYPE(46,111,PRETTY_PATH)

        REM TREASURE ROOM
        CHANGE_SLAB_TYPE(47,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(48,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,114,TREASURY_AREA)
        CHANGE_SLAB_TYPE(50,114,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,114,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,113,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(50,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(48,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(49,112,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(49,112,PLAYER2)
        CHANGE_SLAB_TYPE(51,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,93,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,93,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,93,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,94,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(52,94,PLAYER2)

        REM HATCHERY
        CHANGE_SLAB_TYPE(57,108,HATCHERY)
        CHANGE_SLAB_TYPE(56,108,HATCHERY)
        CHANGE_SLAB_TYPE(55,108,HATCHERY)
        CHANGE_SLAB_TYPE(54,108,HATCHERY)
        CHANGE_SLAB_TYPE(53,108,HATCHERY)
        CHANGE_SLAB_TYPE(53,107,HATCHERY)
        CHANGE_SLAB_TYPE(53,106,HATCHERY)
        CHANGE_SLAB_TYPE(53,105,HATCHERY)
        CHANGE_SLAB_TYPE(53,104,HATCHERY)
        CHANGE_SLAB_TYPE(53,103,HATCHERY)
        CHANGE_SLAB_TYPE(53,102,HATCHERY)
        CHANGE_SLAB_TYPE(54,102,HATCHERY)
        CHANGE_SLAB_TYPE(55,102,HATCHERY)
        CHANGE_SLAB_TYPE(56,102,HATCHERY)
        CHANGE_SLAB_TYPE(57,102,HATCHERY)
        CHANGE_SLAB_TYPE(57,103,HATCHERY)
        CHANGE_SLAB_TYPE(57,104,HATCHERY)
        CHANGE_SLAB_TYPE(57,105,HATCHERY)
        CHANGE_SLAB_TYPE(57,106,HATCHERY)
        CHANGE_SLAB_TYPE(57,107,HATCHERY)
        CHANGE_SLAB_TYPE(56,107,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(56,107,PLAYER2)

        REM LAIR
        CHANGE_SLAB_TYPE(51,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(46,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,104,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,105,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,106,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,107,LAIR_AREA)
        CHANGE_SLAB_TYPE(45,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(46,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,108,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,107,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,106,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,105,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,105,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(50,105,PLAYER2)

        REM TRAINING
        CHANGE_SLAB_TYPE(53,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(55,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(56,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,100,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,99,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,98,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(56,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(55,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,97,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,98,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,99,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,99,TRAINING_AREA,MATCH)
        CHANGE_SLAB_OWNER(54,99,PLAYER2)

        REM LIBRARY
        CHANGE_SLAB_TYPE(51,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,101,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,100,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(51,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(50,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(49,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,100,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,101,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(48,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(49,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(50,102,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(50,101,BOOK_SHELVES,MATCH)
        CHANGE_SLAB_OWNER(50,101,PLAYER2)

        IF(PLAYER2,FLAG3==1)
            CREATURE_AVAILABLE(PLAYER2,MONK,1,3)
            REM FLOOR
            CHANGE_SLAB_TYPE(55,93,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(53,110,GUARD_AREA)
            CHANGE_SLAB_TYPE(57,110,GUARD_AREA)
            CHANGE_SLAB_TYPE(53,114,GUARD_AREA)
            CHANGE_SLAB_TYPE(57,114,GUARD_AREA)

            REM TEMPLE
            CHANGE_SLAB_TYPE(43,110,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(44,110,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(45,110,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(45,111,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(45,112,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(44,112,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(43,112,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(43,111,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(44,111,TEMPLE_POOL)
            CHANGE_SLAB_OWNER(44,111,PLAYER2)
        ENDIF

        IF(PLAYER2,FLAG3==2)
            REM FLOOR
            CHANGE_SLAB_TYPE(56,95,PRETTY_PATH)
            CHANGE_SLAB_TYPE(58,94,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(57,95,GUARD_AREA)
            CHANGE_SLAB_TYPE(58,95,GUARD_AREA)
            CHANGE_SLAB_TYPE(59,95,GUARD_AREA)
            CHANGE_SLAB_OWNER(59,95,PLAYER2)

            REM TORTURE ROOM
            CHANGE_SLAB_TYPE(43,110,TORTURE_AREA)
            CHANGE_SLAB_TYPE(44,110,TORTURE_AREA)
            CHANGE_SLAB_TYPE(45,110,TORTURE_AREA)
            CHANGE_SLAB_TYPE(45,111,TORTURE_AREA)
            CHANGE_SLAB_TYPE(45,112,TORTURE_AREA)
            CHANGE_SLAB_TYPE(44,112,TORTURE_AREA)
            CHANGE_SLAB_TYPE(43,112,TORTURE_AREA)
            CHANGE_SLAB_TYPE(43,111,TORTURE_AREA)
            CHANGE_SLAB_TYPE(44,111,TORTURE_AREA)
            CHANGE_SLAB_OWNER(44,111,PLAYER2)
        ENDIF
    ENDIF
    IF(PLAYER2,FLAG0==3)
        REM FLOOR
        CHANGE_SLAB_TYPE(52,112,PRETTY_PATH)
        CHANGE_SLAB_TYPE(48,111,PRETTY_PATH)
        CHANGE_SLAB_TYPE(55,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(50,109,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,106,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,104,PRETTY_PATH)
        CHANGE_SLAB_TYPE(54,97,PRETTY_PATH)
        CHANGE_SLAB_TYPE(50,97,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,97,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,98,PRETTY_PATH)
        CHANGE_SLAB_TYPE(49,99,PRETTY_PATH)
        CHANGE_SLAB_TYPE(52,93,PRETTY_PATH)

        REM TREASURY
        CHANGE_SLAB_TYPE(44,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(45,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(46,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,110,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(47,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(46,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(45,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(44,112,TREASURY_AREA)
        CHANGE_SLAB_TYPE(44,111,TREASURY_AREA)
        CHANGE_SLAB_TYPE(45,111,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(45,111,PLAYER2)
        CHANGE_SLAB_TYPE(51,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,94,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,96,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(53,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,98,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,97,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,96,TREASURY_AREA)
        CHANGE_SLAB_TYPE(51,95,TREASURY_AREA)
        CHANGE_SLAB_TYPE(52,95,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(52,95,PLAYER2)

        REM LAIR
        CHANGE_SLAB_TYPE(47,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,100,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,101,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,103,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,102,LAIR_AREA)
        CHANGE_SLAB_TYPE(47,101,LAIR_AREA)
        CHANGE_SLAB_TYPE(48,101,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(48,101,PLAYER2)
        CHANGE_SLAB_TYPE(49,110,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,110,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,110,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,111,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,112,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,113,LAIR_AREA)
        CHANGE_SLAB_TYPE(51,114,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,114,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,114,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,113,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,112,LAIR_AREA)
        CHANGE_SLAB_TYPE(49,111,LAIR_AREA)
        CHANGE_SLAB_TYPE(50,111,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(50,111,PLAYER2)

        REM HATCHERY
        CHANGE_SLAB_TYPE(45,105,HATCHERY)
        CHANGE_SLAB_TYPE(46,105,HATCHERY)
        CHANGE_SLAB_TYPE(47,105,HATCHERY)
        CHANGE_SLAB_TYPE(48,105,HATCHERY)
        CHANGE_SLAB_TYPE(49,105,HATCHERY)
        CHANGE_SLAB_TYPE(50,105,HATCHERY)
        CHANGE_SLAB_TYPE(51,105,HATCHERY)
        CHANGE_SLAB_TYPE(51,106,HATCHERY)
        CHANGE_SLAB_TYPE(51,107,HATCHERY)
        CHANGE_SLAB_TYPE(51,108,HATCHERY)
        CHANGE_SLAB_TYPE(50,108,HATCHERY)
        CHANGE_SLAB_TYPE(49,108,HATCHERY)
        CHANGE_SLAB_TYPE(48,108,HATCHERY)
        CHANGE_SLAB_TYPE(47,108,HATCHERY)
        CHANGE_SLAB_TYPE(46,108,HATCHERY)
        CHANGE_SLAB_TYPE(45,108,HATCHERY)
        CHANGE_SLAB_TYPE(45,107,HATCHERY)
        CHANGE_SLAB_TYPE(45,106,HATCHERY)
        CHANGE_SLAB_TYPE(46,106,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(46,106,PLAYER2)

        REM TRAINING
        CHANGE_SLAB_TYPE(58,105,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,106,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,107,TRAINING_AREA)
        CHANGE_SLAB_TYPE(58,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(57,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(56,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(55,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(54,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,108,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,107,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,106,TRAINING_AREA)
        CHANGE_SLAB_TYPE(53,105,TRAINING_AREA)


        REM LIBRARY
        CHANGE_SLAB_TYPE(55,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(56,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(57,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(58,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,95,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,96,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(59,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,99,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,98,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,97,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(55,96,BOOK_SHELVES)


        REM GUARD POST
        CHANGE_SLAB_TYPE(51,92,GUARD_AREA)
        CHANGE_SLAB_TYPE(52,92,GUARD_AREA)
        CHANGE_SLAB_TYPE(53,92,GUARD_AREA)
        CHANGE_SLAB_OWNER(53,92,PLAYER2)

        IF(PLAYER2,FLAG3==1)
            IF(PLAYER2,KNIGHT==0)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER2,KNIGHT,1,1)
            ENDIF
            IF(PLAYER2,KNIGHT==1)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER2,KNIGHT,0,0)
            ENDIF
            REM FLOOR
            CHANGE_SLAB_TYPE(52,103,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(53,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(54,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(55,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(56,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(57,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(58,102,TRAINING_AREA)
            CHANGE_SLAB_TYPE(58,103,TRAINING_AREA)
            CHANGE_SLAB_TYPE(58,104,TRAINING_AREA)
            CHANGE_SLAB_TYPE(53,104,TRAINING_AREA)
            CHANGE_SLAB_TYPE(53,103,TRAINING_AREA)
            CHANGE_SLAB_TYPE(54,107,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(54,107,PLAYER2)

            REM LIBRARY
            CHANGE_SLAB_TYPE(59,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(58,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(57,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(56,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(55,100,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(56,96,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(56,96,PLAYER2)
        ENDIF

        IF(PLAYER2,FLAG3==2)
            CREATURE_AVAILABLE(PLAYER2,DWARFA,1,4)
            REM FLOOR
            CHANGE_SLAB_TYPE(52,102,PRETTY_PATH)
            CHANGE_SLAB_TYPE(55,104,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(54,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(55,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(56,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(57,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(58,105,TRAINING_AREA)
            CHANGE_SLAB_TYPE(54,107,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(54,107,PLAYER2)

            REM LIBRARY
            CHANGE_SLAB_TYPE(56,99,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(57,99,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(58,99,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(56,96,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(56,96,PLAYER2)

            REM WORKSHOP
            CHANGE_SLAB_TYPE(53,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(54,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(55,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(56,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(57,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(58,101,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(58,102,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(58,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(57,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(56,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(55,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(54,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(53,103,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(53,102,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(54,102,WORKSHOP_AREA,MATCH)
            CHANGE_SLAB_OWNER(54,102,PLAYER2)
        ENDIF
    ENDIF
    REM FORTIFIES  DUNGEON
    IF(PLAYER2,GAME_TURN>150)
        MAKE_SAFE(PLAYER2)
    ENDIF

    REM PRISON SETTINGS
    REM Allowing AI to gather numbers by prison, but there is a limit to prevent AI going WILD.
    REM It is theoretically possible for the AI, even without having sufficient portals to attract creatures, to have high numbers through prison.
    REM gives a second fortication to ensure the prison (and dungeon) is efficient
    IF(PLAYER2,PRISON>2)
        SET_CREATURE_TENDENCIES(PLAYER2,IMPRISON,1) REM IMRISON ON whenever AI builds prison even if build late and AI has already bigger numbers
        IF(PLAYER2,TOTAL_CREATURES>=40)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER2,IMPRISON,0) REM Stops IMPRISON
        ENDIF
        IF(PLAYER2,TOTAL_CREATURES<=35)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER2,IMPRISON,1) REM Reactivates IMPRISON when numbers are getting lower.
        ENDIF
        MAKE_SAFE(PLAYER2)
    ENDIF
ENDIF

REM SETTINGS AND PREBUILD DUNGEON IF PLAYER3 = AI
IF(PLAYER3,FLAG1==1)
    SET_CREATURE_TENDENCIES(PLAYER3,FLEE,1)

    IF(PLAYER3,ENTRANCE==9)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER3,12)
    ENDIF
    If(PLAYER3,ENTRANCE==18)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER3,22)
    ENDIF
    IF(PLAYER3,ENTRANCE==27)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER3,27)
    ENDIF
    IF(PLAYER3,ENTRANCE==36)
        NEXT_COMMAND_REUSABLE
        MAX_CREATURES(PLAYER3,32)
    ENDIF
    ADD_GOLD_TO_PLAYER(PLAYER3,12500)
    IF(PLAYER3,GAME_TURN>=DRAWFROM(8500~11000))
        IF_AVAILABLE(PLAYER3,POWER_HEAL_CREATURE==0)
            ADD_OBJECT_TO_LEVEL(SPELLBOOK_HEAL,PLAYER3,0)
        ENDIF
    ENDIF
    REM A first dig for gold is set in the outer ring to let him dig safely and to decrease the chance of an early breakout
    IF(ALL_PLAYERS,GAME_TURN>=100)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,59,63)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,63,67)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,71,75)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,79,83)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,87,91)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,95,99)
    ENDIF
    REM AVATAR AND STARTING FORCE
    REM Dig is set towards where the Avatar should have been, so it is possible to assume/know for human player that the AI did find his Avatar and it feels organic.
    ADD_CREATURE_TO_LEVEL(PLAYER3,GIANT,PLAYER3,1,6,0)
    ADD_CREATURE_TO_LEVEL(PLAYER3,SAMURAI,PLAYER3,1,1,0)
    IF(ALL_PLAYERS,GAME_TURN>=DRAWFROM(1900~2500))
        ADD_CREATURE_TO_LEVEL(PLAYER3,AVATAR,PLAYER3,1,2,0)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,23,27)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,15,19)
        COMPUTER_DIG_TO_LOCATION(PLAYER3,7,11)
    ENDIF
    REM Ensures AI doesn't run out of money
    SET_TIMER(PLAYER3,TIMER0)
    SET_TIMER(PLAYER3,TIMER4)
    IF_SLAB_OWNER(67,59,PLAYER3)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER3,TIMER4) REM TIMER4 stays at 0 as long player is in control of the slab
    ENDIF
    IF(PLAYER3,MONEY<5000)
        IF(PLAYER3,TIMER0>1200)
            IF(PLAYER3,TIMER4>=10) REM Doesn't is in center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER3,10000)
            ENDIF
            IF(PLAYER3,TIMER4<10) REM is active in the center
                NEXT_COMMAND_REUSABLE
                ADD_GOLD_TO_PLAYER(PLAYER3,25000)
            ENDIF
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,IMP,PLAYER3,2,3,0)
            IF(PLAYER3,FLAG2==0) REM TIMER 3 only triggers here if healing loop is active, else it is used in the cooldown section of the healing loop
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER3,TIMER3)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER3,FLAG2,2)
            ENDIF
            IF(PLAYER3,FLAG2>0)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER3,FLAG2,2)
            ENDIF
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER0)
        ENDIF
    ENDIF
    REM HEALING LOOP (AI uses Keeper spel 'Heal')
    IF_AVAILABLE(PLAYER3,POWER_HEAL_CREATURE>=1)
        SET_FLAG(PLAYER3,FLAG2,0)
        SET_TIMER(PLAYER3,TIMER1)
        SET_TIMER(PLAYER3,TIMER2)
        IF(PLAYER3,FLAG2==0) REM Healing loop ACTIVE: AI didn't ran out of money (=money donation wasn't activated)
            IF(PLAYER3,TIMER1>=200)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER3,AVATAR,ANYWHERE,PLAYER3,POWER_HEAL_CREATURE,9,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER3,TIMER1)
            ENDIF
            IF(PLAYER3,TIMER2>=225)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER3,ANY_CREATURE,MOST_EXP_FIGHTING,PLAYER3,POWER_HEAL_CREATURE,7,0)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER3,TIMER2)
            ENDIF
        ENDIF
        IF(PLAYER3,FLAG2>0) REM Healing loop COOLDOWN: AI did ran out of money (=AI was giving money), using heal as keeper is paused due to 'lack of money'. COOLDOWN CAN STACK!!
            IF(PLAYER3,TIMER3>=750)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER3,TIMER3)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER3,FLAG2,-1)

            ENDIF
        ENDIF
    ENDIF
    REM PREBUILD DUNGEON
    IF(PLAYER3,FLAG0==1)
        REM FLOOR
        CHANGE_SLAB_TYPE(77,17,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,23,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,28,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,30,PRETTY_PATH)
        CHANGE_SLAB_TYPE(75,35,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,33,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,34,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,35,PRETTY_PATH)
        CHANGE_SLAB_TYPE(83,18,PRETTY_PATH)

        REM TREASURE ROOM
        CHANGE_SLAB_TYPE(82,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(81,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,15,TREASURY_AREA)
        CHANGE_SLAB_TYPE(79,15,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,15,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,16,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(79,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(81,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(80,18,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(80,18,PLAYER3)
        CHANGE_SLAB_TYPE(78,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,36,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,36,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,36,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,35,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(77,35,PLAYER3)

        REM HATCHERY
        CHANGE_SLAB_TYPE(76,21,HATCHERY)
        CHANGE_SLAB_TYPE(75,21,HATCHERY)
        CHANGE_SLAB_TYPE(74,21,HATCHERY)
        CHANGE_SLAB_TYPE(73,21,HATCHERY)
        CHANGE_SLAB_TYPE(72,21,HATCHERY)
        CHANGE_SLAB_TYPE(72,22,HATCHERY)
        CHANGE_SLAB_TYPE(72,23,HATCHERY)
        CHANGE_SLAB_TYPE(72,24,HATCHERY)
        CHANGE_SLAB_TYPE(72,25,HATCHERY)
        CHANGE_SLAB_TYPE(72,26,HATCHERY)
        CHANGE_SLAB_TYPE(72,27,HATCHERY)
        CHANGE_SLAB_TYPE(73,27,HATCHERY)
        CHANGE_SLAB_TYPE(74,27,HATCHERY)
        CHANGE_SLAB_TYPE(75,27,HATCHERY)
        CHANGE_SLAB_TYPE(76,27,HATCHERY)
        CHANGE_SLAB_TYPE(76,26,HATCHERY)
        CHANGE_SLAB_TYPE(76,25,HATCHERY)
        CHANGE_SLAB_TYPE(76,24,HATCHERY)
        CHANGE_SLAB_TYPE(76,23,HATCHERY)
        CHANGE_SLAB_TYPE(76,22,HATCHERY)
        CHANGE_SLAB_TYPE(75,22,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(75,22,PLAYER3)

        REM LAIR
        CHANGE_SLAB_TYPE(78,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(83,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,21,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,22,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,23,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,24,LAIR_AREA)
        CHANGE_SLAB_TYPE(84,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(83,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,25,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,24,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,23,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,22,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,22,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,22,PLAYER3)

        REM TRAINING
        CHANGE_SLAB_TYPE(76,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(74,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(73,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,29,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,30,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,31,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(73,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(74,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,32,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,31,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,30,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,30,TRAINING_AREA,MATCH)
        CHANGE_SLAB_OWNER(75,30,PLAYER3)

        REM LIBRARY
        CHANGE_SLAB_TYPE(81,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(80,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(79,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,27,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,28,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,29,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,30,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(78,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(79,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(80,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,30,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,29,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(81,28,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(80,28,BOOK_SHELVES,MATCH)
        CHANGE_SLAB_OWNER(80,28,PLAYER3)

        IF(PLAYER3,FLAG3==1)
            CREATURE_AVAILABLE(PLAYER3,MONK,1,3)
            REM FLOOR
            CHANGE_SLAB_TYPE(74,36,PRETTY_PATH)

            REM GUARD ROOM
            CHANGE_SLAB_TYPE(72,15,GUARD_AREA)
            CHANGE_SLAB_TYPE(72,19,GUARD_AREA)
            CHANGE_SLAB_TYPE(76,15,GUARD_AREA)
            CHANGE_SLAB_TYPE(76,19,GUARD_AREA)

            REM TEMPLE
            CHANGE_SLAB_TYPE(84,17,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(84,18,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(84,19,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(85,19,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(86,19,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(86,18,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(86,17,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(85,17,TEMPLE_POOL)
            CHANGE_SLAB_TYPE(85,18,TEMPLE_POOL)
            CHANGE_SLAB_OWNER(85,18,PLAYER3)
        ENDIF

        IF(PLAYER3,FLAG3==2)
            REM FLOOR
            CHANGE_SLAB_TYPE(73,34,PRETTY_PATH)
            CHANGE_SLAB_TYPE(72,35,PRETTY_PATH)

            REM GUARD POST
            CHANGE_SLAB_TYPE(73,34,GUARD_AREA)
            CHANGE_SLAB_TYPE(72,34,GUARD_AREA)
            CHANGE_SLAB_TYPE(71,34,GUARD_AREA)
            CHANGE_SLAB_OWNER(71,34,PLAYER3)

            REM TORTURE
            CHANGE_SLAB_TYPE(84,17,TORTURE_AREA)
            CHANGE_SLAB_TYPE(84,18,TORTURE_AREA)
            CHANGE_SLAB_TYPE(84,19,TORTURE_AREA)
            CHANGE_SLAB_TYPE(85,19,TORTURE_AREA)
            CHANGE_SLAB_TYPE(86,19,TORTURE_AREA)
            CHANGE_SLAB_TYPE(86,18,TORTURE_AREA)
            CHANGE_SLAB_TYPE(86,17,TORTURE_AREA)
            CHANGE_SLAB_TYPE(85,17,TORTURE_AREA)
            CHANGE_SLAB_TYPE(85,18,TORTURE_AREA)
            CHANGE_SLAB_OWNER(85,18,PLAYER3)
        ENDIF
    ENDIF
    IF(PLAYER3,FLAG0==2)
        REM FLOOR
        CHANGE_SLAB_TYPE(77,17,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(76,23,PRETTY_PATH)
        CHANGE_SLAB_TYPE(79,26,PRETTY_PATH)
        CHANGE_SLAB_TYPE(73,29,PRETTY_PATH)
        CHANGE_SLAB_TYPE(71,33,PRETTY_PATH)
        CHANGE_SLAB_TYPE(71,35,PRETTY_PATH)
        CHANGE_SLAB_TYPE(82,18,PRETTY_PATH)

        REM TREASURY
        CHANGE_SLAB_TYPE(83,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(86,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(86,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(86,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,18,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(84,18,PLAYER3)
        CHANGE_SLAB_TYPE(70,28,TREASURY_AREA)
        CHANGE_SLAB_TYPE(71,28,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,28,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,29,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,30,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(72,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(71,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,30,TREASURY_AREA)
        CHANGE_SLAB_TYPE(70,29,TREASURY_AREA)
        CHANGE_SLAB_TYPE(71,29,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(71,29,PLAYER3)

        REM LAIR
        CHANGE_SLAB_TYPE(81,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,28,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(77,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(76,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(75,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(74,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(74,28,LAIR_AREA)
        CHANGE_SLAB_TYPE(74,29,LAIR_AREA)

        REM HATCHERY
        CHANGE_SLAB_TYPE(77,21,HATCHERY)
        CHANGE_SLAB_TYPE(78,21,HATCHERY)
        CHANGE_SLAB_TYPE(79,21,HATCHERY)
        CHANGE_SLAB_TYPE(80,21,HATCHERY)
        CHANGE_SLAB_TYPE(81,21,HATCHERY)
        CHANGE_SLAB_TYPE(82,21,HATCHERY)
        CHANGE_SLAB_TYPE(82,22,HATCHERY)
        CHANGE_SLAB_TYPE(82,23,HATCHERY)
        CHANGE_SLAB_TYPE(82,24,HATCHERY)
        CHANGE_SLAB_TYPE(82,25,HATCHERY)
        CHANGE_SLAB_TYPE(81,25,HATCHERY)
        CHANGE_SLAB_TYPE(80,25,HATCHERY)
        CHANGE_SLAB_TYPE(79,25,HATCHERY)
        CHANGE_SLAB_TYPE(78,25,HATCHERY)
        CHANGE_SLAB_TYPE(77,25,HATCHERY)
        CHANGE_SLAB_TYPE(77,24,HATCHERY)
        CHANGE_SLAB_TYPE(77,23,HATCHERY)
        CHANGE_SLAB_TYPE(77,22,HATCHERY)
        CHANGE_SLAB_TYPE(78,22,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(78,22,PLAYER3)

        REM TRAINING
        CHANGE_SLAB_TYPE(78,15,TRAINING_AREA)
        CHANGE_SLAB_TYPE(79,15,TRAINING_AREA)
        CHANGE_SLAB_TYPE(80,15,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,15,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,16,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,17,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,18,TRAINING_AREA)
        CHANGE_SLAB_TYPE(81,19,TRAINING_AREA)
        CHANGE_SLAB_TYPE(80,19,TRAINING_AREA)
        CHANGE_SLAB_TYPE(79,19,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,19,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,18,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,17,TRAINING_AREA)
        CHANGE_SLAB_TYPE(78,16,TRAINING_AREA)
        CHANGE_SLAB_TYPE(79,16,TRAINING_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,16,PLAYER3)

        REM LIBRARY
        CHANGE_SLAB_TYPE(71,21,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,21,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(73,21,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,21,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,21,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,22,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,23,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,24,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(75,25,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,25,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(73,25,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,25,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,25,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,24,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,23,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,22,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,22,BOOK_SHELVES,MATCH)
        CHANGE_SLAB_OWNER(72,22,PLAYER3)

        REM GUARD POST
        CHANGE_SLAB_TYPE(70,34,GUARD_AREA)
        CHANGE_SLAB_TYPE(71,34,GUARD_AREA)
        CHANGE_SLAB_TYPE(72,34,GUARD_AREA)
        CHANGE_SLAB_OWNER(72,34,PLAYER3)

        IF(PLAYER3,FLAG3==1)
            IF(PLAYER3,SKELETON<=5)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER3,SKELETON,1,4)
            ENDIF
            IF(PLAYER3,SKELETON>=5)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER3,SKELETON,0,0)
            ENDIF

            REM FLOOR
            CHANGE_SLAB_TYPE(73,34,PRETTY_PATH)

            REM LAIR
            CHANGE_SLAB_TYPE(74,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(75,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(76,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(77,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(78,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(79,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(80,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(81,31,LAIR_AREA)
            CHANGE_SLAB_TYPE(81,30,LAIR_AREA)
            CHANGE_SLAB_TYPE(74,30,LAIR_AREA)
            CHANGE_SLAB_TYPE(75,30,LAIR_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,30,PLAYER3)

            REM PRISON
            CHANGE_SLAB_TYPE(74,33,PRISON_AREA)
            CHANGE_SLAB_TYPE(75,33,PRISON_AREA)
            CHANGE_SLAB_TYPE(76,33,PRISON_AREA)
            CHANGE_SLAB_TYPE(77,33,PRISON_AREA)
            CHANGE_SLAB_TYPE(78,33,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,33,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,34,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,35,PRISON_AREA)
            CHANGE_SLAB_TYPE(79,36,PRISON_AREA)
            CHANGE_SLAB_TYPE(78,36,PRISON_AREA)
            CHANGE_SLAB_TYPE(77,35,PRISON_AREA)
            CHANGE_SLAB_TYPE(77,36,PRISON_AREA)
            CHANGE_SLAB_TYPE(76,35,PRISON_AREA)
            CHANGE_SLAB_TYPE(75,35,PRISON_AREA)
            CHANGE_SLAB_TYPE(74,35,PRISON_AREA)
            CHANGE_SLAB_TYPE(74,34,PRISON_AREA)
            CHANGE_SLAB_TYPE(75,34,PRISON_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,34,PLAYER3)
        ENDIF

        IF(PLAYER3,FLAG3==2)
            CREATURE_AVAILABLE(PLAYER3,ARCHER,1,4)
            REM FLOOR
            CHANGE_SLAB_TYPE(83,23,PRETTY_PATH)
            CHANGE_SLAB_TYPE(77,30,PRETTY_PATH)
            REM LAIR
            CHANGE_SLAB_TYPE(75,29,LAIR_AREA)
            CHANGE_SLAB_TYPE(76,29,LAIR_AREA)
            CHANGE_SLAB_TYPE(77,29,LAIR_AREA)
            CHANGE_SLAB_TYPE(78,29,LAIR_AREA)
            CHANGE_SLAB_TYPE(79,29,LAIR_AREA)
            CHANGE_SLAB_TYPE(80,29,LAIR_AREA)
            CHANGE_SLAB_TYPE(75,28,LAIR_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,28,PLAYER3)
            CHANGE_SLAB_TYPE(84,21,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,21,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,22,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,23,LAIR_AREA)
            CHANGE_SLAB_TYPE(85,24,LAIR_AREA)
            CHANGE_SLAB_TYPE(84,24,LAIR_AREA)
            CHANGE_SLAB_TYPE(84,23,LAIR_AREA)
            CHANGE_SLAB_TYPE(84,22,LAIR_AREA)
            CHANGE_SLAB_OWNER(84,23,PLAYER3)
            REM WORKSHOP
            CHANGE_SLAB_TYPE(74,35,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,35,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,35,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(77,35,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(78,35,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(79,35,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(80,34,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(80,33,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(81,32,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(81,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(80,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(79,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(78,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(77,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,31,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,32,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,33,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,34,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,34,WORKSHOP_AREA,MATCH)
            CHANGE_SLAB_OWNER(75,34,PLAYER3)
        ENDIF
    ENDIF
    IF(PLAYER3,FLAG0==3)
        REM FLOOR
        CHANGE_SLAB_TYPE(77,17,PRETTY_PATH)
        CHANGE_SLAB_TYPE(74,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(81,18,PRETTY_PATH)
        CHANGE_SLAB_TYPE(79,20,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,23,PRETTY_PATH)
        CHANGE_SLAB_TYPE(75,32,PRETTY_PATH)
        CHANGE_SLAB_TYPE(77,36,PRETTY_PATH)
        CHANGE_SLAB_TYPE(79,32,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,32,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,31,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,30,PRETTY_PATH)
        CHANGE_SLAB_TYPE(80,25,PRETTY_PATH)

        REM TREASURY
        CHANGE_SLAB_TYPE(82,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,17,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(85,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(84,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,19,TREASURY_AREA)
        CHANGE_SLAB_TYPE(82,18,TREASURY_AREA)
        CHANGE_SLAB_TYPE(83,18,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(83,18,PLAYER3)
        CHANGE_SLAB_TYPE(76,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,31,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,33,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(78,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,35,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,34,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,33,TREASURY_AREA)
        CHANGE_SLAB_TYPE(76,32,TREASURY_AREA)
        CHANGE_SLAB_TYPE(77,32,TREASURY_AREA,MATCH)
        CHANGE_SLAB_OWNER(77,32,PLAYER3)

        REM LAIR
        CHANGE_SLAB_TYPE(78,15,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,15,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,15,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,16,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,17,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,18,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,19,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,19,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,19,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,18,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,17,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,16,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,16,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,16,PLAYER3)
        CHANGE_SLAB_TYPE(78,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,26,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,28,LAIR_AREA)
        CHANGE_SLAB_TYPE(82,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(81,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(80,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,29,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,28,LAIR_AREA)
        CHANGE_SLAB_TYPE(78,27,LAIR_AREA)
        CHANGE_SLAB_TYPE(79,27,LAIR_AREA,MATCH)
        CHANGE_SLAB_OWNER(79,27,PLAYER3)

        REM HATCHERY
        CHANGE_SLAB_TYPE(78,21,HATCHERY)
        CHANGE_SLAB_TYPE(79,21,HATCHERY)
        CHANGE_SLAB_TYPE(80,21,HATCHERY)
        CHANGE_SLAB_TYPE(81,21,HATCHERY)
        CHANGE_SLAB_TYPE(82,21,HATCHERY)
        CHANGE_SLAB_TYPE(83,21,HATCHERY)
        CHANGE_SLAB_TYPE(84,21,HATCHERY)
        CHANGE_SLAB_TYPE(84,22,HATCHERY)
        CHANGE_SLAB_TYPE(84,23,HATCHERY)
        CHANGE_SLAB_TYPE(84,24,HATCHERY)
        CHANGE_SLAB_TYPE(83,24,HATCHERY)
        CHANGE_SLAB_TYPE(82,24,HATCHERY)
        CHANGE_SLAB_TYPE(81,24,HATCHERY)
        CHANGE_SLAB_TYPE(80,24,HATCHERY)
        CHANGE_SLAB_TYPE(79,24,HATCHERY)
        CHANGE_SLAB_TYPE(78,24,HATCHERY)
        CHANGE_SLAB_TYPE(78,23,HATCHERY)
        CHANGE_SLAB_TYPE(78,22,HATCHERY)
        CHANGE_SLAB_TYPE(79,22,HATCHERY,MATCH)
        CHANGE_SLAB_OWNER(79,22,PLAYER3)

        REM TRAINING
        CHANGE_SLAB_TYPE(71,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(72,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(73,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(74,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(75,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,21,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,22,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,23,TRAINING_AREA)
        CHANGE_SLAB_TYPE(76,24,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,24,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,23,TRAINING_AREA)
        CHANGE_SLAB_TYPE(71,22,TRAINING_AREA)

        REM LIBRARY
        CHANGE_SLAB_TYPE(74,30,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,33,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(74,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(73,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(72,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(71,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,34,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,33,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,32,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,31,BOOK_SHELVES)
        CHANGE_SLAB_TYPE(70,30,BOOK_SHELVES)

        REM GUARD POST
        CHANGE_SLAB_TYPE(76,37,GUARD_AREA)
        CHANGE_SLAB_TYPE(77,37,GUARD_AREA)
        CHANGE_SLAB_TYPE(78,37,GUARD_AREA)
        CHANGE_SLAB_OWNER(76,37,PLAYER3)

        IF(PLAYER3,FLAG3==1)
            IF(PLAYER3,KNIGHT==0)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER3,KNIGHT,1,1)
            ENDIF
            IF(PLAYER3,KNIGHT==1)
                NEXT_COMMAND_REUSABLE
                CREATURE_AVAILABLE(PLAYER3,KNIGHT,0,0)
            ENDIF
            REM FLOOR
            CHANGE_SLAB_TYPE(77,26,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(76,25,TRAINING_AREA)
            CHANGE_SLAB_TYPE(76,26,TRAINING_AREA)
            CHANGE_SLAB_TYPE(76,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(75,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(74,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(73,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(72,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(71,27,TRAINING_AREA)
            CHANGE_SLAB_TYPE(71,26,TRAINING_AREA)
            CHANGE_SLAB_TYPE(71,25,TRAINING_AREA)
            CHANGE_SLAB_TYPE(72,22,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(72,22,PLAYER3)

            REM LIBRARY
            CHANGE_SLAB_TYPE(70,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(71,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(72,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(73,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(74,29,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(71,33,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(71,33,PLAYER3)
        ENDIF

        IF(PLAYER3,FLAG3==2)
            CREATURE_AVAILABLE(PLAYER3,DWARFA,1,4)
            REM FLOOR
            CHANGE_SLAB_TYPE(77,27,PRETTY_PATH)
            CHANGE_SLAB_TYPE(74,25,PRETTY_PATH)

            REM TRAINING
            CHANGE_SLAB_TYPE(72,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(73,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(74,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(75,24,TRAINING_AREA)
            CHANGE_SLAB_TYPE(72,22,TRAINING_AREA,MATCH)
            CHANGE_SLAB_OWNER(72,22,PLAYER3)

            REM LIBRARY
            CHANGE_SLAB_TYPE(71,30,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(72,30,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(73,30,BOOK_SHELVES)
            CHANGE_SLAB_TYPE(71,33,BOOK_SHELVES,MATCH)
            CHANGE_SLAB_OWNER(71,33,PLAYER3)

            REM WORKSHOP
            CHANGE_SLAB_TYPE(71,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(72,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(73,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,26,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,27,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(76,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(75,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(74,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(73,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(72,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(71,28,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(71,27,WORKSHOP_AREA)
            CHANGE_SLAB_TYPE(72,27,WORKSHOP_AREA,MATCH)
            CHANGE_SLAB_OWNER(72,27,PLAYER3)
        ENDIF
    ENDIF
    REM FORTIFIES  DUNGEON
    IF(PLAYER3,GAME_TURN>150)
        MAKE_SAFE(PLAYER3)
    ENDIF

    REM PRISON SETTINGS
    REM Allowing AI to gather numbers by prison, but there is a limit to prevent AI going WILD.
    REM It is theoretically possible for the AI, even without having sufficient portals to attract creatures, to have high numbers through prison.
    REM gives a second fortication to ensure the prison (and dungeon) is efficient
    IF(PLAYER3,PRISON>2)
        SET_CREATURE_TENDENCIES(PLAYER3,IMPRISON,1) REM IMRISON ON whenever AI builds prison even if build late and AI has already bigger numbers
        IF(PLAYER3,TOTAL_CREATURES>=40)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER3,IMPRISON,0) REM Stops IMPRISON
        ENDIF
        IF(PLAYER3,TOTAL_CREATURES<=35)
            NEXT_COMMAND_REUSABLE
            SET_CREATURE_TENDENCIES(PLAYER3,IMPRISON,1) REM Reactivates IMPRISON when numbers are getting lower.
        ENDIF
        MAKE_SAFE(PLAYER3)
    ENDIF
ENDIF