SET_GENERATE_SPEED(2000)

QUICK_OBJECTIVE(1,"Your favourite Horned Reaper has been captured, brainwashed and imprisoned. To finish this level, you'll have to set him free and kill all opponents in the process, thus making the world a better and more evil place(yeah!).",PLAYER0)

MAX_CREATURES(ALL_PLAYERS,30)

START_MONEY(PLAYER0,5000)
START_MONEY(PLAYER1,30000)

COMPUTER_PLAYER(PLAYER1,0)

IF(PLAYER0,IMP > 1)
    CREATURE_AVAILABLE(PLAYER0,TROLL,1,1)
    CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1)
    CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,1)
    CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,1)
    CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1)
    CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,1)
    CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,1)
    CREATURE_AVAILABLE(PLAYER0,DRAGON,1,1)
    CREATURE_AVAILABLE(PLAYER0,ORC,1,1)
ENDIF

CREATURE_AVAILABLE(PLAYER1,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER1,TENTACLE,1,1)
CREATURE_AVAILABLE(PLAYER1,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER1,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(PLAYER1,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER1,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER1,HELL_HOUND,1,1)
CREATURE_AVAILABLE(PLAYER1,DRAGON,1,1)
CREATURE_AVAILABLE(PLAYER1,ORC,1,1)

ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(WIZARD,20)

ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)

IF(PLAYER0,IMP > 1)
    QUICK_OBJECTIVE(2,"No time for celebrations Keeper. Your imp King has brought the instruments of your vengeance. To work! ",PLAYER0)
    ROOM_AVAILABLE(PLAYER0,TRAINING,1,0)
    ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
    ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
    ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
    ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)
    ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
    ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)
    ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0)
    ROOM_AVAILABLE(PLAYER0,TORTURE,1,0)
    ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,0)
    ROOM_AVAILABLE(PLAYER0,SCAVENGER,1,0)
ENDIF

ROOM_AVAILABLE(PLAYER1,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER1,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER1,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER1,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER1,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER1,LAIR,1,1)
ROOM_AVAILABLE(PLAYER1,PRISON,1,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER1,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER1,TORTURE,1,0)
ROOM_AVAILABLE(PLAYER1,GRAVEYARD,1,0)
ROOM_AVAILABLE(PLAYER1,SCAVENGER,1,0)

IF(PLAYER0,TOTAL_CREATURES > 8)
    IF(PLAYER0,LAIR > 0)
        MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
    ENDIF
ENDIF

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DESTROY_WALLS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE,1,0)


TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(PLAYER1,LIGHTNING,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,BOULDER,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0)

IF(PLAYER0,IMP < 1)
    IF(PLAYER1,TOTAL_CREATURES > 6)
        QUICK_OBJECTIVE(3,"You have failed. Without Imps you won't stand against the enemy. Perhaps you're not the harbinger of doom the forces of darkness were hoping for.",PLAYER0)
        LOSE_GAME
    ENDIF
ENDIF

IF(PLAYER0,TOTAL_CREATURES < 1)
    QUICK_OBJECTIVE(4,"You have failed. No creacures - no chances.Perhaps you're not the harbinger of doom the forces of darkness were hoping for.",PLAYER0)
    LOSE_GAME
ENDIF

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
    IF(PLAYER_GOOD,TOTAL_CREATURES < 1)
        QUICK_OBJECTIVE(5,"You have prevailed, Keeper. The bodies of your enemies litter the most forlorn alcoves of your domain, in tribute to their futile efforts to keep you at bay.",PLAYER0)
        WIN_GAME
    ENDIF
ENDIF

CREATE_PARTY(STANDARD)
    ADD_TO_PARTY(STANDARD,KNIGHT,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(STANDARD,TUNNELLER,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(STANDARD,WITCH,3,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(STANDARD,ARCHER,3,500,ATTACK_ENEMIES,0)

IF(PLAYER0,TOTAL_CREATURES > 13)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,STANDARD,1,DUNGEON,2,1,1)
ENDIF

IF(PLAYER0,TOTAL_CREATURES > 23)
        ADD_TO_PARTY(STANDARD,FAIRY,6,500,ATTACK_ENEMIES,0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,STANDARD,1,DUNGEON,2,1,1)
ENDIF

IF(PLAYER0,TOTAL_CREATURES > 33)
        ADD_TO_PARTY(STANDARD,FAIRY,8,500,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(STANDARD,MONK,8,500,ATTACK_ENEMIES,0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,STANDARD,1,DUNGEON,2,1,1)
ENDIF

CREATE_PARTY(GUARD)
    ADD_TO_PARTY(GUARD,KNIGHT,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(GUARD,KNIGHT,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(GUARD,WITCH,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(GUARD,GIANT,7,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(GUARD,FAIRY,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(GUARD,MONK,8,500,DEFEND_PARTY,0)

IF(PLAYER_GOOD,GUARD_POST < 1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GUARD,2,1)
ENDIF

IF(PLAYER0,PRISON > 0)
    IF(PLAYER_GOOD,TOTAL_CREATURES < 1)
        QUICK_OBJECTIVE(6,"Seek out the one who would be your rival in this region of the underworld. Explain the concept of early retirement to him. On the other hand, string him up. It's in the only language he understands.",PLAYER0)
    ENDIF
ENDIF

CREATE_PARTY(ENDGAME1)
    ADD_TO_PARTY(ENDGAME1,MONK,7,500,DEFEND_PARTY,0)
    ADD_TO_PARTY(ENDGAME1,AVATAR,7,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ENDGAME1,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ENDGAME1,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ENDGAME1,WIZARD,10,500,DEFEND_PARTY,0)
    ADD_TO_PARTY(ENDGAME1,BARBARIAN,8,500,DEFEND_PARTY,0)
    ADD_TO_PARTY(ENDGAME1,WITCH,7,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ENDGAME1,WITCH,7,500,DEFEND_PARTY,0)
    ADD_TO_PARTY(ENDGAME1,KNIGHT,7,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ENDGAME1,KNIGHT,7,500,DEFEND_PARTY,0)

CREATE_PARTY(ENDGAME2)
    ADD_TO_PARTY(ENDGAME2,THIEF,8,500,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ENDGAME2,THIEF,8,500,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ENDGAME2,SAMURAI,9,500,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ENDGAME2,SAMURAI,8,500,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ENDGAME2,GIANT,5,500,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ENDGAME2,GIANT,5,500,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ENDGAME2,FAIRY,8,500,DEFEND_PARTY,0)

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
    ROOM_AVAILABLE(PLAYER0,PRISON,1,1)
    QUICK_OBJECTIVE(7,"Enemy reinforcements have arrived. So what? Let's hear it for more killing.",PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ENDGAME1,3,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ENDGAME2,4,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,STANDARD,1,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GUARD,2,1)
ENDIF
