LEVEL_VERSION(1)

REM ##########################
REM ##########################
REM ** MAP SETTINGS

SET_GENERATE_SPEED(450)
START_MONEY(ALL_PLAYERS,12500)
MAX_CREATURES(PLAYER0,35)
MAX_CREATURES(PLAYER4,21)
SET_PLAYER_COLOR(PLAYER0,WHITE)
SET_PLAYER_COLOR(PLAYER_GOOD,ORANGE)


REM ##########################
REM ##########################
REM ** GAME RULES

SET_ROOM_CONFIGURATION(RESEARCH,Cost,1400)
SET_ROOM_CONFIGURATION(TEMPLE,Properties,CANNOT_BE_SOLD)

CONCEAL_MAP_RECT(PLAYER0,151,192,12,14,1)

REM ##########################
REM ##########################
REM ** Anti Guard-Post Cheesing

IF_SLAB_TYPE(35,102,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(35,102,PATH)
ENDIF

IF_SLAB_TYPE(33,103,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(33,103,PATH)
ENDIF

IF_SLAB_TYPE(40,110,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(40,110,PATH)
ENDIF

IF_SLAB_TYPE(41,109,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(41,109,PATH)
ENDIF

IF_SLAB_TYPE(55,70,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(55,70,PATH)
ENDIF

IF_SLAB_TYPE(45,70,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(45,70,PATH)
ENDIF

IF_SLAB_TYPE(34,60,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(34,60,PATH)
ENDIF

IF_SLAB_TYPE(50,55,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(50,55,PATH)
ENDIF

IF_SLAB_TYPE(35,102,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(35,102,PATH)
ENDIF

IF_SLAB_TYPE(38,40,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(38,40,PATH)
ENDIF

IF_SLAB_TYPE(50,28,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(50,28,PATH)
ENDIF

IF_SLAB_TYPE(66,60,GUARD_AREA)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(66,60,PATH)
ENDIF


REM ##########################
REM ##########################
REM ** FLAG6 TEMPLE RECIPE

SET_SACRIFICE_RECIPE(CUSTOMREWARD,FLAG6,WIZARD)
IF(PLAYER0,FLAG6 >= 1)
    IF(PLAYER0,BARBARIAN >= 1)
        NEXT_COMMAND_REUSABLE
        QUICK_INFORMATION(51,"Your Heroes have all been levelled up")
        NEXT_COMMAND_REUSABLE
        LEVEL_UP_PLAYERS_CREATURES(PLAYER0,ANY_CREATURE,1)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER0,FLAG6,0)
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** FLAG7 TEMPLE RECIPE

SET_SACRIFICE_RECIPE(CUSTOMREWARD,FLAG7,TIME_MAGE)
IF(PLAYER0,Flag7 >= 1)
    IF(PLAYER0,GIANT >= 1)
        NEXT_COMMAND_REUSABLE
        QUICK_INFORMATION(52,"Your Heroes have all been levelled up")
        NEXT_COMMAND_REUSABLE
        LEVEL_UP_PLAYERS_CREATURES(PLAYER0,ANY_CREATURE,1)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER0,FLAG7,0)
    ENDIF
ENDIF


REM ##########################
REM ##########################
REM ** ALLIES/ENEMY & COMPUTER PLAYER SETUP

ALLY_PLAYERS(PLAYER0,PLAYER4,3)
ALLY_PLAYERS(PLAYER0,PLAYER6,2)
ALLY_PLAYERS(PLAYER0,PLAYER_GOOD,2)
ALLY_PLAYERS(PLAYER6,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER4,PLAYER_GOOD,2)
ALLY_PLAYERS(PLAYER4,PLAYER6,2)
COMPUTER_PLAYER(PLAYER4,2)
COMPUTER_PLAYER(PLAYER6,9)


REM ##########################
REM ##########################
REM ** TUNNELLER Customs

SET_DIGGER(PLAYER4,TUNNELLER)
SET_CREATURE_PROPERTY(TUNNELLER,SPECIAL_DIGGER,1)
SET_CREATURE_CONFIGURATION(TUNNELLER,AnnoyLevel,30000)
SET_CREATURE_CONFIGURATION(TUNNELLER,TokingRecovery,15)
SET_CREATURE_CONFIGURATION(TUNNELLER,TrainingValue,1)
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,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 ** DWARFA Customization

SET_DIGGER(PLAYER0,DWARFA)
SET_CREATURE_PROPERTY(DWARFA,SPECIAL_DIGGER,1)
SET_CREATURE_PROPERTY(DWARFA,NO_CORPSE_ROTTING,1)
SET_CREATURE_PROPERTY(DWARFA,NO_IMPRISONMENT,1)
SET_CREATURE_PROPERTY(DWARFA,NO_RESURRECT,1)

SET_CREATURE_CONFIGURATION(DWARFA,AnnoyLevel,30000)
SET_CREATURE_CONFIGURATION(DWARFA,TokingRecovery,15)

IF_ACTION_POINT(1,PLAYER0)
	IF_SLAB_OWNER(54,109,PLAYER0)
        QUICK_INFORMATION(2,"We's rely on good ol'fashioned Dwarven diggers 'round 'ere! They work for us lot voluntarily ya see! Get to it, Dwarves!",-1)
        ADD_CREATURE_TO_LEVEL(PLAYER0,DWARFA,-1,4,2,0,FALL)
		SET_FLAG(PLAYER0,FLAG0,1)
		SET_TIMER(PLAYER0,TIMER0)
	ENDIF
ENDIF
IF(PLAYER0,FLAG0 == 1)
	IF(PLAYER0,TIMER0 >= 2750)
        IF(PLAYER0,DWARFA>=24)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER0)
        ENDIF
        IF(PLAYER0,DWARFA<=19)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,DWARFA,-1,4,2,0,FALL)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER0)
        ENDIF
    ENDIF
ENDIF



REM ##########################
REM ##########################
REM ** CREATURE/HERO MODIFIERS

SET_CREATURE_CONFIGURATION(THIEF,TrainingValue,3)
SET_CREATURE_CONFIGURATION(GIANT,TrainingValue,3)
SET_CREATURE_CONFIGURATION(FLY,FearStronger,30000)

SET_CREATURE_PROPERTY(GHOST,NO_RESURRECT,1)
SET_CREATURE_PROPERTY(SKELETON,NO_RESURRECT,1)

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

SET_CREATURE_CONFIGURATION(ARCHER,Pay,85)
SET_CREATURE_CONFIGURATION(BARBARIAN,Pay,95)
SET_CREATURE_CONFIGURATION(FAIRY,Pay,205)
SET_CREATURE_CONFIGURATION(GIANT,Pay,125)
SET_CREATURE_CONFIGURATION(MONK,Pay,275)
SET_CREATURE_CONFIGURATION(SAMURAI,Pay,315)
SET_CREATURE_CONFIGURATION(THIEF,Pay,145)
SET_CREATURE_CONFIGURATION(TIME_MAGE,Pay,475)
SET_CREATURE_CONFIGURATION(WIZARD,Pay,475)

SET_CREATURE_CONFIGURATION(DRAGON,Pay,2)
SET_CREATURE_CONFIGURATION(ORC,Pay,2)
SET_CREATURE_CONFIGURATION(DRUID,Pay,2)
SET_CREATURE_CONFIGURATION(TROLL,Pay,2)

SET_CREATURE_CONFIGURATION(DRAGON,PrimaryJobs,TRAIN)
SET_CREATURE_CONFIGURATION(TROLL,PrimaryJobs,MANUFACTURE)
SET_CREATURE_CONFIGURATION(DRAGON,SecondaryJobs,BARRACK)
SET_CREATURE_CONFIGURATION(TROLL,SecondaryJobs,BARRACK)
SET_CREATURE_CONFIGURATION(ORC,PrimaryJobs,TRAIN)
SET_CREATURE_CONFIGURATION(DRUID,PrimaryJobs,TRAIN)
SET_CREATURE_CONFIGURATION(ORC,SecondaryJobs,BARRACK)
SET_CREATURE_CONFIGURATION(DRUID,SecondaryJobs,BARRACK)

SET_CREATURE_CONFIGURATION(DRAGON,TrainingCost,0)
SET_CREATURE_CONFIGURATION(ORC,TrainingCost,0)
SET_CREATURE_CONFIGURATION(DRUID,TrainingCost,0)

SET_CREATURE_CONFIGURATION(DRAGON,TrainingValue,2)
SET_CREATURE_CONFIGURATION(ORC,TrainingValue,2)
SET_CREATURE_CONFIGURATION(DRUID,TrainingValue,2)
SET_CREATURE_CONFIGURATION(DEMONSPAWN,TrainingValue,8)

SET_CREATURE_INSTANCE(MONK,6,RANGED_HEAL,6)

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

ADD_CREATURE_TO_POOL(THIEF,1)
ADD_CREATURE_TO_POOL(DWARFA,0)
ADD_CREATURE_TO_POOL(TUNNELLER,0)
ADD_CREATURE_TO_POOL(ARCHER,10)
ADD_CREATURE_TO_POOL(BARBARIAN,23)
ADD_CREATURE_TO_POOL(MONK,0)
ADD_CREATURE_TO_POOL(FAIRY,5)
ADD_CREATURE_TO_POOL(WITCH,3)
ADD_CREATURE_TO_POOL(WIZARD,25)
ADD_CREATURE_TO_POOL(GIANT,30)
ADD_CREATURE_TO_POOL(SAMURAI,3)
ADD_CREATURE_TO_POOL(TIME_MAGE,5)
ADD_CREATURE_TO_POOL(AVATAR,0)

IF(PLAYER0,THIEF==1)
    ADD_CREATURE_TO_POOL(THIEF,0)
    CREATURE_AVAILABLE(PLAYER0,THIEF,0,0)
ENDIF


IF_SLAB_OWNER(73,85,PLAYER0)
    MAX_CREATURES(PLAYER0,42)
    CREATURE_AVAILABLE(ALL_PLAYERS,SAMURAI,1,0)
    CREATURE_AVAILABLE(ALL_PLAYERS,WITCH,1,0)
ENDIF

IF_SLAB_OWNER(75,15,PLAYER0)
    MAX_CREATURES(PLAYER0,47)
ENDIF


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

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


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(BARBARIAN,EntranceRoom,BARRACKS,TRAINING)
SET_CREATURE_CONFIGURATION(SAMURAI,EntranceRoom,PRISON)
SET_CREATURE_CONFIGURATION(WITCH,EntranceRoom,TORTURE)
SET_CREATURE_CONFIGURATION(TIME_MAGE,EntranceRoom,RESEARCH,TEMPLE)
SET_CREATURE_CONFIGURATION(FAIRY,EntranceRoom,RESEARCH,TEMPLE)


REM ##########################
REM ##########################
REM ** BANNED LIST

CREATURE_AVAILABLE(ALL_PLAYERS,FLY,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,0,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,0,0)


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

ROOM_AVAILABLE(PLAYER4,TREASURE,0,0)
ROOM_AVAILABLE(PLAYER6,TREASURE,0,0)
ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER4,LAIR,0,0)
ROOM_AVAILABLE(PLAYER6,LAIR,0,0)
ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
ROOM_AVAILABLE(PLAYER4,GARDEN,0,0)
ROOM_AVAILABLE(PLAYER6,GARDEN,0,0)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER4,TRAINING,0,0)
ROOM_AVAILABLE(PLAYER6,TRAINING,0,0)
ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,0,0)
ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,0,0)
ROOM_AVAILABLE(PLAYER4,GUARD_POST,0,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,1)
ROOM_AVAILABLE(PLAYER4,WORKSHOP,0,0)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,0,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,0,0)
ROOM_AVAILABLE(PLAYER4,BARRACKS,0,0)
ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,4,0)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,0,0)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,0,0)


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

MAGIC_AVAILABLE(PLAYER0,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER4,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER6,POWER_HAND,0,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER4,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER6,POWER_SLAP,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_POSSESS,1,1)
MAGIC_AVAILABLE(PLAYER4,POWER_TUNNELLER,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,0,0)
MAGIC_AVAILABLE(PLAYER6,POWER_IMP,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CONCEAL,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,0,0)
MAGIC_AVAILABLE(PLAYER4,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_ARMAGEDDON,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DESTROY_WALLS,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_TIME_BOMB,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_REBOUND,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_FREEZE,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLOW,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_FLIGHT,0,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_VISION,0,0)


REM ##########################
REM ##########################
REM ** RESEARCH COST

RESEARCH(PLAYER4,MAGIC,POWER_SIGHT,18000)
RESEARCH(PLAYER4,MAGIC,POWER_SPEED,27000)
RESEARCH(PLAYER4,MAGIC,POWER_OBEY,43000)
RESEARCH(PLAYER4,MAGIC,POWER_CALL_TO_ARMS,81000)
RESEARCH(PLAYER4,MAGIC,POWER_CONCEAL,108000)
RESEARCH(PLAYER4,MAGIC,POWER_CAVE_IN,123000)
RESEARCH(PLAYER4,MAGIC,POWER_HEAL_CREATURE,537000)
RESEARCH(PLAYER4,MAGIC,POWER_PROTECT,559000)


REM ##########################
REM ##########################
REM ** TRAPS LIST

TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,0,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,0,0)
TRAP_AVAILABLE(ALL_PLAYERS,LAVA,0,0)
TRAP_AVAILABLE(PLAYER0,BOULDER,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,0,0)
TRAP_AVAILABLE(ALL_PLAYERS,TNT,0,0)
TRAP_AVAILABLE(PLAYER0,SENTRY,1,0)
TRAP_AVAILABLE(PLAYER0,BALLISTA,1,0)
TRAP_AVAILABLE(PLAYER6,SENTRY,1,0)
TRAP_AVAILABLE(PLAYER6,BALLISTA,1,0)


REM ##########################
REM ##########################
REM ** DOORS LIST

DOOR_AVAILABLE(PLAYER0,WOOD,1,0)
DOOR_AVAILABLE(PLAYER0,BRACED,1,0)
DOOR_AVAILABLE(PLAYER0,STEEL,1,0)
DOOR_AVAILABLE(PLAYER0,MAGIC,0,0)
DOOR_AVAILABLE(PLAYER4,MAGIC,1,0)
DOOR_AVAILABLE(PLAYER6,MAGIC,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,SECRET,0,0)
DOOR_AVAILABLE(ALL_PLAYERS,MIDAS,0,0)

REM ##########################
REM ##########################
REM ** PARTY GUEST LIST

CREATE_PARTY(MELEE1)
    ADD_TO_PARTY(MELEE1,ORC,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(MELEE1,HELL_HOUND,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE1,HELL_HOUND,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE1,BILE_DEMON,3,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE1,BILE_DEMON,3,0,ATTACK_ENEMIES,0)

CREATE_PARTY(ORCFORCE)
    ADD_TO_PARTY(ORCFORCE,ORC,8,750,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCFORCE,ORC,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCFORCE,ORC,6,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(ORCWAVE)
    ADD_TO_PARTY(ORCWAVE,ORC,5,300,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCWAVE,ORC,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCWAVE,ORC,3,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ORCWAVE,ORC,2,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ORCWAVE,ORC,2,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(RANGED1)
    ADD_TO_PARTY(RANGED1,SORCEROR,7,750,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED1,SORCEROR,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED1,SORCEROR,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED1,SORCEROR,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED1,SORCEROR,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED1,DRUID,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED1,DARK_MISTRESS,5,0,ATTACK_ENEMIES,0)

CREATE_PARTY(RANGED2)
    ADD_TO_PARTY(RANGED2,SORCEROR,7,750,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED2,SORCEROR,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED2,DRUID,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RANGED2,DARK_MISTRESS,5,0,ATTACK_ENEMIES,0)

CREATE_PARTY(MELEE2)
    ADD_TO_PARTY(MELEE2,ORC,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE2,TROLL,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE2,TENTACLE,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE2,TROLL,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE2,SPIDER,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(MELEE2,TENTACLE,4,0,ATTACK_ENEMIES,0)

CREATE_PARTY(DRAGORC)
    ADD_TO_PARTY(DRAGORC,DRAGON,8,1250,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGORC,DRAGON,7,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGORC,DRAGON,6,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGORC,ORC,6,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGORC,ORC,6,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGORC,ORC,5,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(DRAGSPAWN)
    ADD_TO_PARTY(DRAGSPAWN,DRAGON,8,1250,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGSPAWN,DRAGON,5,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(DRAGSPAWN,DEMONSPAWN,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(DRAGSPAWN,DEMONSPAWN,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(DRAGSPAWN,DEMONSPAWN,9,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(DRAGSPAWN,DEMONSPAWN,9,0,ATTACK_ENEMIES,0)

CREATE_PARTY(SKELEZ)
    ADD_TO_PARTY(SKELEZ,SKELETON,9,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ,SKELETON,8,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ,SKELETON,8,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ,SKELETON,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ,SKELETON,7,0,ATTACK_ENEMIES,0)

CREATE_PARTY(SKELEZ2)
    ADD_TO_PARTY(SKELEZ2,SKELETON,7,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ2,SKELETON,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ2,SKELETON,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ2,SKELETON,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SKELEZ2,SKELETON,4,0,ATTACK_ENEMIES,0)

CREATE_PARTY(ASSASSINATE)
    ADD_TO_PARTY(ASSASSINATE,ORC,9,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSASSINATE,HELL_HOUND,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSINATE,HELL_HOUND,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSINATE,DRAGON,9,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSASSINATE,DARK_MISTRESS,8,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ASSASSINATE,ORC,7,0,ATTACK_ENEMIES,0)

REM ##########################
REM ##########################
REM ** MAP NARRATIVE

QUICK_OBJECTIVE(1,"Welcome to tha'h 5th 'aven! We don't use no magic or fancy spellcasters 'ere! We barely get along with'em! We need not no research or that brainy scholar silliness 'ere! Brute strength and ar'naturally gained abilities will see us through! Just lend'us ya leadership and we do tha'h rest!")

IF_ACTION_POINT(11,PLAYER0)
    QUICK_INFORMATION_WITH_POS(3,"We gots tha'h door locked whilst we train up tha'h new 'cruits! Don't trigger them alarms until we ready! Just a warnin', don't wanna die 'cause you think these monsters ain't weak! T'ah.",151,201)
ENDIF

IF_ACTION_POINT(12,PLAYER0)
    QUICK_INFORMATION_WITH_POS(4,"See what we mean! Barely friends! They won't 'elp us out so we won't 'elp them out! Haha, they can look after their own kin as they expect us t'do same!",232,73)
    REVEAL_MAP_LOCATION(PLAYER0,PLAYER4,30)
ENDIF

IF(PLAYER4,DUNGEON_DESTROYED == 1)
    QUICK_INFORMATION(5,"O... Looks like they were too weak after all! Err... Shame that. Brute strength will see us through 'ere though! None of that brainy scholar fancy magic!")
    CHANGE_SLAB_TYPE(57,19,HARD)
    CHANGE_SLAB_TYPE(59,19,LAVA)
ENDIF

IF_ACTION_POINT(13,PLAYER0)
    QUICK_INFORMATION_WITH_POS(6,"Them selfish brainy lot sealed off their library! Good. Means them evil monsters ain't gettin' access and we don't need it either! Git'rid of them Wizards and Mages! Or else!!! We got the rest of their dungeon, iz alls we need!",160,58)
    REVEAL_MAP_LOCATION(PLAYER0,14,21)
ENDIF

IF_SLAB_OWNER(79,80,PLAYER0)
    QUICK_INFORMATION_WITH_POS(7,"Well looky 'ere, a library! Nows we got what we needs to build a'bridge! We should sell this room now. You's better sell this room!",242,242)
    ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
ENDIF

IF_SLAB_OWNER(69,87,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
        QUICK_INFORMATION_WITH_POS(8,"We's take the worship of Gods very seriously. Very, seriously! Ain't no one sellin' any parts of a Temple 'round 'ere! We's think think them Wizards and Time Mage's that were cowering 'ere should be tossed in! Keep tha'h Monks. They's respect tha'h Gods so we's respect them!",206,259)
    ENDIF
ENDIF

REM ##########################
REM ##########################
REM ** ALTERNATIVE PLAY

IF(PLAYER0,TIME_MAGE >= 1)
    IF(PLAYER0,WIZARD >= 1)
       IF_ACTION_POINT(15,PLAYER0)
            MOVE_CREATURE(PLAYER0,TIME_MAGE,AT_ACTION_POINT[15],1,15,EFFECT_BALL_PUFF_ORANGE)
            CHANGE_SLAB_TYPE(57,19,PATH)
            QUICK_INFORMATION_WITH_POS(9,"We's told ya to get rid of all them fancy brainy scholars! Well. We's ain't puttin' up with this!",172,58)
            SET_CREATURE_CONFIGURATION(BARBARIAN,AnnoyLevel,1)
            SET_CREATURE_CONFIGURATION(BARBARIAN,InTemple,70)
            SET_CREATURE_CONFIGURATION(BARBARIAN,InHand,70)
            SET_CREATURE_CONFIGURATION(BARBARIAN,AngerJobs,LEAVE_DUNGEON)
            SET_CREATURE_CONFIGURATION(ARCHER,AnnoyLevel,1)
            SET_CREATURE_CONFIGURATION(ARCHER,InTemple,70)
            SET_CREATURE_CONFIGURATION(ARCHER,InHand,70)
            SET_CREATURE_CONFIGURATION(ARCHER,AngerJobs,LEAVE_DUNGEON)
            SET_CREATURE_CONFIGURATION(GIANT,AnnoyLevel,1)
            SET_CREATURE_CONFIGURATION(GIANT,InTemple,70)
            SET_CREATURE_CONFIGURATION(GIANT,InHand,70)
            SET_CREATURE_CONFIGURATION(GIANT,AngerJobs,LEAVE_DUNGEON)
            SET_CREATURE_CONFIGURATION(SAMURAI,AnnoyLevel,1)
            SET_CREATURE_CONFIGURATION(SAMURAI,InTemple,70)
            SET_CREATURE_CONFIGURATION(SAMURAI,InHand,70)
            SET_CREATURE_CONFIGURATION(SAMURAI,AngerJobs,LEAVE_DUNGEON)
            SET_CREATURE_CONFIGURATION(MONK,AnnoyLevel,1)
            SET_CREATURE_CONFIGURATION(MONK,InTemple,70)
            SET_CREATURE_CONFIGURATION(MONK,InHand,70)
            SET_CREATURE_CONFIGURATION(MONK,AngerJobs,LEAVE_DUNGEON)
            CREATURE_AVAILABLE(PLAYER0,THIEF,0,0)
            CREATURE_AVAILABLE(PLAYER0,ARCHER,0,0)
            CREATURE_AVAILABLE(PLAYER0,BARBARIAN,0,0)
            CREATURE_AVAILABLE(PLAYER0,GIANT,0,0)
            CREATURE_AVAILABLE(PLAYER0,WIZARD,1,0)
            CREATURE_AVAILABLE(PLAYER0,TIME_MAGE,1,0)
            CREATURE_AVAILABLE(PLAYER0,FAIRY,1,0)
            CREATURE_AVAILABLE(ALL_PLAYERS,SAMURAI,0,0)
            CREATURE_AVAILABLE(ALL_PLAYERS,WITCH,0,0)
            ADD_CREATURE_TO_POOL(THIEF,0)
            ADD_CREATURE_TO_POOL(DWARFA,0)
            ADD_CREATURE_TO_POOL(TUNNELLER,0)
            ADD_CREATURE_TO_POOL(ARCHER,0)
            ADD_CREATURE_TO_POOL(BARBARIAN,0)
            ADD_CREATURE_TO_POOL(MONK,0)
            ADD_CREATURE_TO_POOL(FAIRY,5)
            ADD_CREATURE_TO_POOL(WITCH,0)
            ADD_CREATURE_TO_POOL(WIZARD,20)
            ADD_CREATURE_TO_POOL(GIANT,0)
            ADD_CREATURE_TO_POOL(SAMURAI,0)
            ADD_CREATURE_TO_POOL(TIME_MAGE,15)
            ADD_CREATURE_TO_POOL(AVATAR,0)
        ENDIF
    ENDIF
ENDIF

IF_SLAB_OWNER(56,19,PLAYER0)
    TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)
    TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)
    DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)
ENDIF


REM ##########################
REM ##########################
REM ** MAP ALARM TRIGGERS

IF_ACTION_POINT(16,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-3,2)
ENDIF

IF_ACTION_POINT(17,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-3,1)
ENDIF

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

IF_ACTION_POINT(19,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-3,3)
ENDIF

IF_ACTION_POINT(20,PLAYER0)
    IF_SLAB_OWNER(14,59,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-4,1)
    ENDIF
ENDIF

IF_ACTION_POINT(21,PLAYER0)
    IF_SLAB_OWNER(14,59,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-4,1)
    ENDIF
ENDIF

IF_ACTION_POINT(22,PLAYER0)
    IF_SLAB_OWNER(14,59,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-4,1)
    ENDIF
ENDIF

IF_ACTION_POINT(23,PLAYER0)
    IF_SLAB_OWNER(14,59,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-4,3)
    ENDIF
ENDIF

IF_ACTION_POINT(24,PLAYER0)
    IF_SLAB_OWNER(14,59,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-4,2)
    ENDIF
ENDIF

IF_ACTION_POINT(25,PLAYER0)
    IF_SLAB_OWNER(14,59,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-4,2)
    ENDIF
ENDIF

IF_ACTION_POINT(26,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-6,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,1)
ENDIF

IF_ACTION_POINT(27,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED1,-6,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,1)
ENDIF

IF_ACTION_POINT(28,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-6,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-11,2)
ENDIF

IF_ACTION_POINT(29,PLAYER0)
    IF_SLAB_OWNER(7,35,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,1)
    ENDIF
ENDIF

IF_ACTION_POINT(30,PLAYER0)
    IF_SLAB_OWNER(7,35,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,1)
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-12,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-13,1)
ENDIF

IF_ACTION_POINT(31,PLAYER0)
    IF_SLAB_OWNER(7,35,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,1)
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-12,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-13,2)
ENDIF

IF_ACTION_POINT(32,PLAYER0)
    IF_SLAB_OWNER(7,35,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,2)
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-12,3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-13,3)
ENDIF

IF_ACTION_POINT(33,PLAYER0)
    IF_SLAB_OWNER(7,35,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,2)
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-12,3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-13,3)
ENDIF

IF_ACTION_POINT(34,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-12,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-13,4)
ENDIF

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

IF_ACTION_POINT(37,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-3,2)
ENDIF

IF_ACTION_POINT(38,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-9,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-3,1)
ENDIF

IF_ACTION_POINT(39,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-3,2)
ENDIF

IF_ACTION_POINT(40,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-3,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-9,1)
ENDIF

IF_ACTION_POINT(46,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-7,3)
ENDIF

IF_ACTION_POINT(47,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-8,1)
ENDIF

IF_ACTION_POINT(48,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-8,3)
ENDIF

IF_ACTION_POINT(49,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-8,3)
ENDIF

IF_ACTION_POINT(50,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-7,1)
ENDIF

IF_ACTION_POINT(51,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-10,4)
ENDIF

IF_ACTION_POINT(52,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-7,4)
ENDIF

IF_ACTION_POINT(53,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-7,4)
ENDIF

IF_ACTION_POINT(54,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-10,2)
ENDIF

IF_ACTION_POINT(55,PLAYER0)
    IF_SLAB_OWNER(4,21,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-8,3)
    ENDIF
ENDIF

IF_ACTION_POINT(56,PLAYER0)
    IF_SLAB_OWNER(39,21,PLAYER_GOOD)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-7,3)
    ENDIF
ENDIF

IF_ACTION_POINT(59,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-6,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-6,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-6,1)
ENDIF

IF_ACTION_POINT(57,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
        QUICK_INFORMATION(10,"Allz left should now just be t'heart! CRUSH AND DESTROY IT!")
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-10,4)
ENDIF

REM ##########################
REM ##########################
REM ** RAID TIMERS

HIDE_HERO_GATE(11,True)

HIDE_HERO_GATE(12,True)

HIDE_HERO_GATE(13,True)

REM ##########################
REM ** HG 6 AP 6 & 12 / GP F0 & F1 / TIMER1

HIDE_HERO_GATE(6,True)

IF_ACTION_POINT(12,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(35,"Seems ta me some them alarms arr callin' in raids?! Bring it'awn ya monster scorne!",134,98)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,6,9)
    SET_FLAG(PLAYER_GOOD,FLAG0,1)
	SET_TIMER(PLAYER_GOOD,TIMER1)
ENDIF
IF(PLAYER_GOOD,FLAG0 == 1)
	IF(PLAYER_GOOD,TIMER1 >= 4100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER_GOOD,FLAG1,5)
		IF(PLAYER_GOOD,FLAG1 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-5,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,SKELETON,AT_ACTION_POINT[6],1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,SKELETON,AT_ACTION_POINT[6],1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-6,3)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER1)
		ENDIF
        IF(PLAYER_GOOD,FLAG1 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-6,1)
            NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,SORCEROR,AT_ACTION_POINT[6],1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,DRUID,AT_ACTION_POINT[6],1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-6,1)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER1)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(44,32,LAVA)
    SET_FLAG(PLAYER_GOOD,FLAG0,2)
ENDIF

REM ##########################
REM ** HG4 AP 4 & 21 / GP F2 & F3 / TIMER2

HIDE_HERO_GATE(4,True)

IF_ACTION_POINT(21,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(36,"Moar raidin' scourge will be coming arr way from 'ere!",42,179)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,4,9)
    SET_FLAG(PLAYER_GOOD,FLAG2,1)
	SET_TIMER(PLAYER_GOOD,TIMER2)
ENDIF
IF(PLAYER_GOOD,FLAG2 == 1)
	IF(PLAYER_GOOD,TIMER2 >= 6100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER_GOOD,FLAG3,2)
		IF(PLAYER_GOOD,FLAG3 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-4,1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-4,1)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER2)
		ENDIF
        IF(PLAYER_GOOD,FLAG3 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-4,2)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-4,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER2)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(14,59,LAVA)
    SET_FLAG(PLAYER_GOOD,FLAG2,2)
ENDIF

REM ##########################
REM ** HG2 AP 2 & 41 / GP F4 & F5 / TIMER3

HIDE_HERO_GATE(2,True)

IF_ACTION_POINT(41,PLAYER_GOOD)
    IF(PLAYER0,GIANT >= 1)
       	QUICK_OBJECTIVE_WITH_POS(34,"We's got sum cheeky swine comin' thru 'ere!",87,273)
    ENDIF
   	REVEAL_MAP_LOCATION(PLAYER0,2,6)
