LEVEL_VERSION(1)

REM ##########################
REM ##########################
REM ** PLAYERS
SET_PLAYER_COLOR(PLAYER0,WHITE)
SET_PLAYER_COLOR(PLAYER_GOOD,BLACK)

REM ##########################
REM ##########################
REM ** MAP START SETTINGS
SET_GENERATE_SPEED(425)
START_MONEY(ALL_PLAYERS,9000)
MAX_CREATURES(PLAYER0,41)
MAX_CREATURES(PLAYER5,75)
ALLY_PLAYERS(PLAYER0,PLAYER5,2)
ALLY_PLAYERS(PLAYER0,PLAYER_GOOD,2)
ALLY_PLAYERS(PLAYER5,PLAYER_GOOD,3)
COMPUTER_PLAYER(PLAYER5,2)

REM ##########################
REM ##########################
REM ** Increase Max Creatures
IF_SLAB_OWNER(64,75,PLAYER0)
    MAX_CREATURES(PLAYER0,57)
ENDIF

REM ##########################
REM ##########################
REM PLAYER0's AP 1 / HG 1 / Flag0 / Timer0 / TUNNELLER SPAWNER
REM ##########################

HIDE_HERO_GATE(1,1)

IF_ACTION_POINT(1,PLAYER0)
	IF_SLAB_OWNER(20,69,PLAYER0)
        QUICK_INFORMATION(1,"A tunneller workforce will arrive here for you, Chief! They'll come along periodically and they're willing volunteers! Which means they won't fight, at all. They are what those 'Keepers' would refer to as their 'Imps'. This is going to be super fun with these Tunnellers to help us!",-1)
        ADD_CREATURE_TO_LEVEL(PLAYER0,TUNNELLER,-1,3,4,0,FALL)
		SET_FLAG(PLAYER0,FLAG0,1)
		SET_TIMER(PLAYER0,TIMER0)
	ENDIF
ENDIF
IF(PLAYER0,FLAG0 == 1)
	IF(PLAYER0,TIMER0 >= 1700)
        IF(PLAYER0,TUNNELLER>=21)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER0)
        ENDIF
        IF(PLAYER0,TUNNELLER<=18)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,TUNNELLER,-1,3,4,0,FALL)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER0)
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** TUNNELLER Customization

SET_DIGGER(PLAYER0,TUNNELLER)
SET_CREATURE_PROPERTY(TUNNELLER,SPECIAL_DIGGER,1)

SET_CREATURE_PROPERTY(TUNNELLER,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(TUNNELLER,NO_IMPRISONMENT,1)
SET_CREATURE_PROPERTY(TUNNELLER,NO_RESURRECT,1)

SET_CREATURE_CONFIGURATION(TUNNELLER,TrainingValue,2)
SET_CREATURE_CONFIGURATION(TUNNELLER,Pay,0)
SET_CREATURE_CONFIGURATION(TUNNELLER,HungerRate,0)
SET_CREATURE_CONFIGURATION(TUNNELLER,HungerFill,0)
SET_CREATURE_CONFIGURATION(TUNNELLER,ManufactureValue,0)
SET_CREATURE_CONFIGURATION(TUNNELLER,AnnoyLevel,30000)
SET_CREATURE_CONFIGURATION(TUNNELLER,LairSize,0)
SET_CREATURE_CONFIGURATION(TUNNELLER,TokingRecovery,15)
SET_CREATURE_CONFIGURATION(TUNNELLER,ScavengeValue,0)
SET_CREATURE_CONFIGURATION(TUNNELLER,FearWounded,101)
SET_CREATURE_CONFIGURATION(TUNNELLER,HealRequirement,100)
SET_CREATURE_CONFIGURATION(TUNNELLER,Strength,15)

REM ##########################
REM ##########################
REM ** HERO & CREATURE MODIFIERS

SET_CREATURE_TENDENCIES(PLAYER_GOOD,FLEE,0)

SET_CREATURE_CONFIGURATION(THIEF,TrainingValue,2)
SET_CREATURE_CONFIGURATION(GIANT,TrainingValue,2)
SET_CREATURE_CONFIGURATION(Avatar,TrainingValue,1)
SET_CREATURE_CONFIGURATION(FLY,FearStronger,30000)
SET_CREATURE_PROPERTY(GHOST,NO_RESURRECT,1)
SET_CREATURE_PROPERTY(VAMPIRE,NO_RESURRECT,1)
SET_CREATURE_PROPERTY(SKELETON,NO_RESURRECT,1)
SET_CREATURE_PROPERTY(VAMPIRE,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(GHOST,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(SPIDER,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(FLY,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(SORCEROR,NO_CORPSE_ROTTING,1)

SET_CREATURE_CONFIGURATION(ARCHER,LairSize,1)
SET_CREATURE_CONFIGURATION(AVATAR,LairSize,3)
SET_CREATURE_CONFIGURATION(BARBARIAN,LairSize,2)
SET_CREATURE_CONFIGURATION(DWARFA,LairSize,1)
SET_CREATURE_CONFIGURATION(FAIRY,LairSize,2)
SET_CREATURE_CONFIGURATION(GIANT,LairSize,3)
SET_CREATURE_CONFIGURATION(KNIGHT,LairSize,3)
SET_CREATURE_CONFIGURATION(MONK,LairSize,2)
SET_CREATURE_CONFIGURATION(SAMURAI,LairSize,3)
SET_CREATURE_CONFIGURATION(THIEF,LairSize,1)
SET_CREATURE_CONFIGURATION(TIME_MAGE,Lairsize,2)
SET_CREATURE_CONFIGURATION(WIZARD,LairSize,2)
SET_CREATURE_CONFIGURATION(WITCH,LairSize,2)

SET_CREATURE_CONFIGURATION(ARCHER,Pay,85)
SET_CREATURE_CONFIGURATION(BARBARIAN,Pay,85)
SET_CREATURE_CONFIGURATION(DWARFA,Pay,65)
SET_CREATURE_CONFIGURATION(FAIRY,Pay,105)
SET_CREATURE_CONFIGURATION(GIANT,Pay,105)
SET_CREATURE_CONFIGURATION(MONK,Pay,145)
SET_CREATURE_CONFIGURATION(SAMURAI,Pay,145)
SET_CREATURE_CONFIGURATION(THIEF,Pay,75)
SET_CREATURE_CONFIGURATION(TIME_MAGE,Pay,175)
SET_CREATURE_CONFIGURATION(WIZARD,Pay,95)
SET_CREATURE_CONFIGURATION(WITCH,Pay,145)

SET_CREATURE_PROPERTY(FLY,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(VAMPIRE,NO_CORPSE_ROTTING,1)

REM ##########################
REM ##########################
REM ** NO PRISON SKELETONS/TORTURE GHOSTS/GRAVEYARD VAMPIRES

SET_GAME_RULE(TortureDeathChance, 100)
SET_GAME_RULE(BodiesForVampire,500000,PLAYER0)
SET_GAME_RULE(BodiesForVampire,500,PLAYER5)
SET_GAME_RULE(PrisonSkeletonChance,0)

IF(PLAYER0,SKELETON>=0)
    NEXT_COMMAND_REUSABLE
    KILL_CREATURE(PLAYER0,SKELETON,MOST_EXPERIENCED,1)
ENDIF
IF(PLAYER0,GHOST>=0)
    NEXT_COMMAND_REUSABLE
    KILL_CREATURE(PLAYER0,GHOST,MOST_EXPERIENCED,1)
ENDIF
IF(PLAYER0,VAMPIRE>=0)
    NEXT_COMMAND_REUSABLE
    KILL_CREATURE(PLAYER0,VAMPIRE,MOST_EXPERIENCED,1)
ENDIF

REM ##########################
REM ##########################
REM ** CREATURE POOL PLAYER0

ADD_CREATURE_TO_POOL(THIEF,5)
ADD_CREATURE_TO_POOL(DWARFA,10)
ADD_CREATURE_TO_POOL(ARCHER,20)
ADD_CREATURE_TO_POOL(BARBARIAN,20)
ADD_CREATURE_TO_POOL(MONK,15)
ADD_CREATURE_TO_POOL(FAIRY,10)
ADD_CREATURE_TO_POOL(WITCH,10)
ADD_CREATURE_TO_POOL(WIZARD,15)
ADD_CREATURE_TO_POOL(GIANT,15)
ADD_CREATURE_TO_POOL(SAMURAI,10)
ADD_CREATURE_TO_POOL(TIME_MAGE,8)
ADD_CREATURE_TO_POOL(AVATAR,1)

IF(PLAYER0,KNIGHT>=6)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER0,THIEF,8)
ENDIF
IF(PLAYER0,KNIGHT<=4)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER0,THIEF,0)
ENDIF

REM ##########################
REM ##########################
REM ** CREATURE POOL PLAYER5

ADD_CREATURE_TO_POOL(DRAGON,15)
ADD_CREATURE_TO_POOL(DEMONSPAWN,15)
ADD_CREATURE_TO_POOL(SORCEROR,10)
ADD_CREATURE_TO_POOL(TROLL,5)
ADD_CREATURE_TO_POOL(BILE_DEMON,10)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,5)
ADD_CREATURE_TO_POOL(VAMPIRE,5)
ADD_CREATURE_TO_POOL(ORC,10)
ADD_CREATURE_TO_POOL(MAIDEN,5)

REM ##########################
REM ##########################
REM ** ROOM ATTRACTIONS

SET_CREATURE_CONFIGURATION(THIEF,EntranceRoom,TREASURE)
SET_CREATURE_CONFIGURATION(GIANT,EntranceRoom,LAIR,GARDEN)
SET_CREATURE_CONFIGURATION(WIZARD,EntranceRoom,RESEARCH,TREASURE)
SET_CREATURE_CONFIGURATION(ARCHER,EntranceRoom,TRAINING,GARDEN)
SET_CREATURE_CONFIGURATION(DWARFA,EntranceRoom,WORKSHOP,LAIR)
SET_CREATURE_CONFIGURATION(BARBARIAN,EntranceRoom,BARRACKS,TRAINING)
SET_CREATURE_CONFIGURATION(SAMURAI,EntranceRoom,PRISON,BARRACKS)
SET_CREATURE_CONFIGURATION(TIME_MAGE,EntranceRoom,TEMPLE,RESEARCH)
SET_CREATURE_CONFIGURATION(FAIRY,EntranceRoom,TEMPLE,TORTURE)
SET_CREATURE_CONFIGURATION(MONK,EntranceRoom,TEMPLE,GRAVEYARD)
SET_CREATURE_CONFIGURATION(WITCH,EntranceRoom,GRAVEYARD)
SET_CREATURE_CONFIGURATION(AVATAR,EntranceRoom,SCAVENGER)

REM ##########################
REM ##########################
REM ** PORTAL ATTRACTION PLAYER

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

REM ##########################
REM ##########################
REM ** PORTAL ATTRACTION PLAYER5

CREATURE_AVAILABLE(PLAYER5,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER5,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(PLAYER5,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER5,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER5,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER5,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER5,VAMPIRE,1,0)
CREATURE_AVAILABLE(PLAYER5,ORC,1,0)
CREATURE_AVAILABLE(PLAYER5,MAIDEN,1,0)

REM ##########################
REM ##########################
REM ** ROOMS LIST

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,BRIDGE,0,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER0,PRISON,1,0)
ROOM_AVAILABLE(PLAYER0,TORTURE,1,0)
ROOM_AVAILABLE(PLAYER0,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,0)
ROOM_AVAILABLE(PLAYER0,SCAVENGER,1,0)

REM ##########################
REM ##########################
REM ** ROOM EXCLUSION

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

REM ##########################
REM ##########################
REM ** MAGIC LIST

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_POSSESS,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,0,0)
MAGIC_AVAILABLE(PLAYER5,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,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_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,1,0)

REM ##########################
REM ##########################
REM ** RESEARCH ORDER/COST

RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_SIGHT,10500)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_SPEED,12500)
RESEARCH_ORDER(PLAYER0,ROOM,GUARD_POST,17500)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CALL_TO_ARMS,22000)
RESEARCH_ORDER(PLAYER0,ROOM,WORKSHOP,35500)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_OBEY,39500)
RESEARCH_ORDER(PLAYER0,ROOM,BARRACKS,58300)
RESEARCH_ORDER(PLAYER0,ROOM,PRISON,83500)
RESEARCH_ORDER(PLAYER0,ROOM,TORTURE,87500)
RESEARCH_ORDER(PLAYER0,ROOM,TEMPLE,90500)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_HEAL_CREATURE,92000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_LIGHTNING,100000)
RESEARCH_ORDER(PLAYER0,ROOM,GRAVEYARD,101500)
RESEARCH_ORDER(PLAYER0,ROOM,SCAVENGER,125000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CONCEAL,85000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CAVE_IN,95000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_PROTECT,105000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CHICKEN,135000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_DISEASE,150000)

RESEARCH(PLAYER0,ROOM,BRIDGE,250000)

REM ##########################
REM ##########################
REM ** WORKSHOP LIST

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

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

REM ##########################
REM ##########################
REM ** PARTY GUESTLIST

CREATE_PARTY(FLYFORCE)
    ADD_TO_PARTY(FLYFORCE,FLY,9,0,STEAL_SPELLS,50)
    ADD_TO_PARTY(FLYFORCE,FLY,8,0,ATTACK_ENEMIES,50)
    ADD_TO_PARTY(FLYFORCE,FLY,7,0,ATTACK_DUNGEON_HEART,50)
    ADD_TO_PARTY(FLYFORCE,FLY,7,0,ATTACK_ENEMIES,50)

CREATE_PARTY(SPIDERFORCE)
    ADD_TO_PARTY(SPIDERFORCE,SPIDER,9,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SPIDERFORCE,SPIDER,8,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SPIDERFORCE,SPIDER,7,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(SPIDERFORCE,SPIDER,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SPIDERFORCE,SPIDER,6,0,DEFEND_LOCATION,0)

CREATE_PARTY(ORCWAVE)
    ADD_TO_PARTY(ORCWAVE,ORC,4,100,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCWAVE,ORC,3,100,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCWAVE,ORC,3,100,ATTACK_ENEMIES,0)

CREATE_PARTY(BILEFORCE)
    ADD_TO_PARTY(BILEFORCE,BILE_DEMON,9,750,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BILEFORCE,BILE_DEMON,7,750,DEFEND_ROOMS,0)
    ADD_TO_PARTY(BILEFORCE,BILE_DEMON,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BILEFORCE,BILE_DEMON,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BILEFORCE,BILE_DEMON,4,0,ATTACK_ENEMIES,0)

CREATE_PARTY(ORCFORCE)
    ADD_TO_PARTY(ORCFORCE,ORC,9,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCFORCE,ORC,7,500,DEFEND_ROOMS,0)
    ADD_TO_PARTY(ORCFORCE,ORC,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCFORCE,ORC,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCFORCE,ORC,5,0,ATTACK_ENEMIES,0)

CREATE_PARTY(MAIDENFORCE)
    ADD_TO_PARTY(MAIDENFORCE,MAIDEN,9,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MAIDENFORCE,MAIDEN,7,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MAIDENFORCE,MAIDEN,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MAIDENFORCE,MAIDEN,4,0,ATTACK_ENEMIES,0)

CREATE_PARTY(WARLOCKFORCE)
    ADD_TO_PARTY(WARLOCKFORCE,SORCEROR,9,1500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(WARLOCKFORCE,SORCEROR,8,1500,DEFEND_ROOMS,0)
    ADD_TO_PARTY(WARLOCKFORCE,SORCEROR,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(WARLOCKFORCE,SORCEROR,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(WARLOCKFORCE,SORCEROR,7,0,ATTACK_ENEMIES,0)

CREATE_PARTY(HORNEDFORCE)
    ADD_TO_PARTY(HORNEDFORCE,HORNY,10,3000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HORNEDFORCE,HORNY,8,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HORNEDFORCE,HORNY,7,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HORNEDFORCE,HORNY,5,500,ATTACK_ENEMIES,0)

CREATE_PARTY(VAMPIREFORCE)
    ADD_TO_PARTY(VAMPIREFORCE,VAMPIRE,10,1500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(VAMPIREFORCE,VAMPIRE,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(VAMPIREFORCE,VAMPIRE,7,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(VAMPIREFORCE,VAMPIRE,4,0,ATTACK_ROOMS,0)

CREATE_PARTY(ASSORTEDFORCE)
    ADD_TO_PARTY(ASSORTEDFORCE,DARK_MISTRESS,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSORTEDFORCE,DARK_MISTRESS,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSORTEDFORCE,HELL_HOUND,6,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSORTEDFORCE,SPIDER,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSORTEDFORCE,SPIDER,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSORTEDFORCE,SPIDER,6,0,ATTACK_ENEMIES,0)

REM ##########################
REM ##########################
REM ** BRIDGE CONTINGENCY

IF_SLAB_TYPE(69,77,LAVA)
    CHANGE_SLAB_TYPE(64,90,PATH)
ENDIF
IF_SLAB_TYPE(70,77,LAVA)
    CHANGE_SLAB_TYPE(64,90,PATH)
ENDIF

IF_SLAB_TYPE(69,73,LAVA)
    CHANGE_SLAB_TYPE(52,40,PATH)
ENDIF
IF_SLAB_TYPE(70,73,LAVA)
    CHANGE_SLAB_TYPE(52,40,PATH)
ENDIF

REM ##########################
REM ##########################
REM ** MAP INTRODUCTION

IF_ACTION_POINT(1,PLAYER0)
    QUICK_OBJECTIVE_WITH_POS(2,"Hey! Welcome to the depths of 6th Haven, Chief! I am so excited to be your fresh advisor and oh wow! Do we have our work cut out for us! Above us is such a wonderful meadow with a sprawling town so there are plenty of new recruits willing to join us! There is a dangerous Keeper down here and they're as slithery as their Dragons! Keep an eye out for their waves of evil monsters though! Once they get going, they really don't hold back! Yikes! -Regards, your trusty and excited Advisor!",82,208)
ENDIF

REM ##########################
REM ##########################
REM ** MAP INFO

IF_ACTION_POINT(17,PLAYER0)
    QUICK_OBJECTIVE(7,"Hey Chief! I won't bother you much more now as it seems we might have a lot of pesky evils heading our way! But at least we know that we can dismantle and cleanse the Portal's these monsters are climbing out of when we claim them! Its going to be a lot to endure to start with! We will have to use everything we have! Careful not to let the bridge across disappear! These monsters will find a way around which could be even worse for us! -Regards, Your trusted and loyal Advisor.")
ENDIF

IF_ACTION_POINT(42,PLAYER0)
    QUICK_OBJECTIVE_WITH_POS(22,"Chief! We've found where that nasty evil Keeper is located! But one problem, we cannot reach them! Maybe one of the garrison's has the schematic that'll allow us to build a bridge over to them to rid this realm of the foul one?! -Regards, Your trusted and energized Advisor",394,121)
    REVEAL_MAP_LOCATION(PLAYER0,43,15)
    REVEAL_MAP_LOCATION(PLAYER0,44,15)
    REVEAL_MAP_LOCATION(PLAYER0,45,15)
    REVEAL_MAP_LOCATION(PLAYER0,46,9)
ENDIF

IF_ACTION_POINT(47,PLAYER0)
    QUICK_INFORMATION(23,"Oh! Druids! And it would appear they were imprisoned? No matter, with them on your side they'll create a path over to the Library for you, Chief! -Regards, Your trusty and charismatic Advisor")
    IF(PLAYER0,DRUID>=1)
        QUICK_INFORMATION_WITH_POS(24,"*Druid begins to babble and murmur in Druidic tongue*",370,253)
        REVEAL_MAP_LOCATION(PLAYER0,48,9)
        CHANGE_SLAB_TYPE(122,84,PATH)
        CHANGE_SLAB_TYPE(123,84,PATH)
    ENDIF
ENDIF

REM ##########################
REM ** CREATURE RAIDING TIMERS 
REM ##########################
REM ##########################
REM ** ACTION POINTS 2 & 3 & 4 & 5 / HG 2 / PLAYER_GOOD FLAG0 & FLAG1 / TIMER1
HIDE_HERO_GATE(2,1)

IF_ACTION_POINT(2,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-2,1)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-2,1)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
	QUICK_OBJECTIVE_WITH_POS(3,"Wow! Looks like these Orcs are going to attack in waves for some reason! I bet you my next payday if we claim that portal, dismantle and then cleanse it they'll stop being able to get through! -Regards, Your trusty and deconstructive Advisor",244,226)
	REVEAL_MAP_LOCATION(PLAYER0,5,12)
    SET_FLAG(PLAYER_GOOD,FLAG0,1)
	SET_TIMER(PLAYER_GOOD,TIMER1)
ENDIF
IF(PLAYER_GOOD,FLAG0 == 1)
	IF(PLAYER_GOOD,TIMER1 >= 3100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER_GOOD,FLAG1,1)
		IF(PLAYER_GOOD,FLAG1 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-2,2)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,ORC,AT_ACTION_POINT[5],1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,ORC,AT_ACTION_POINT[5],1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER1)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(81,75,PLAYER0)
    QUICK_INFORMATION(4,"Well that's that! Dismantled and cleansed it too! Looks like destroying this affected that Keeper in the East as well! Even better for us! Maybe if we destroy more of these it will affect that Keeper even more?! Let's go find some more! -Regards, Your trusted and enthusiastic Advisor!")
    SET_FLAG(PLAYER_GOOD,FLAG0,2)
    MAX_CREATURES(PLAYER5,69)
    CHANGE_SLAB_TYPE(80,74,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,74,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,74,HARD_FLOOR)
    CHANGE_SLAB_TYPE(80,75,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,75,WATER)
    CHANGE_SLAB_TYPE(82,75,HARD_FLOOR)
    CHANGE_SLAB_TYPE(80,76,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,76,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,76,HARD_FLOOR)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPIDERFORCE,-5,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-3,3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WARLOCKFORCE,-9,1)
ENDIF

REM ##########################
REM ##########################
REM ** ORC TIMER AP 8 & 14 / HG 3 / PLAYER_GOOD FLAG2 & FLAG3 / TIMER2
HIDE_HERO_GATE(3,1)

IF_ACTION_POINT(14,PLAYER0)
    SET_FLAG(PLAYER_GOOD,FLAG2,1)
    SET_TIMER(PLAYER_GOOD,TIMER2)
ENDIF
IF(PLAYER_GOOD,FLAG2 == 1)
    IF(PLAYER_GOOD,TIMER2 >= 7600)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER_GOOD,FLAG3,2)
        IF(PLAYER_GOOD,FLAG3 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,2)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,ORC,AT_ACTION_POINT[8],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER2)
        ENDIF
        IF(PLAYER_GOOD,FLAG3 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,3)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,ORC,AT_ACTION_POINT[8],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER2)
        ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(55,116,PLAYER0)
    QUICK_INFORMATION(14,"Well they sure were a noisey lot! Glad we're rid of them at last! Thank you, Chief! -Regards, Your trusted and quiet Advisor")
    SET_FLAG(PLAYER_GOOD,FLAG2,2)
    CHANGE_SLAB_TYPE(56,116,HARD_FLOOR)
    CHANGE_SLAB_TYPE(54,116,HARD_FLOOR)
    CHANGE_SLAB_TYPE(55,116,HARD_FLOOR)
    CHANGE_SLAB_TYPE(54,117,HARD_FLOOR)
    CHANGE_SLAB_TYPE(55,117,WATER)
    CHANGE_SLAB_TYPE(56,117,HARD_FLOOR)
    CHANGE_SLAB_TYPE(54,118,HARD_FLOOR)
    CHANGE_SLAB_TYPE(55,118,HARD_FLOOR)
    CHANGE_SLAB_TYPE(56,118,HARD_FLOOR)
ENDIF
IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        MAX_CREATURES(PLAYER5,65)
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** BILEDEMON TIMER AP 5 & 6 / HG 4 / PLAYER_GOOD FLAG4 & FLAG5 / TIMER3
HIDE_HERO_GATE(4,1)

IF_ACTION_POINT(5,PLAYER0)
    SET_FLAG(PLAYER_GOOD,FLAG4,1)
    SET_TIMER(PLAYER_GOOD,TIMER3)
ENDIF
IF(PLAYER_GOOD,FLAG4 == 1)
    IF(PLAYER_GOOD,TIMER3 >= 8600)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER_GOOD,FLAG5,2)
        IF(PLAYER_GOOD,FLAG5 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BILEFORCE,-4,1)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,BILE_DEMON,AT_ACTION_POINT[6],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER3)
        ENDIF
        IF(PLAYER_GOOD,FLAG5 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BILEFORCE,-4,2)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,BILE_DEMON,AT_ACTION_POINT[6],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER3)
        ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(82,116,PLAYER0)
    QUICK_INFORMATION(13,"Eww yuck! Good job Chief! I don't know how our lot managed to put up with such a foul stench for so long! -Regards, Your trusted and clean Advisor")
    SET_FLAG(PLAYER_GOOD,FLAG4,2)
    CHANGE_SLAB_TYPE(80,116,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,116,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,116,HARD_FLOOR)
    CHANGE_SLAB_TYPE(80,117,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,117,WATER)
    CHANGE_SLAB_TYPE(82,117,HARD_FLOOR)
    CHANGE_SLAB_TYPE(80,118,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,118,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,118,HARD_FLOOR)
ENDIF
IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        IF_SLAB_TYPE(81,117,WATER)
            MAX_CREATURES(PLAYER5,60)
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** MAIDEN TIMER AP 7 & 13 / HG 5 / PLAYER_GOOD FLAG6 & FLAG7 / TIMER4
HIDE_HERO_GATE(5,1)

IF_ACTION_POINT(13,PLAYER0)
    SET_FLAG(PLAYER_GOOD,FLAG6,1)
    SET_TIMER(PLAYER_GOOD,TIMER4)
ENDIF
IF(PLAYER_GOOD,FLAG6 == 1)
    IF(PLAYER_GOOD,TIMER4 >= 9600)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER_GOOD,FLAG7,3)
        IF(PLAYER_GOOD,FLAG7 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAIDENFORCE,-5,1)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,MAIDEN,AT_ACTION_POINT[7],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER4)
        ENDIF
        IF(PLAYER_GOOD,FLAG7 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAIDENFORCE,-5,3)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,MAIDEN,AT_ACTION_POINT[6],1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER4)
        ENDIF
        IF(PLAYER_GOOD,FLAG7 == 3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPIDERFORCE,-5,3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAIDENFORCE,-5,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER4)
        ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(81,6,PLAYER0)
    QUICK_INFORMATION(12,"These Maidens give me the shivers. Too many legs! Someone I knew once got lured into a forest during the witching hour, they swear they only noticed the top-half and- It doesn't matter actually. -Regards, Your trusted and relieved Advisor")
    SET_FLAG(PLAYER_GOOD,FLAG6,2)
    CHANGE_SLAB_TYPE(81,5,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,5,HARD_FLOOR)
    CHANGE_SLAB_TYPE(83,5,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,6,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,6,WATER)
    CHANGE_SLAB_TYPE(83,6,HARD_FLOOR)
    CHANGE_SLAB_TYPE(81,7,HARD_FLOOR)
    CHANGE_SLAB_TYPE(82,7,HARD_FLOOR)
    CHANGE_SLAB_TYPE(83,7,HARD_FLOOR)
ENDIF
IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        IF_SLAB_TYPE(81,117,WATER)
            IF_SLAB_TYPE(82,6,WATER)
                MAX_CREATURES(PLAYER5,55)
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** VAMPIRE TIMER AP 9 & 15 / HG 8 / PLAYER2 FLAG0 & FLAG1 / TIMER1
HIDE_HERO_GATE(8,1)

IF_ACTION_POINT(15,PLAYER0)
    SET_FLAG(PLAYER2,FLAG0,1)
    SET_TIMER(PLAYER2,TIMER1)
ENDIF
IF(PLAYER2,FLAG0 == 1)
    IF(PLAYER2,TIMER1 >= 11600)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER2,FLAG1,3)
        IF(PLAYER2,FLAG1 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VAMPIREFORCE,-8,2)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,VAMPIRE,AT_ACTION_POINT[9],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER1)
        ENDIF
        IF(PLAYER2,FLAG1 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VAMPIREFORCE,-8,3)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,VAMPIRE,AT_ACTION_POINT[9],1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER1)
        ENDIF
        IF(PLAYER2,FLAG1 == 3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-8,2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VAMPIREFORCE,-8,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER1)
        ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(7,120,PLAYER0)
    QUICK_INFORMATION(11,"The monestary will be pleased now that those Vampires won't be a threat! Thank you, Chief! -Regards, Your trusted and respectful Advisor")
    SET_FLAG(PLAYER2,FLAG0,2)
    CHANGE_SLAB_TYPE(6,120,HARD_FLOOR)
    CHANGE_SLAB_TYPE(6,121,HARD_FLOOR)
    CHANGE_SLAB_TYPE(6,122,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,120,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,121,WATER)
    CHANGE_SLAB_TYPE(7,122,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,120,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,121,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,122,HARD_FLOOR)
ENDIF

IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        IF_SLAB_TYPE(81,117,WATER)
            IF_SLAB_TYPE(82,6,WATER)
                IF_SLAB_TYPE(7,121,WATER)
                    MAX_CREATURES(PLAYER5,50)
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** ASSORTEDFORCE AP 11 & 13 / HG 7 / PLAYER2 FLAG2 & FLAG3 / TIMER2
HIDE_HERO_GATE(7,1)

IF_ACTION_POINT(13,PLAYER0)
    SET_FLAG(PLAYER2,FLAG2,1)
    SET_TIMER(PLAYER2,TIMER2)
ENDIF
IF(PLAYER2,FLAG2 == 1)
    IF(PLAYER2,TIMER2 >= 10600)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER2,FLAG3,3)
        IF(PLAYER2,FLAG3 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,DARK_MISTRESS,AT_ACTION_POINT[11],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER2)
        ENDIF
        IF(PLAYER2,FLAG3 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,2)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,HELL_HOUND,AT_ACTION_POINT[11],3)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,SPIDER,AT_ACTION_POINT[11],3)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER2)
        ENDIF
        IF(PLAYER2,FLAG3 == 3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER2)
        ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(14,3,PLAYER0)
    QUICK_INFORMATION_WITH_POS(10,"Excellent Chief! They didn't know what hit'em! Now, if you haven't already might I suggest we stop those annoying flies from coming after us? -Regards, Your trusted and near-deafened Advisor",22,55)
    REVEAL_MAP_LOCATION(PLAYER0,10,12)
    SET_FLAG(PLAYER2,FLAG2,2)
    CHANGE_SLAB_TYPE(13,1,HARD_FLOOR)
    CHANGE_SLAB_TYPE(13,2,HARD_FLOOR)
    CHANGE_SLAB_TYPE(13,3,HARD_FLOOR)
    CHANGE_SLAB_TYPE(14,1,HARD_FLOOR)
    CHANGE_SLAB_TYPE(14,2,WATER)
    CHANGE_SLAB_TYPE(14,3,HARD_FLOOR)
    CHANGE_SLAB_TYPE(15,1,HARD_FLOOR)
    CHANGE_SLAB_TYPE(15,2,HARD_FLOOR)
    CHANGE_SLAB_TYPE(15,3,HARD_FLOOR)
ENDIF

IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        IF_SLAB_TYPE(81,117,WATER)
            IF_SLAB_TYPE(82,6,WATER)
                IF_SLAB_TYPE(7,121,WATER)
                    IF_SLAB_TYPE(14,2,WATER)
                        MAX_CREATURES(PLAYER5,45)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** FLYFORCE AP 4 & 10 / HG 6 / PLAYER2 FLAG4 & FLAG5 / TIMER3
HIDE_HERO_GATE(6,1)

IF_ACTION_POINT(4,PLAYER0)
	SET_FLAG(PLAYER2,FLAG4,1)
	SET_TIMER(PLAYER2,TIMER3)
ENDIF
IF(PLAYER2,FLAG4 == 1)
	IF(PLAYER2,TIMER3 >= 6900)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER2,FLAG5,3)
		IF(PLAYER2,FLAG5 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,FLY,AT_ACTION_POINT[10],2)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,FLY,AT_ACTION_POINT[10],3)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2,TIMER3)
		ENDIF
        IF(PLAYER2,FLAG5 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,2)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,FLY,AT_ACTION_POINT[10],1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,FLY,AT_ACTION_POINT[10],1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2,TIMER3)
		ENDIF
        IF(PLAYER2,FLAG5 == 3)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,3)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2,TIMER3)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(6,18,PLAYER0)
    QUICK_INFORMATION(9,"At long last the near-constant buzzes and general annoyance of those flies has gone! Thank you, Chief! -Regards, Your trusted and less irritated Advisor")
    SET_FLAG(PLAYER2,FLAG4,2)
    CHANGE_SLAB_TYPE(6,17,HARD_FLOOR)
    CHANGE_SLAB_TYPE(6,18,HARD_FLOOR)
    CHANGE_SLAB_TYPE(6,19,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,17,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,18,WATER)
    CHANGE_SLAB_TYPE(7,19,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,17,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,18,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,19,HARD_FLOOR)
ENDIF

IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        IF_SLAB_TYPE(81,117,WATER)
            IF_SLAB_TYPE(82,6,WATER)
                IF_SLAB_TYPE(7,121,WATER)
                    IF_SLAB_TYPE(14,2,WATER)
                        IF_SLAB_TYPE(7,18,WATER)
                            MAX_CREATURES(PLAYER5,40)
                        ENDIF
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** WARLOCK TIMER AP 5 & 12 / HG9 PLAYER2 FLAG6 & 7 / TIMER4
HIDE_HERO_GATE(9,1)

IF_ACTION_POINT(5,PLAYER0)
    SET_FLAG(PLAYER2,FLAG6,1)
    SET_TIMER(PLAYER2,TIMER4)
ENDIF
IF(PLAYER2,FLAG6 == 1)
    IF(PLAYER2,TIMER4 >= 9600)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER2,FLAG7,3)
        IF(PLAYER2,FLAG7 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WARLOCKFORCE,-9,1)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,SORCEROR,AT_ACTION_POINT[12],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER4)
        ENDIF
        IF(PLAYER2,FLAG7 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WARLOCKFORCE,-9,3)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,SORCEROR,AT_ACTION_POINT[12],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER4)
        ENDIF
        IF(PLAYER2,FLAG7 == 3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WARLOCKFORCE,-9,1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPIDERFORCE,-9,4)
            NEXT_COMMAND_REUSABLE
            LEVEL_UP_CREATURE(PLAYER_GOOD,SPIDER,AT_ACTION_POINT[12],2)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER4)
        ENDIF
    ENDIF
ENDIF
IF_SLAB_OWNER(135,85,PLAYER0)
    QUICK_INFORMATION(8,"That's our Chief! Not even Sorcerers or even Horned Reapers stand a chance against you! - Regards, Your trusted and inspired Advisor.")
    SET_FLAG(PLAYER2,FLAG6,2)
    SET_FLAG(PLAYER3,FLAG0,2)
    CHANGE_SLAB_TYPE(135,84,HARD_FLOOR)
    CHANGE_SLAB_TYPE(135,85,HARD_FLOOR)
    CHANGE_SLAB_TYPE(135,86,HARD_FLOOR)
    CHANGE_SLAB_TYPE(136,84,HARD_FLOOR)
    CHANGE_SLAB_TYPE(136,85,WATER)
    CHANGE_SLAB_TYPE(136,86,HARD_FLOOR)
    CHANGE_SLAB_TYPE(137,84,HARD_FLOOR)
    CHANGE_SLAB_TYPE(137,85,HARD_FLOOR)
    CHANGE_SLAB_TYPE(137,86,HARD_FLOOR)
ENDIF
IF_SLAB_TYPE(81,75,WATER)
    IF_SLAB_TYPE(55,117,WATER)
        IF_SLAB_TYPE(81,117,WATER)
            IF_SLAB_TYPE(82,6,WATER)
                IF_SLAB_TYPE(7,121,WATER)
                    IF_SLAB_TYPE(14,2,WATER)
                        IF_SLAB_TYPE(7,18,WATER)
                            IF_SLAB_TYPE(136,85,WATER)
                                MAX_CREATURES(PLAYER5,35)
                                CREATURE_ENTRANCE_LEVEL(PLAYER5,5)
                            ENDIF
                        ENDIF
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** HORNY TIMER AP 18 / HG 9 / PLAYER3 FLAG0 & 1 / TIMER5

IF_ACTION_POINT(18,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HORNEDFORCE,-9,1)
    SET_FLAG(PLAYER3,FLAG0,1)
    SET_TIMER(PLAYER3,TIMER5)
ENDIF
IF(PLAYER3,FLAG0 == 1)
    IF(PLAYER3,TIMER5 >= 12700)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER3,FLAG1,1)
        IF(PLAYER3,FLAG1 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HORNEDFORCE,-9,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER5)
        ENDIF
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ENCROACHING ON RAIDER PORTALS SINGLE OR DOUBLED ONCE
REM AP 18 / 19 / 20 / 21 / 22 / 23

IF_ACTION_POINT(18,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,6,12)
    QUICK_INFORMATION_WITH_POS(17,"The stench seems to emanating from here, Chief! -Regards, Your trusted and helpful Advisor",244,352)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BILEFORCE,-4,1)
ENDIF

IF_ACTION_POINT(19,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,9,12)
    QUICK_INFORMATION_WITH_POS(19,"That stench of death? Just over here, Chief! -Regards, Your trusted and warm Advisor",22,364)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VAMPIREFORCE,-8,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-8,2)
ENDIF

IF_ACTION_POINT(20,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,12,9)
    QUICK_INFORMATION_WITH_POS(18,"Over there! Chief! That's where their portal is! -Regards, Your trusted a clarifying Advisor",409,256)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WARLOCKFORCE,-9,3)
ENDIF

