LEVEL_VERSION(1)
RUN_AFTER_VICTORY(1)
SET_GENERATE_SPEED(500)
START_MONEY(ALL_PLAYERS,5000)
MAX_CREATURES(PLAYER0,30)
MAX_CREATURES(PLAYER1,30)
MAX_CREATURES(PLAYER2,20)
MAX_CREATURES(PLAYER3,20)
MAX_CREATURES(PLAYER4,25)
MAX_CREATURES(PLAYER5,25)
MAX_CREATURES(PLAYER6,25)
MAX_CREATURES(PLAYER_GOOD,25)
SET_GAME_RULE(MapCreatureLimit,1000)
SET_GAME_RULE(AlliesShareCta,1)
SET_GAME_RULE(AlliesShareDrop,1)
SET_GAME_RULE(AlliesShareVision,1)
SET_GAME_RULE(PrisonSkeletonChance,0)
SET_GAME_RULE(BodiesForVampire,50)
SET_CREATURE_PROPERTY(IMP,NO_IMPRISONMENT,1)

REM -- This is a legacy rule and doesn't function anymore.
REM SET_GAME_RULE(GemEffectiveness,25)

ALLY_PLAYERS(PLAYER0,PLAYER1,3)

ALLY_PLAYERS(PLAYER2,PLAYER3,3)
ALLY_PLAYERS(PLAYER2,PLAYER4,3)
ALLY_PLAYERS(PLAYER2,PLAYER5,3)
ALLY_PLAYERS(PLAYER2,PLAYER6,3)
ALLY_PLAYERS(PLAYER2,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER3,PLAYER4,3)
ALLY_PLAYERS(PLAYER3,PLAYER5,3)
ALLY_PLAYERS(PLAYER3,PLAYER6,3)
ALLY_PLAYERS(PLAYER3,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER4,PLAYER5,3)
ALLY_PLAYERS(PLAYER4,PLAYER6,3)
ALLY_PLAYERS(PLAYER4,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER6,PLAYER5,3)
ALLY_PLAYERS(PLAYER6,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER5,PLAYER_GOOD,3)

COMPUTER_PLAYER(PLAYER2,0)
COMPUTER_PLAYER(PLAYER3,0)
COMPUTER_PLAYER(PLAYER4,0)
COMPUTER_PLAYER(PLAYER5,0)
COMPUTER_PLAYER(PLAYER6,0)
COMPUTER_PLAYER(PLAYER_GOOD,0)

ADD_CREATURE_TO_POOL(FLY,20)
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(TENTACLE,20)
ADD_CREATURE_TO_POOL(SORCEROR,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(VAMPIRE,20)
ADD_CREATURE_TO_POOL(HORNY,20)
ADD_CREATURE_TO_POOL(THIEF,20)
ADD_CREATURE_TO_POOL(DWARFA,20)
ADD_CREATURE_TO_POOL(ARCHER,20)
ADD_CREATURE_TO_POOL(BARBARIAN,20)
ADD_CREATURE_TO_POOL(MONK,20)
ADD_CREATURE_TO_POOL(FAIRY,20)
ADD_CREATURE_TO_POOL(WITCH,20)
ADD_CREATURE_TO_POOL(WIZARD,20)
ADD_CREATURE_TO_POOL(GIANT,20)
ADD_CREATURE_TO_POOL(SAMURAI,20)

CREATURE_AVAILABLE(PLAYER2,FLY,1,0)
CREATURE_AVAILABLE(PLAYER3,FLY,1,0)
CREATURE_AVAILABLE(PLAYER2,BUG,1,0)
CREATURE_AVAILABLE(PLAYER3,BUG,1,0)
CREATURE_AVAILABLE(PLAYER2,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(PLAYER3,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,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)
CREATURE_AVAILABLE(ALL_PLAYERS,VAMPIRE,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HORNY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,THIEF,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DWARFA,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ARCHER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BARBARIAN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,MONK,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,FAIRY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,WITCH,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,WIZARD,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,GIANT,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SAMURAI,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,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_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_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER4,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER5,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER6,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER_GOOD,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)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DESTROY_WALLS,1,0)

TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0)

