LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(ALL_PLAYERS,10000)
MAX_CREATURES(ALL_PLAYERS,26)
SET_GAME_RULE(BODIESFORVAMPIRE,38)
SET_GAME_RULE(AlliesShareVision,1)

ALLY_PLAYERS(PLAYER0,PLAYER1,3)
ALLY_PLAYERS(PLAYER1,PLAYER0,3)

ADD_CREATURE_TO_POOL(FLY,0)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,25)
ADD_CREATURE_TO_POOL(TENTACLE,25)
ADD_CREATURE_TO_POOL(SORCEROR,15)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DRAGON,15)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)

CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,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)

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,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)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,0,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_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,1,0)

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,WORD_OF_POWER,1,0)

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

RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_SPEED,5700)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_OBEY,6000)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,GUARD_POST,6700)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CALL_TO_ARMS,7400)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,WORKSHOP,9000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_SIGHT,9000)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,GRAVEYARD,9200)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CONCEAL,9400)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,BARRACKS,12000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_HOLD_AUDIENCE,11000)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,PRISON,20000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CAVE_IN,25000)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,TORTURE,20000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_HEAL_CREATURE,14000)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,TEMPLE,20000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_LIGHTNING,15000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_PROTECT,15000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_CHICKEN,20000)

SET_TIMER(PLAYER0,TIMER0) 
QUICK_OBJECTIVE(1,"Welcome Keeper.The Heroes of this land think they have found a way to invade the underworld, Foolish really, you and your companion have been chosen to make an example out of them")

IF(PLAYER0,GUARD_POST >= 35)
    NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER0,GUARD_POST,0,0)
ENDIF

IF(PLAYER0,GUARD_POST<35)
    NEXT_COMMAND_REUSABLE
    ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,1)
ENDIF

IF(PLAYER1,GUARD_POST >= 35)
    NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER1,GUARD_POST,0,0)
ENDIF

IF(PLAYER1,GUARD_POST<35)
    NEXT_COMMAND_REUSABLE
    ROOM_AVAILABLE(PLAYER1,GUARD_POST,1,1)
ENDIF

IF_ACTION_POINT(1,PLAYER1)
    PLAY_MESSAGE(PLAYER1,SPEECH,65)
    CHANGE_SLAB_TYPE(82,79,PRETTY_PATH)
	CHANGE_SLAB_TYPE(81,52,WATER)
ENDIF

IF_ACTION_POINT(2,ALL_PLAYERS)
    PLAY_MESSAGE(ALL_PLAYERS,SPEECH,65)
	CHANGE_SLAB_TYPE(82,80,PRETTY_PATH)
	CHANGE_SLAB_TYPE(78,57,WATER)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
    PLAY_MESSAGE(PLAYER0,SPEECH,65)
    CHANGE_SLAB_TYPE(2,4,PRETTY_PATH)
	CHANGE_SLAB_TYPE(1,28,WATER)
ENDIF

IF_ACTION_POINT(4,ALL_PLAYERS)
    PLAY_MESSAGE(ALL_PLAYERS,SPEECH,65)
	CHANGE_SLAB_TYPE(2,5,PRETTY_PATH)
	CHANGE_SLAB_TYPE(4,23,WATER)
ENDIF


IF(PLAYER0,GAME_TURN > 2400)
	CHANGE_SLAB_TYPE(9,22,PRETTY_PATH)
	CHANGE_SLAB_TYPE(10,22,WATER)
	CHANGE_SLAB_TYPE(11,22,PRETTY_PATH)
	CHANGE_SLAB_TYPE(71,58,PRETTY_PATH)
	CHANGE_SLAB_TYPE(72,58,WATER)
	CHANGE_SLAB_TYPE(73,58,PRETTY_PATH)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
	QUICK_OBJECTIVE(2,"It would seem some Flys have made their way through the entrance!")
ENDIF

IF(PLAYER_GOOD,FLAG0 == 1)
    IF(PLAYER0,TIMER0 >= 1200)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-1,2,1,100)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-2,2,1,100)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0)         
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 7200)
    PLAY_MESSAGE(ALL_PLAYERS,SPEECH,119)
	QUICK_OBJECTIVE(3,"The invasion has begun. Massacre all their invading forces so that they never attempt to challenge you again!")
	SET_FLAG(PLAYER_GOOD,FLAG0,2)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 2)
    IF(PLAYER0,TIMER0 >= 1200)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-1,4,3,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-2,4,3,0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 14400)
	QUICK_OBJECTIVE(4,"With the Dwarfs easily taken care of The Barbarians now seek to challenge you")
	SET_FLAG(PLAYER_GOOD,FLAG0,3)
ENDIF	

IF(PLAYER_GOOD,FLAG0 == 3)
    IF(PLAYER0,TIMER0 >= 1200)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,-1,4,3,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,-2,4,3,0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 21600)
    QUICK_OBJECTIVE(5,"The Barbarians were proven wrong, Now the Thieves make haste towards your hearts")
	SET_FLAG(PLAYER_GOOD,FLAG0,4)
	
ENDIF	

IF(PLAYER_GOOD,FLAG0 == 4)
    IF(PLAYER0,TIMER0 >= 2400)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-1,5,5,1000)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-2,5,5,1000)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 28800)
    QUICK_OBJECTIVE(6,"As the Thieves have failed it would seem the invasion has gone silent for now, Prehaps a change of stratergy?!")
	SET_FLAG(PLAYER_GOOD,FLAG0,5)
ENDIF

IF(PLAYER0,GAME_TURN > 33600)
    QUICK_OBJECTIVE(7,"The followers of the wrong faith wish to end you")
    SET_FLAG(PLAYER_GOOD,FLAG0,6)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 6)
    IF(PLAYER0,TIMER0 >= 2400)
        PLAY_MESSAGE(ALL_PLAYERS,SPEECH,118)
		NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,-1,4,6,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,-2,4,6,0)
	    NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WITCH,-1,4,6,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WITCH,-2,4,6,0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 40800)
    QUICK_OBJECTIVE(8,"A legion of Archers approches to seek vengance upon you")
    SET_FLAG(PLAYER_GOOD,FLAG0,7)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 7)
    IF(PLAYER0,TIMER0 >= 2400)
		NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,-1,20,3,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,-2,20,3,0)
	    NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 45600)
    SET_FLAG(PLAYER_GOOD,FLAG0,8)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 8)
    IF(PLAYER0,TIMER0 >= 2400)
        QUICK_OBJECTIVE(9,"Beware powerful Time Wizards seek to send you back from where you came")
		PLAY_MESSAGE(ALL_PLAYERS,SPEECH,122)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TIME_MAGE,-1,1,10,2500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TIME_MAGE,-2,1,10,2500)
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 45640)
    IF_CONTROLS(PLAYER_GOOD,TIME_MAGE < 1)
	    SET_TIMER(PLAYER0,TIMER0) 
		SET_TIMER(PLAYER0,TIMER1) 
		SET_FLAG(PLAYER_GOOD,FLAG0,9)
		QUICK_OBJECTIVE(10,"Not even the Time Wizards are a match for you, The Fairies have come seeking revenge ")
    ENDIF	
ENDIF

IF(PLAYER_GOOD,FLAG0 == 9)
    IF(PLAYER0,TIMER0 >= 2400)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,-1,9,7,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,-2,9,7,0)
	    NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,TIMER1 > 7200)
    SET_FLAG(PLAYER_GOOD,FLAG0,10)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 10)
    IF(PLAYER0,TIMER0 >= 2400)
	    QUICK_OBJECTIVE(11,"A Kumi of Samurai have come to collect your head")
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-1,10,8,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-2,10,8,0)
	    NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,TIMER1 > 12000)
    SET_FLAG(PLAYER_GOOD,FLAG0,11)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 11)
    IF(PLAYER0,TIMER0 >= 2400)
        PLAY_MESSAGE(ALL_PLAYERS,SPEECH,124)
		QUICK_OBJECTIVE(12,"With the Samurai slaughtered the Holy Knights descend upon you")
		NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,KNIGHT,5,12,7,0)
	    NEXT_COMMAND_REUSABLE
	    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,KNIGHT,6,12,7,0)
	    NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0) 
    ENDIF
ENDIF

IF(PLAYER0,TIMER1 > 16800)
    QUICK_OBJECTIVE(13,"It would seem you have proven yourself worthy Keeper, how much more can they really even do?")
    SET_FLAG(PLAYER_GOOD,FLAG0,12)
ENDIF

IF(PLAYER0,TIMER1 > 21600)
    QUICK_OBJECTIVE(14,"The final battle is at hand lay waste to the avatar and end this once and for all")
    PLAY_MESSAGE(ALL_PLAYERS,SPEECH,107)
	SET_TIMER(PLAYER0,TIMER0) 
	SET_FLAG(PLAYER_GOOD,FLAG0,13)
ENDIF

IF(PLAYER_GOOD,FLAG0 == 13)
    IF(PLAYER0,TIMER0 >= 400)
        PLAY_MESSAGE(ALL_PLAYERS,SPEECH,125)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,AVATAR,5,1,10,25000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,AVATAR,6,1,10,25000)
    ENDIF
ENDIF

IF(PLAYER0,TIMER1 > 22040)
    SET_FLAG(PLAYER_GOOD,FLAG0,14)
    IF_CONTROLS(PLAYER_GOOD,AVATAR < 1)
        WIN_GAME
		QUICK_OBJECTIVE(15,"With the Avatars head on a stick and the Invasion forces destroyed it would seem there is no hope left for these so called heroes, A well earnt victory indeed Keeper")
    ENDIF
ENDIF

IF(PLAYER0,DUNGEON_DESTROYED == 1)
    LOSE_GAME
ENDIF

IF(PLAYER1,DUNGEON_DESTROYED == 1)
    LOSE_GAME
ENDIF