IF_ACTION_POINT(21,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HORNEDFORCE,-9,1)
ENDIF

IF_ACTION_POINT(22,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WARLOCKFORCE,-9,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HORNEDFORCE,-9,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPIDERFORCE,-9,1)
ENDIF

IF_ACTION_POINT(23,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,7,12)
    QUICK_INFORMATION_WITH_POS(21,"The Maiden's portal has been sighted! I really do look forward to not seeing them coming afterwards, Chief! -Regards, Your trusted and two-legged Advisor",247,19)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAIDENFORCE,-5,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPIDERFORCE,-5,2)
ENDIF

REM ##########################
REM ##########################
REM ** ENCROACHING ON ORC GARRISON
REM AP 24 / 25 / 26 / 27 / 28

IF_ACTION_POINT(24,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,1)
ENDIF

IF_ACTION_POINT(25,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-3,4)
ENDIF

IF_ACTION_POINT(26,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,8,12)
    QUICK_INFORMATION_WITH_POS(20,"Chief! The portal the Orcs have been sprinting from isn't that far ahead! -Regards, Your trusted and paced Advisor",166,352)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,2)
ENDIF

IF_ACTION_POINT(27,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,1)
ENDIF

IF_ACTION_POINT(28,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,2)
ENDIF

REM ##########################
REM ##########################
REM ** ENCROACHING ON NORTH-WESTERN GARRISON
REM ** HERO GATES 6 & 7 / AP 29 / 30 / 31 / 32 / 33 / 34 / 35 / 36 / 37 / 38 / 39

IF_ACTION_POINT(29,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,2)
    ENDIF
ENDIF

IF_ACTION_POINT(30,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ENDIF
ENDIF

IF_ACTION_POINT(31,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ENDIF
ENDIF

IF_ACTION_POINT(32,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ENDIF
ENDIF

IF_ACTION_POINT(33,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ENDIF
ENDIF

IF_ACTION_POINT(34,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,1)
    ENDIF
ENDIF

IF_ACTION_POINT(35,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ENDIF
ENDIF

IF_ACTION_POINT(36,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,2)
    ENDIF
ENDIF

IF_ACTION_POINT(37,PLAYER0)
    QUICK_INFORMATION_WITH_POS(16,"So that's where these ones have been entering from! -Regards, Your trusted and insightful Advisor",43,7)
    REVEAL_MAP_LOCATION(PLAYER0,11,9)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
    ENDIF
ENDIF

IF_ACTION_POINT(38,PLAYER0)
    IF_SLAB_OWNER(14,2,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSORTEDFORCE,-7,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,1)
    ENDIF
ENDIF

IF_ACTION_POINT(39,PLAYER0)
    IF_SLAB_OWNER(7,18,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLYFORCE,-6,3)
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** REACHING SOUTH-EASTERN LIBRARY AP 16

IF_ACTION_POINT(16,PLAYER0)
    QUICK_INFORMATION_WITH_POS(35,"So this is where they kept the schematic for the bridge! Imagine that! Good thing we came down this way! But we might struggle to reach the Library, hmm... Dare we enlist a Druid to help us get across? -Regards, Your Trusted and concerned Advisor",379,244)
ENDIF
IF_SLAB_OWNER(126,81,PLAYER0)
    ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
ENDIF

REM ##########################
REM ##########################
REM ** EXTRA PORTAL / ADD BRIDGE / INCREASE PLAYER0s MAXIMUM CREATURES / AP 40 & 41

IF_ACTION_POINT(40,PLAYER0)
    QUICK_INFORMATION_WITH_POS(15,"Hey Chief get a load of this over here! I think they were too scared of all the monsters and closed themselves in, but there's definitely some of our kind in there! Maybe if we dismantle the portals East and West of here they'll let us in? -Regards, Your trusted and curious Advisor",172,58)
    REVEAL_MAP_LOCATION(PLAYER0,41,15)
ENDIF

IF_SLAB_TYPE(14,2,WATER)
    IF_SLAB_TYPE(82,6,WATER)
        IF_SLAB_TYPE(59,21,LAVA)
            CHANGE_SLAB_TYPE(59,21,BRIDGE_FRAME)
        ENDIF
        IF_SLAB_TYPE(60,21,LAVA)
            CHANGE_SLAB_TYPE(60,21,BRIDGE_FRAME)
        ENDIF
        IF_SLAB_TYPE(55,21,LAVA)
            CHANGE_SLAB_TYPE(55,21,BRIDGE_FRAME)
        ENDIF
        IF_SLAB_TYPE(54,21,LAVA)
            CHANGE_SLAB_TYPE(54,21,BRIDGE_FRAME)
        ENDIF
    ENDIF
ENDIF

IF_SLAB_OWNER(57,5,PLAYER0)
    MAX_CREATURES(PLAYER0,65)
ENDIF

REM ##########################
REM ##########################
REM ** LOSE CONDITION

IF(PLAYER0,DUNGEON_DESTROYED == 1)
    QUICK_OBJECTIVE(6,"AH! NO NO NO NO NO! PLEASE! CHIEF! HELP ME! THEY'RE TEARING ME APAR-")
    LOSE_GAME
ENDIF

REM ##########################
REM ##########################
REM ** WIN CONDITION

IF(PLAYER5,DUNGEON_DESTROYED == 1)
    QUICK_OBJECTIVE(5,"That. Was. INCREDIBLE! Well done, Chief! I am proud to be your trusted advisor! Maybe you'll get to see if the 5th Haven has any evil lurking beneath the depths there as well! Who knows! -Regards, Your ever grateful and trusted Advisor.")
    WIN_GAME
ENDIF