LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)

START_MONEY(PLAYER0,15000)
START_MONEY(PLAYER1,15000)
START_MONEY(PLAYER2,15000)
START_MONEY(PLAYER3,15000)
START_MONEY(PLAYER4,15000)
START_MONEY(PLAYER5,15000)
START_MONEY(PLAYER6,15000)

MAX_CREATURES(ALL_PLAYERS,15)

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

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


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,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,BRIDGE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,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_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_FREEZE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_REBOUND,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)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,0)

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

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

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

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

ALLY_PLAYERS(PLAYER4,PLAYER5,3)
ALLY_PLAYERS(PLAYER4,PLAYER6,3)

ALLY_PLAYERS(PLAYER5,PLAYER6,3)

CREATE_PARTY(SCOUT)
	ADD_TO_PARTY(SCOUT,BARBARIAN,2,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SCOUT,THIEF,1,500,ATTACK_ENEMIES,0)
	
CREATE_PARTY(FAIRYLOW)
	ADD_TO_PARTY(FAIRYLOW,FAIRY,3,500,STEAL_GOLD,0)
	ADD_TO_PARTY(FAIRYLOW,FAIRY,3,500,STEAL_GOLD,0)
	
CREATE_PARTY(FAIRYHIGH)
	ADD_TO_PARTY(FAIRYHIGH,FAIRY,5,1000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FAIRYHIGH,FAIRY,5,1000,ATTACK_ENEMIES,0)

QUICK_OBJECTIVE(0,"The enemies have banded together to banish you once and for all. Crush them !.",PLAYER0)

SET_GAME_RULE(ImpWorkExperience,253)

SET_TIMER(PLAYER4,TIMER1)

IF(PLAYER1,TREASURE == 0)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER1,TREASURE,1,1)
ENDIF

IF(PLAYER1,TREASURE > 25)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER1,TREASURE,0,0)
ENDIF

IF(PLAYER2,TREASURE == 0)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER2,TREASURE,1,1)
ENDIF

IF(PLAYER2,TREASURE > 25)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER2,TREASURE,0,0)
ENDIF

IF(PLAYER3,TREASURE == 0)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER3,TREASURE,1,1)
ENDIF

IF(PLAYER3,TREASURE > 25)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER3,TREASURE,0,0)
ENDIF

IF(PLAYER4,TREASURE == 0)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER4,TREASURE,1,1)
ENDIF

IF(PLAYER4,TREASURE > 25)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER4,TREASURE,0,0)
ENDIF

IF(PLAYER5,TREASURE == 0)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER5,TREASURE,1,1)
ENDIF

IF(PLAYER5,TREASURE > 25)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER5,TREASURE,0,0)
ENDIF

IF(PLAYER6,TREASURE == 0)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER6,TREASURE,1,1)
ENDIF

IF(PLAYER6,TREASURE > 25)
	NEXT_COMMAND_REUSABLE
	ROOM_AVAILABLE(PLAYER6,TREASURE,0,0)
ENDIF


IF(PLAYER0,IMP == 16)
	IF(PLAYER4,FLAG0 == 1)
		NEXT_COMMAND_REUSABLE
		MAGIC_AVAILABLE(PLAYER0,POWER_IMP,0,0)
	ENDIF
ENDIF

IF(PLAYER0,IMP == 25)
	IF(PLAYER4,FLAG0 == 2)
		NEXT_COMMAND_REUSABLE
		MAGIC_AVAILABLE(PLAYER0,POWER_IMP,0,0)	
	ENDIF
ENDIF

IF(PLAYER4,FLAG0 == 2)
		QUICK_INFORMATION(1,"you can now have a little more imps.",PLAYER0)
ENDIF

IF(PLAYER0,IMP <= 15)
	IF(PLAYER4,FLAG0 == 1)
		NEXT_COMMAND_REUSABLE
		MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
	ENDIF
ENDIF

IF(PLAYER0,IMP <= 24)
	IF(PLAYER4,FLAG0 == 2)
		NEXT_COMMAND_REUSABLE
		MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
	ENDIF
ENDIF

IF(PLAYER1,IMP == 16)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER1,POWER_IMP,0,0)
ENDIF

IF(PLAYER1,IMP == 15)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
ENDIF

IF(PLAYER2,IMP == 16)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER2,POWER_IMP,0,0)
ENDIF

IF(PLAYER2,IMP == 15)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER2,POWER_IMP,1,1)
ENDIF

IF(PLAYER3,IMP == 16)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER3,POWER_IMP,0,0)
ENDIF

IF(PLAYER3,IMP == 15)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER3,POWER_IMP,1,1)
ENDIF

IF(PLAYER4,IMP == 16)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER4,POWER_IMP,0,0)
ENDIF

IF(PLAYER4,IMP == 15)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER4,POWER_IMP,1,1)
ENDIF

IF(PLAYER5,IMP == 16)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER5,POWER_IMP,0,0)
ENDIF

IF(PLAYER5,IMP == 15)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER5,POWER_IMP,1,1)
ENDIF

IF(PLAYER6,IMP == 16)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER6,POWER_IMP,0,0)
ENDIF

IF(PLAYER6,IMP == 15)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER6,POWER_IMP,1,1)
ENDIF


IF(PLAYER0,GAME_TURN >= 4800)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-1,DUNGEON_HEART,0,1,500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-2,DUNGEON_HEART,1,1,500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-3,DUNGEON_HEART,2,1,500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-4,DUNGEON_HEART,3,1,500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-5,DUNGEON_HEART,3,1,500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-6,DUNGEON_HEART,3,1,500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-7,DUNGEON_HEART,3,1,500)
ENDIF

IF(PLAYER0,GAME_TURN >= 13200)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-1,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-2,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-3,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-4,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-5,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-6,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYLOW,-7,2)
ENDIF

IF(PLAYER0,GAME_TURN >= 18000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-2,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-3,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-4,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-5,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-6,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-7,1)
ENDIF

IF(PLAYER0,GAME_TURN >= 25200)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-1,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-2,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-3,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-4,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-5,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-6,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRYHIGH,-7,2)
ENDIF

SET_FLAG(PLAYER4,FLAG0,1)

IF(PLAYER1,DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER4,FLAG0,2)
ENDIF
IF(PLAYER2,DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER4,FLAG0,2)
ENDIF
IF(PLAYER3,DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER4,FLAG0,2)
ENDIF
IF(PLAYER4,DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER4,FLAG0,2)
ENDIF
IF(PLAYER5,DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER4,FLAG0,2)
ENDIF
IF(PLAYER6,DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER4,FLAG0,2)
ENDIF




IF(PLAYER1,DUNGEON_DESTROYED == 1)
	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)
						WIN_GAME
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF
