LEVEL_VERSION(1)
SET_GENERATE_SPEED(200)
START_MONEY(ALL_PLAYERS,8000)
MAX_CREATURES(ALL_PLAYERS,20)

QUICK_OBJECTIVE(1,"Welcome Keepers, make haste and find the Hidden Room to Unlock it aswell as the Bridge since you will need it! Dont take to long or else...")

ALLY_PLAYERS(RED,BLUE,3)
ALLY_PLAYERS(RED,GREEN,3)
ALLY_PLAYERS(RED,YELLOW,3)
ALLY_PLAYERS(BLUE,GREEN,3)
ALLY_PLAYERS(BLUE,YELLOW,3)
ALLY_PLAYERS(GREEN,YELLOW,3)

ADD_CREATURE_TO_POOL(FLY,40)
ADD_CREATURE_TO_POOL(BUG,40)
ADD_CREATURE_TO_POOL(DEMONSPAWN,40)
ADD_CREATURE_TO_POOL(TROLL,40)
ADD_CREATURE_TO_POOL(TENTACLE,40)
ADD_CREATURE_TO_POOL(SORCEROR,40)
ADD_CREATURE_TO_POOL(THIEF,40)
ADD_CREATURE_TO_POOL(ARCHER,40)
ADD_CREATURE_TO_POOL(FAIRY,40)
ADD_CREATURE_TO_POOL(WIZARD,40)
ADD_CREATURE_TO_POOL(GIANT,40)

CREATURE_AVAILABLE(ALL_PLAYERS,FLY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,THIEF,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ARCHER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,FAIRY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,WIZARD,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,GIANT,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DWARFA,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,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)

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

TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)

CREATE_PARTY(shooters)
	ADD_TO_PARTY(shooters,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)

CREATE_PARTY(shooters2)
	ADD_TO_PARTY(shooters2,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,ARCHER,4,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,ARCHER,5,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,ARCHER,6,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,ARCHER,6,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,WIZARD,5,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,WIZARD,5,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,WIZARD,6,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,WIZARD,6,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters2,WIZARD,7,4000,ATTACK_DUNGEON_HEART,1)


CREATE_PARTY(shooters3)
	ADD_TO_PARTY(shooters3,ARCHER,7,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,ARCHER,7,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,ARCHER,7,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,ARCHER,7,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,ARCHER,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,ARCHER,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,ARCHER,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,WITCH,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,WITCH,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,WITCH,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,WITCH,8,4000,ATTACK_DUNGEON_HEART,1)
	ADD_TO_PARTY(shooters3,WITCH,8,4000,ATTACK_DUNGEON_HEART,1)



CREATE_PARTY(bashers4)
	ADD_TO_PARTY(bashers4,BARBARIAN,2,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers4,BARBARIAN,2,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers4,BARBARIAN,2,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers4,BARBARIAN,2,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers4,BARBARIAN,2,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers4,BARBARIAN,2,2000,ATTACK_DUNGEON_HEART,0)



CREATE_PARTY(bashers)
	ADD_TO_PARTY(bashers,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)




CREATE_PARTY(bashers2)
	ADD_TO_PARTY(bashers2,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,BARBARIAN,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,BARBARIAN,5,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,BARBARIAN,5,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,SAMURAI,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,SAMURAI,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,SAMURAI,4,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,SAMURAI,5,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers2,SAMURAI,5,2000,ATTACK_DUNGEON_HEART,0)




