LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(ALL_PLAYERS,12500)
MAX_CREATURES(ALL_PLAYERS,30)
SET_GAME_RULE(AlliesShareVision,0,ALL_PLAYERS)
SET_GAME_RULE(AlliesShareDrop,0,ALL_PLAYERS)
SET_GAME_RULE(AlliesShareCta,0,ALL_PLAYERS)


QUICK_OBJECTIVE(1,"Welcome to this hot Place.Everybody needs to work on theire side to Unlock the hidden path into the Lords heart.")
SET_TIMER(PLAYER_GOOD,TIMER0)


ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)
ADD_CREATURE_TO_POOL(DRUID,20)
ADD_CREATURE_TO_POOL(MAIDEN,20)

CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRUID,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,MAIDEN,1,0)

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

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_POSSESS,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,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_CHICKEN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_TIME_BOMB,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_REBOUND,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_FREEZE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLOW,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_FLIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_VISION,1,0)

TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,TNT,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,SENTRY,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,BALLISTA,1,0)

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

REM TOP SIDE (BLUE)

IF(PLAYER1,FLAG0 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(1,PLAYER_GOOD,ANY_CREATURE,PLAYER1,FLAG1)
ENDIF

IF(PLAYER0,GAME_TURN > 10)
    IF(PLAYER1,FLAG1 == 0)
        SET_FLAG(PLAYER1,FLAG0,1)
        ADD_TO_FLAG(PLAYER1,FLAG4,1)
    ENDIF
ENDIF

IF(PLAYER1,FLAG2 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(2,PLAYER_GOOD,ANY_CREATURE,PLAYER1,FLAG3)
ENDIF

IF(PLAYER0,GAME_TURN > 10)
    IF(PLAYER1,FLAG3 == 0)
        SET_FLAG(PLAYER1,FLAG2,1)
        ADD_TO_FLAG(PLAYER1,FLAG4,1)
    ENDIF
ENDIF

IF(PLAYER1,FLAG4 >= 1)
    SET_GAME_RULE(AlliesShareVision,1,PLAYER1)
    SET_GAME_RULE(AlliesShareDrop,1,PLAYER1)
    SET_GAME_RULE(AlliesShareCta,1,PLAYER1)
ENDIF

IF(PLAYER1,FLAG4 >= 2)
    CHANGE_SLAB_TYPE(88,78,DIRT,NONE)
    QUICK_INFORMATION(2,"Blues hidden Path can be dug open now!")
ENDIF

REM RIGHT SIDE (GREEN)

IF(GREEN,FLAG0 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(3,PLAYER_GOOD,ANY_CREATURE,GREEN,FLAG1)
ENDIF
IF(PLAYER0,GAME_TURN > 10)
    IF(GREEN,FLAG1 == 0)
        SET_FLAG(GREEN,FLAG0,1)
        ADD_TO_FLAG(GREEN,FLAG4,1)
    ENDIF
ENDIF
IF(GREEN,FLAG2 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(4,PLAYER_GOOD,ANY_CREATURE,GREEN,FLAG3)
ENDIF
IF(PLAYER0,GAME_TURN > 10)
    IF(GREEN,FLAG3 == 0)
        SET_FLAG(GREEN,FLAG2,1)
        ADD_TO_FLAG(GREEN,FLAG4,1)
    ENDIF
ENDIF
IF(GREEN,FLAG4 >= 1)
    SET_GAME_RULE(AlliesShareVision,1,GREEN)
    SET_GAME_RULE(AlliesShareDrop,1,GREEN)
    SET_GAME_RULE(AlliesShareCta,1,GREEN)
ENDIF

IF(GREEN,FLAG4 >= 2)
    CHANGE_SLAB_TYPE(98,88,DIRT,NONE)
    CHANGE_SLAB_TYPE(97,88,DIRT,NONE)
    QUICK_INFORMATION(3,"Greens hidden Path can be dug open now!")
ENDIF

REM Bottom Side (Yellow)

IF(YELLOW,FLAG0 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(5,PLAYER_GOOD,ANY_CREATURE,YELLOW,FLAG1)
ENDIF
IF(PLAYER0,GAME_TURN > 10)
    IF(YELLOW,FLAG1 == 0)
        SET_FLAG(YELLOW,FLAG0,1)
        ADD_TO_FLAG(YELLOW,FLAG4,1)
    ENDIF
ENDIF
IF(YELLOW,FLAG2 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(6,PLAYER_GOOD,ANY_CREATURE,YELLOW,FLAG3)
ENDIF
IF(PLAYER0,GAME_TURN > 10)
    IF(YELLOW,FLAG3 == 0)
        SET_FLAG(YELLOW,FLAG2,1)
        ADD_TO_FLAG(YELLOW,FLAG4,1)
    ENDIF
ENDIF
IF(YELLOW,FLAG4 >= 1)
    SET_GAME_RULE(AlliesShareVision,1,YELLOW)
    SET_GAME_RULE(AlliesShareDrop,1,YELLOW)
    SET_GAME_RULE(AlliesShareCta,1,YELLOW)
ENDIF

IF(YELLOW,FLAG4 >= 2)
    CHANGE_SLAB_TYPE(88,98,DIRT,NONE)
    CHANGE_SLAB_TYPE(88,99,DIRT,NONE)
    CHANGE_SLAB_TYPE(88,100,DIRT,NONE)
    QUICK_INFORMATION(4,"Yellows hidden Path can be dug open now!")
ENDIF

REM Left side (RED)

IF(RED,FLAG0 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(7,PLAYER_GOOD,ANY_CREATURE,RED,FLAG1)
ENDIF
IF(PLAYER0,GAME_TURN > 10)
    IF(RED,FLAG1 == 0)
        SET_FLAG(RED,FLAG0,1)
        ADD_TO_FLAG(RED,FLAG4,1)
    ENDIF
ENDIF
IF(RED,FLAG2 == 0)
    NEXT_COMMAND_REUSABLE
    COUNT_CREATURES_AT_ACTION_POINT(8,PLAYER_GOOD,ANY_CREATURE,RED,FLAG3)
ENDIF
IF(PLAYER0,GAME_TURN > 10)
    IF(RED,FLAG3 == 0)
        SET_FLAG(RED,FLAG2,1)
        ADD_TO_FLAG(RED,FLAG4,1)
    ENDIF
ENDIF
IF(RED,FLAG4 >= 1)
    SET_GAME_RULE(AlliesShareVision,1,RED)
    SET_GAME_RULE(AlliesShareDrop,1,RED)
    SET_GAME_RULE(AlliesShareCta,1,RED)
ENDIF

IF(RED,FLAG4 >= 2)
    CHANGE_SLAB_TYPE(76,88,DIRT,NONE)
    CHANGE_SLAB_TYPE(77,88,DIRT,NONE)
    QUICK_INFORMATION(5,"Reds hidden Path can be dug open now!")
ENDIF

REM PARTY TIME

    CREATE_PARTY(Defense)
        ADD_TO_PARTY(Defense,HORNY,6,250,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Defense,HORNY,6,250,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Defense,HORNY,6,250,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Defense,HORNY,6,250,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Defense,HORNY,6,250,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Defense,HORNY,6,250,ATTACK_ENEMIES,0)

    CREATE_PARTY(Annoy)
        ADD_TO_PARTY(Annoy,ARCHER,3,100,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Annoy,ARCHER,3,100,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Annoy,ARCHER,3,100,ATTACK_ENEMIES,0)
        ADD_TO_PARTY(Annoy,THIEF,3,100,STEAL_GOLD,0)
        ADD_TO_PARTY(Annoy,THIEF,3,100,STEAL_GOLD,0)
        ADD_TO_PARTY(Annoy,THIEF,3,100,STEAL_GOLD,0)



REM OPENED PATHS

IF_SLAB_TYPE(88,78,PATH)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Defense,-6,1)
ENDIF
IF_SLAB_TYPE(97,88,PATH)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Defense,-5,1)
ENDIF
IF_SLAB_TYPE(88,98,PATH)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Defense,-8,1)
ENDIF
IF_SLAB_TYPE(77,88,PATH)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Defense,-7,1)
ENDIF

REM Some annoying little parties inbetween

IF(PLAYER_GOOD,TIMER0 >= 9600)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Annoy,-1,1)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Annoy,-2,1)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Annoy,-3,1)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Annoy,-4,1)
    NEXT_COMMAND_REUSABLE
    SET_TIMER(PLAYER_GOOD,TIMER0)
ENDIF


IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
    WIN_GAME
ENDIF