ENDIF
IF_ACTION_POINT(41,PLAYER0)
    SET_FLAG(PLAYER_GOOD,FLAG4,1)
	SET_TIMER(PLAYER_GOOD,TIMER3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-2,1)
ENDIF
IF(PLAYER_GOOD,FLAG4 == 1)
	IF(PLAYER_GOOD,TIMER3 >= 7100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER_GOOD,FLAG5,1)
		IF(PLAYER_GOOD,FLAG5 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-2,1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-2,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER3)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(29,91,LAVA)
    SET_FLAG(PLAYER_GOOD,FLAG4,2)
ENDIF

REM ##########################
REM ** HG3 AP 3 & 19 / GP F6 & F7 / TIMER4

HIDE_HERO_GATE(3,True)

IF_ACTION_POINT(19,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(37,"Ah! Evine moar be comin' after uz! This may get messy!",231,170)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,3,9)
    SET_FLAG(PLAYER_GOOD,FLAG6,1)
	SET_TIMER(PLAYER_GOOD,TIMER4)
ENDIF
IF(PLAYER_GOOD,FLAG6 == 1)
	IF(PLAYER_GOOD,TIMER4 >= 14100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER_GOOD,FLAG7,3)
		IF(PLAYER_GOOD,FLAG7 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-3,1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-3,1)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER4)
		ENDIF
        IF(PLAYER_GOOD,FLAG7 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-3,1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-3,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER4)
		ENDIF
        IF(PLAYER_GOOD,FLAG7 == 3)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-3,1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-3,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER4)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(77,57,LAVA)
    SET_FLAG(PLAYER_GOOD,FLAG6,2)
ENDIF

REM ##########################
REM ** HG 5 AP 5 & 29 / P5 F0 & F1 / TIMER1

HIDE_HERO_GATE(5,True)

IF_ACTION_POINT(29,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(38,"Looks likey theys gots a spare entrance ova'h there!",21,105)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,5,9)
    SET_FLAG(PLAYER5,FLAG0,1)
	SET_TIMER(PLAYER5,TIMER1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-5,1)
ENDIF
IF(PLAYER5,FLAG0 == 1)
	IF(PLAYER5,TIMER1 >= 7100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER5,FLAG1,4)
		IF(PLAYER5,FLAG1 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-5,2)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED1,-5,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER1)
		ENDIF
        IF(PLAYER5,FLAG1 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED1,-5,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,SORCEROR,AT_ACTION_POINT[5],1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,DRUID,AT_ACTION_POINT[5],1)
           	NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,DARK_MISTRESS,AT_ACTION_POINT[5],1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-5,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER1)
		ENDIF
        IF(PLAYER5,FLAG1 == 3)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-5,1)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCFORCE,-5,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER1)
		ENDIF
        IF(PLAYER5,FLAG1 == 4)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-5,3)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-5,1)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER1)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(7,35,LAVA)
    SET_FLAG(PLAYER5,FLAG0,2)
ENDIF

REM ##########################
REM ** HG7 AP 7 & 42 / P5 F2 & F3 / TIMER2

HIDE_HERO_GATE(7,True)

IF_ACTION_POINT(42,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(39,"It like this never ends! BRING IT YOU BEASTIES!",116,65)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,7,9)
    SET_FLAG(PLAYER5,FLAG2,1)
	SET_TIMER(PLAYER5,TIMER2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-7,2)
ENDIF
IF(PLAYER5,FLAG2 == 1)
	IF(PLAYER5,TIMER2 >= 8100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER5,FLAG3,2)
		IF(PLAYER5,FLAG3 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE1,-7,3)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-7,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER2)
		ENDIF
        IF(PLAYER5,FLAG3 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-7,3)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-7,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER2)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(39,21,LAVA)
    SET_FLAG(PLAYER5,FLAG2,2)
ENDIF

REM ##########################
REM ** HG9 AP 9 & 43 / P5 F4 & F5 / TIMER3

HIDE_HERO_GATE(9,True)

IF_ACTION_POINT(43,PLAYER0)
    SET_FLAG(PLAYER5,FLAG4,1)
	SET_TIMER(PLAYER5,TIMER3)
ENDIF
IF(PLAYER5,FLAG4 == 1)
	IF(PLAYER5,TIMER3 >= 9100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER5,FLAG5,3)
		IF(PLAYER5,FLAG5 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-9,3)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MELEE2,-9,2)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER3)
		ENDIF
        IF(PLAYER5,FLAG5 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-9,2)
            IF_SLAB_OWNER(91,74,PLAYER0)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ORCWAVE,-9,3)
            ENDIF
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER3)
		ENDIF
        IF(PLAYER5,FLAG5 == 3)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-9,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER3)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(67,107,LAVA)
    SET_FLAG(PLAYER5,FLAG4,2)
ENDIF


REM ##########################
REM ** HG8 AP 8 & 44 / P5 F6 & F7 / TIMER4

HIDE_HERO_GATE(8,True)

IF_ACTION_POINT(44,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(41,"Theys gettin' scared of us me think! Pahahahaha!",15,63)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,8,9)
    SET_FLAG(PLAYER5,FLAG6,1)
	SET_TIMER(PLAYER5,TIMER4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-8,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-8,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED1,-8,2)
ENDIF
IF(PLAYER5,FLAG6 == 1)
	IF(PLAYER5,TIMER4 >= 9100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER5,FLAG7,3)
		IF(PLAYER5,FLAG7 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGORC,-8,4)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER4)
		ENDIF
        IF(PLAYER5,FLAG7 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED1,-8,3)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER4)
		ENDIF
        IF(PLAYER5,FLAG7 == 3)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ,-8,5)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER5,TIMER4)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(4,21,LAVA)
    SET_FLAG(PLAYER5,FLAG6,2)
ENDIF

REM ##########################
REM ** HG 10 AP 10 & 45 / P3 F0 & F1 / TIMER1

HIDE_HERO_GATE(10,True)

IF_ACTION_POINT(45,PLAYER0)
    IF(PLAYER0,GIANT >= 1)
    	QUICK_OBJECTIVE_WITH_POS(42,"Theys pullin' out the last of their stoppages 'gainst uz n'arr! Let the blood bathe us as we vanny-squish thems monsters!",116,17)
    ENDIF
	REVEAL_MAP_LOCATION(PLAYER0,10,15)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-10,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGSPAWN,-10,2)
    IF_SLAB_OWNER(91,74,PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-10,1)
    ENDIF
    SET_FLAG(PLAYER3,FLAG0,1)
	SET_TIMER(PLAYER3,TIMER1)
ENDIF
IF(PLAYER3,FLAG0 == 1)
	IF(PLAYER3,TIMER1 >= 8100)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER3,FLAG1,5)
		IF(PLAYER3,FLAG1 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-10,2)
            NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RANGED2,-10,2)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,DARK_MISTRESS,AT_ACTION_POINT[10],1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,DRAGON,AT_ACTION_POINT[10],1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER3,TIMER1)
		ENDIF
        IF(PLAYER3,FLAG1 == 2)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSINATE,-10,2)
            NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELEZ2,-10,3)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,ORC,AT_ACTION_POINT[10],3)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER_GOOD,DRAGON,AT_ACTION_POINT[10],1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER3,TIMER1)
		ENDIF
    ENDIF
ENDIF
IF_SLAB_TYPE(39,5,LAVA)
    SET_FLAG(PLAYER3,FLAG0,2)
ENDIF

REM ##########################
REM ##########################
REM ** PORTAL DISMANTLEMENTS

REM ##########################
REM ** PORTAL 1

IF_SLAB_OWNER(29,91,PLAYER0)
    CHANGE_SLAB_TYPE(28,90,HARD_FLOOR)
    CHANGE_SLAB_TYPE(29,90,HARD_FLOOR)
    CHANGE_SLAB_TYPE(30,90,HARD_FLOOR)
    CHANGE_SLAB_TYPE(28,91,HARD_FLOOR)
    CHANGE_SLAB_TYPE(29,91,LAVA)
    CHANGE_SLAB_TYPE(30,91,HARD_FLOOR)
    CHANGE_SLAB_TYPE(28,92,HARD_FLOOR)
    CHANGE_SLAB_TYPE(29,92,HARD_FLOOR)
    CHANGE_SLAB_TYPE(30,92,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 2

IF_SLAB_OWNER(44,32,PLAYER0)
    CHANGE_SLAB_TYPE(43,31,HARD_FLOOR)
    CHANGE_SLAB_TYPE(44,31,HARD_FLOOR)
    CHANGE_SLAB_TYPE(45,31,HARD_FLOOR)
    CHANGE_SLAB_TYPE(43,32,HARD_FLOOR)
    CHANGE_SLAB_TYPE(44,32,LAVA)
    CHANGE_SLAB_TYPE(45,32,HARD_FLOOR)
    CHANGE_SLAB_TYPE(43,33,HARD_FLOOR)
    CHANGE_SLAB_TYPE(44,33,HARD_FLOOR)
    CHANGE_SLAB_TYPE(45,33,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 3

IF_SLAB_OWNER(14,59,PLAYER0)
    CHANGE_SLAB_TYPE(13,58,HARD_FLOOR)
    CHANGE_SLAB_TYPE(14,58,HARD_FLOOR)
    CHANGE_SLAB_TYPE(15,58,HARD_FLOOR)
    CHANGE_SLAB_TYPE(13,59,HARD_FLOOR)
    CHANGE_SLAB_TYPE(14,59,LAVA)
    CHANGE_SLAB_TYPE(15,59,HARD_FLOOR)
    CHANGE_SLAB_TYPE(13,60,HARD_FLOOR)
    CHANGE_SLAB_TYPE(14,60,HARD_FLOOR)
    CHANGE_SLAB_TYPE(15,60,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 4

IF_SLAB_OWNER(77,57,PLAYER0)
    CHANGE_SLAB_TYPE(76,56,HARD_FLOOR)
    CHANGE_SLAB_TYPE(77,56,HARD_FLOOR)
    CHANGE_SLAB_TYPE(78,56,HARD_FLOOR)
    CHANGE_SLAB_TYPE(76,57,HARD_FLOOR)
    CHANGE_SLAB_TYPE(77,57,LAVA)
    CHANGE_SLAB_TYPE(78,57,HARD_FLOOR)
    CHANGE_SLAB_TYPE(76,58,HARD_FLOOR)
    CHANGE_SLAB_TYPE(77,58,HARD_FLOOR)
    CHANGE_SLAB_TYPE(78,58,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 5

IF_SLAB_OWNER(67,107,PLAYER0)
    CHANGE_SLAB_TYPE(66,106,HARD_FLOOR)
    CHANGE_SLAB_TYPE(67,106,HARD_FLOOR)
    CHANGE_SLAB_TYPE(68,106,HARD_FLOOR)
    CHANGE_SLAB_TYPE(66,107,HARD_FLOOR)
    CHANGE_SLAB_TYPE(67,107,LAVA)
    CHANGE_SLAB_TYPE(68,107,HARD_FLOOR)
    CHANGE_SLAB_TYPE(66,108,HARD_FLOOR)
    CHANGE_SLAB_TYPE(67,108,HARD_FLOOR)
    CHANGE_SLAB_TYPE(68,108,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 6

IF_SLAB_OWNER(7,35,PLAYER0)
    CHANGE_SLAB_TYPE(6,34,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,34,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,34,HARD_FLOOR)
    CHANGE_SLAB_TYPE(6,35,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,35,LAVA)
    CHANGE_SLAB_TYPE(8,35,HARD_FLOOR)
    CHANGE_SLAB_TYPE(6,36,HARD_FLOOR)
    CHANGE_SLAB_TYPE(7,36,HARD_FLOOR)
    CHANGE_SLAB_TYPE(8,36,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 7

IF_SLAB_OWNER(39,21,PLAYER0)
    CHANGE_SLAB_TYPE(38,20,HARD_FLOOR)
    CHANGE_SLAB_TYPE(39,20,HARD_FLOOR)
    CHANGE_SLAB_TYPE(40,20,HARD_FLOOR)
    CHANGE_SLAB_TYPE(38,21,HARD_FLOOR)
    CHANGE_SLAB_TYPE(39,21,LAVA)
    CHANGE_SLAB_TYPE(40,21,HARD_FLOOR)
    CHANGE_SLAB_TYPE(38,22,HARD_FLOOR)
    CHANGE_SLAB_TYPE(39,22,HARD_FLOOR)
    CHANGE_SLAB_TYPE(40,22,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 8

IF_SLAB_OWNER(4,21,PLAYER0)
    CHANGE_SLAB_TYPE(3,20,HARD_FLOOR)
    CHANGE_SLAB_TYPE(4,20,HARD_FLOOR)
    CHANGE_SLAB_TYPE(5,20,HARD_FLOOR)
    CHANGE_SLAB_TYPE(3,21,HARD_FLOOR)
    CHANGE_SLAB_TYPE(4,21,LAVA)
    CHANGE_SLAB_TYPE(5,21,HARD_FLOOR)
    CHANGE_SLAB_TYPE(3,22,HARD_FLOOR)
    CHANGE_SLAB_TYPE(4,22,HARD_FLOOR)
    CHANGE_SLAB_TYPE(5,22,HARD_FLOOR)
ENDIF

REM ##########################
REM ** PORTAL 9

IF(PLAYER6,DUNGEON_DESTROYED == 1)
    CHANGE_SLAB_TYPE(38,4,HARD_FLOOR)
    CHANGE_SLAB_TYPE(39,4,HARD_FLOOR)
    CHANGE_SLAB_TYPE(40,4,HARD_FLOOR)
    CHANGE_SLAB_TYPE(38,5,HARD_FLOOR)
    CHANGE_SLAB_TYPE(39,5,LAVA)
    CHANGE_SLAB_TYPE(40,5,HARD_FLOOR)
    CHANGE_SLAB_TYPE(38,6,HARD_FLOOR)
    CHANGE_SLAB_TYPE(39,6,HARD_FLOOR)
    CHANGE_SLAB_TYPE(40,6,HARD_FLOOR)
ENDIF

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

IF(PLAYER0,DUNGEON_DESTROYED == 1)
    LOSE_GAME
ENDIF


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

IF(PLAYER6,DUNGEON_DESTROYED == 1)
    WIN_GAME
ENDIF