CREATE_PARTY(bashers3)
	ADD_TO_PARTY(bashers3,BARBARIAN,6,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,BARBARIAN,6,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,BARBARIAN,6,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,BARBARIAN,6,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,DWARFA,8,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,SAMURAI,6,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,SAMURAI,6,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,SAMURAI,8,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,SAMURAI,8,2000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(bashers3,DWARFA,8,2000,ATTACK_DUNGEON_HEART,0)
	

CREATE_PARTY(defense)
	ADD_TO_PARTY(defense,AVATAR,6,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,KNIGHT,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,KNIGHT,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,SAMURAI,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,SAMURAI,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,FAIRY,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,FAIRY,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,WIZARD,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,WIZARD,8,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,GIANT,10,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,GIANT,10,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,ARCHER,10,2000,DEFEND_HEART,0)
	ADD_TO_PARTY(defense,ARCHER,10,2000,DEFEND_HEART,0)

CREATE_PARTY(wizards)
	ADD_TO_PARTY(wizards,TIME_MAGE,4,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards,TIME_MAGE,4,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards,TIME_MAGE,4,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards,TIME_MAGE,4,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards,TIME_MAGE,4,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards,TIME_MAGE,4,1000,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(wizards2)
	ADD_TO_PARTY(wizards2,TIME_MAGE,5,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards2,TIME_MAGE,5,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards2,TIME_MAGE,5,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards2,TIME_MAGE,5,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards2,TIME_MAGE,5,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards2,TIME_MAGE,5,1000,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(wizards3)
	ADD_TO_PARTY(wizards3,TIME_MAGE,8,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards3,TIME_MAGE,8,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards3,TIME_MAGE,8,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards3,TIME_MAGE,8,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards3,TIME_MAGE,8,1000,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(wizards3,TIME_MAGE,8,1000,ATTACK_DUNGEON_HEART,0)

REM Remove the Visionblockage for the Waves
IF(PLAYER0,GAME_TURN > 4600)
	CHANGE_SLAB_TYPE(28,127,WATER,NONE)
	CHANGE_SLAB_TYPE(29,127,WATER,NONE)
	CHANGE_SLAB_TYPE(53,127,WATER,NONE)
	CHANGE_SLAB_TYPE(54,127,WATER,NONE)
	CHANGE_SLAB_TYPE(76,128,WATER,NONE)
	CHANGE_SLAB_TYPE(77,128,WATER,NONE)
ENDIF

REM First time it comes with a TUNNELLER
IF(PLAYER0,GAME_TURN > 4800)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,bashers4,-1,DUNGEON_HEART,0,3,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,bashers4,-2,DUNGEON_HEART,3,3,100)
	SET_TIMER(PLAYER0,TIMER0)
ENDIF

REM First Wave Spawnpoint

IF(PLAYER_GOOD,FLAG1 == 0)
	IF(PLAYER0,TIMER0 >= 4800)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,bashers,-1,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,shooters,-2,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,wizards,-1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0, TIMER0)
	ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG1 == 1)
	IF(PLAYER0,TIMER0 >= 4800)	
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,bashers2,-3,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,shooters2,-4,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,wizards2,-3,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER0)
	ENDIF	
ENDIF


IF(PLAYER_GOOD,FLAG1 == 2)
	IF(PLAYER0,TIMER0 >= 4800)	
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,bashers3,-6,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,shooters3,-5,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,wizards3,-6,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER0)
	ENDIF	
ENDIF

IF_ACTION_POINT(1,RED)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF
IF_ACTION_POINT(1,BLUE)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF
IF_ACTION_POINT(1,GREEN)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF
IF_ACTION_POINT(1,YELLOW)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF

REM Bridge

IF(RED,BRIDGE >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,1)
ENDIF

IF(BLUE,BRIDGE >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,1)
ENDIF

IF(GREEN,BRIDGE >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,1)
ENDIF

IF(YELLOW,BRIDGE >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,1)
ENDIF


REM Workshop

IF(RED,WORKSHOP >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,1)
ENDIF

IF(BLUE,WORKSHOP >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,1)
ENDIF

IF(GREEN,WORKSHOP >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,1)
ENDIF

IF(YELLOW,WORKSHOP >= 1)
	ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,1)
ENDIF



IF(PLAYER_GOOD,FLAG0 == 1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,defense,2,1)
ENDIF

















REM Wave Retreat
REM Flag = 1
IF_SLAB_OWNER(47,66,RED)
	SET_FLAG(PLAYER_GOOD,FLAG1,1)
ENDIF
IF_SLAB_OWNER(47,66,BLUE)
	SET_FLAG(PLAYER_GOOD,FLAG1,1)
ENDIF
IF_SLAB_OWNER(47,66,GREEN)
	SET_FLAG(PLAYER_GOOD,FLAG1,1)
ENDIF
IF_SLAB_OWNER(47,66,YELLOW)
	SET_FLAG(PLAYER_GOOD,FLAG1,1)
ENDIF

REM Flag = 2

IF_SLAB_OWNER(13,53,RED)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF
IF_SLAB_OWNER(13,53,BLUE)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF
IF_SLAB_OWNER(13,53,GREEN)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF
IF_SLAB_OWNER(13,53,YELLOW)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF

IF_SLAB_OWNER(91,52,RED)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF
IF_SLAB_OWNER(91,52,BLUE)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF
IF_SLAB_OWNER(91,52,GREEN)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF
IF_SLAB_OWNER(91,52,YELLOW)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF

REM Waves disabled complete

IF_SLAB_OWNER(13,11,RED)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF
IF_SLAB_OWNER(13,11,BLUE)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF
IF_SLAB_OWNER(13,11,GREEN)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF
IF_SLAB_OWNER(13,11,YELLOW)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF

IF_SLAB_OWNER(91,11,RED)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF
IF_SLAB_OWNER(91,11,BLUE)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF
IF_SLAB_OWNER(91,11,GREEN)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF
IF_SLAB_OWNER(91,11,YELLOW)
	SET_FLAG(PLAYER_GOOD,FLAG1,5)
ENDIF


REM Winning Condition

IF(PLAYER_GOOD,DUNGEON_DESTROYED > 0)
	IF(PLAYER_GOOD,FLAG1 == 5)
		IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
			QUICK_OBJECTIVE(10,"This is the victory message well done keepers")
			WIN_GAME
		ENDIF
	ENDIF
ENDIF