REM -- Intro text.
QUICK_OBJECTIVE(1,"Welcome Keeper. This realm is full of old magic and curses... establish your dungeon and conquer alongside your Bloodbrother!")
REM Use these when quick_player_objective leaves alpha during 1.4 release.
REM QUICK_PLAYER_OBJECTIVE(1,PLAYER0,"Welcome Keeper. This realm is full of old magic and curses... establish your dungeon and conquer alongside your Bloodbrother!",PLAYER1)
REM QUICK_PLAYER_OBJECTIVE(1,PLAYER1,"Welcome Keeper. This realm is full of old magic and curses... establish your dungeon and conquer alongside your Bloodbrother!",PLAYER0)

REM -- Central cave secret.
IF_ACTION_POINT(1,PLAYER0)
	ADD_TO_FLAG(PLAYER0,FLAG0,1)
ENDIF
IF_ACTION_POINT(1,PLAYER1)
	ADD_TO_FLAG(PLAYER0,FLAG0,1)
ENDIF
IF(PLAYER0,FLAG0 > 0)
	QUICK_INFORMATION(2,"This ominous cave holds a great treasure, and only one of you may lay claim to it. Will you strategize and agree, or bicker like animals?",1)
	TUTORIAL_FLASH_BUTTON(78,100)
ENDIF

REM -- Killed green/yellow.
IF(PLAYER2,DUNGEON_DESTROYED == 1)
	QUICK_INFORMATION(4,"Now that you destroyed this Green Goblin, go north and erase these foolish cockroaches... hehe COCKroach... get it?")
ENDIF
IF(PLAYER3,DUNGEON_DESTROYED == 1)
	QUICK_INFORMATION(5,"Now that you destroyed this Yellow Peestain, go north and squash these fools like a little cockatiel... hehe COCKatiel... get it?")
ENDIF

REM -- Special Boxes
SET_BOX_TOOLTIP(1,"Fartbox: Fart on your brother, like good old times.")
SET_BOX_TOOLTIP(2,"Sound the Alarm: Harass your brother with pointless loud noise.")

REM -- Red's boxes.
IF(PLAYER0,BOX1_ACTIVATED > 0)
	NEXT_COMMAND_REUSABLE
	PLAY_MESSAGE(PLAYER1,SOUND,94)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,BOX1_ACTIVATED,0)
	NEXT_COMMAND_REUSABLE
	ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,64,400,1,PLAYER0)
ENDIF
IF(PLAYER0,BOX2_ACTIVATED > 0)
	NEXT_COMMAND_REUSABLE
	PLAY_MESSAGE(PLAYER1,SOUND,90)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,BOX2_ACTIVATED,0)
	NEXT_COMMAND_REUSABLE
	ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,76,400,2,PLAYER0)
ENDIF

REM -- Blue's boxes.
IF(PLAYER1,BOX1_ACTIVATED > 0)
	NEXT_COMMAND_REUSABLE
	PLAY_MESSAGE(PLAYER0,SOUND,94)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1,BOX1_ACTIVATED,0)
	NEXT_COMMAND_REUSABLE
	ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,373,400,1,PLAYER1)
ENDIF
IF(PLAYER1,BOX2_ACTIVATED > 0)
	NEXT_COMMAND_REUSABLE
	PLAY_MESSAGE(PLAYER0,SOUND,90)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1,BOX2_ACTIVATED,0)
	NEXT_COMMAND_REUSABLE
	ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,385,400,2,PLAYER1)
ENDIF

REM -- Both players get bridge when either player claims the center bridge.
IF(PLAYER0,BRIDGE > 0)
	ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
	ROOM_AVAILABLE(PLAYER1,BRIDGE,1,1)
	TUTORIAL_FLASH_BUTTON(BRIDGE,120)
ENDIF
IF(PLAYER1,BRIDGE > 0)
	ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
	ROOM_AVAILABLE(PLAYER1,BRIDGE,1,1)
	TUTORIAL_FLASH_BUTTON(BRIDGE,120)
ENDIF

REM -- Win Condition
IF(PLAYER2,DUNGEON_DESTROYED == 1)
	IF(PLAYER3,DUNGEON_DESTROYED == 1)
		IF(PLAYER4,DUNGEON_DESTROYED == 1)
			IF(PLAYER5,DUNGEON_DESTROYED == 1)
				IF(PLAYER6,DUNGEON_DESTROYED == 1)
					IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
						WIN_GAME
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF
