LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(ALL_PLAYERS,25000)
MAX_CREATURES(ALL_PLAYERS,20)

COMPUTER_PLAYER(PLAYER1,0)
COMPUTER_PLAYER(PLAYER2,0)
COMPUTER_PLAYER(PLAYER3,0)

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

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,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)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,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_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_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,BOULDER,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)

REM ** Test Script for How Time Flies **

REM ** Initialise parties of flies **

CREATE_PARTY(TWELVEOCLOCKFLIES)
ADD_TO_PARTY(TWELVEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,0)
ADD_TO_PARTY(TWELVEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,0)
ADD_TO_PARTY(TWELVEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,0)
ADD_TO_PARTY(TWELVEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,0)

CREATE_PARTY(THREEOCLOCKFLIES)
ADD_TO_PARTY(THREEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,1)
ADD_TO_PARTY(THREEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,1)
ADD_TO_PARTY(THREEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,1)
ADD_TO_PARTY(THREEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,1)

CREATE_PARTY(SIXOCLOCKFLIES)
ADD_TO_PARTY(SIXOCLOCKFLIES,FLY,3,400,STEAL_GOLD,2)
ADD_TO_PARTY(SIXOCLOCKFLIES,FLY,3,400,STEAL_GOLD,2)
ADD_TO_PARTY(SIXOCLOCKFLIES,FLY,3,400,STEAL_GOLD,2)
ADD_TO_PARTY(SIXOCLOCKFLIES,FLY,3,400,STEAL_GOLD,2)

CREATE_PARTY(NINEOCLOCKFLIES)
ADD_TO_PARTY(NINEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,3)
ADD_TO_PARTY(NINEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,3)
ADD_TO_PARTY(NINEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,3)
ADD_TO_PARTY(NINEOCLOCKFLIES,FLY,3,400,STEAL_GOLD,3)

CREATE_PARTY(INBETWEENFLIES)
ADD_TO_PARTY(INBETWEENFLIES,FLY,5,400,DEFEND_PARTY,0)
ADD_TO_PARTY(INBETWEENFLIES,FLY,5,400,DEFEND_PARTY,1)
ADD_TO_PARTY(INBETWEENFLIES,FLY,5,400,DEFEND_PARTY,2)
ADD_TO_PARTY(INBETWEENFLIES,FLY,5,400,DEFEND_PARTY,3)

QUICK_OBJECTIVE(1,"Well this is an odd one, Keeper. You will fight against three others as well as against time. Don't rush too quickly to the centre but make sure you get there first.",-4)


REM ** When a player digs enough of the central gold, spawn flies to attack them **

IF_ACTION_POINT(13,PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELVEOCLOCKFLIES,1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELVEOCLOCKFLIES,2,1)
	QUICK_INFORMATION(1,"Oh, how time flies.",13)
ENDIF

IF_ACTION_POINT(14,PLAYER1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THREEOCLOCKFLIES,3,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THREEOCLOCKFLIES,4,1)
ENDIF

IF_ACTION_POINT(15,PLAYER2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXOCLOCKFLIES,5,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXOCLOCKFLIES,6,1)
ENDIF

IF_ACTION_POINT(16,PLAYER3)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINEOCLOCKFLIES,7,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINEOCLOCKFLIES,8,1)
ENDIF
REM ** After a while, release flies. **

SET_TIMER(ALL_PLAYERS,TIMER0)
IF(ALL_PLAYERS,TIMER0 >= 20000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELVEOCLOCKFLIES,1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELVEOCLOCKFLIES,2,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THREEOCLOCKFLIES,3,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THREEOCLOCKFLIES,4,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXOCLOCKFLIES,5,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXOCLOCKFLIES,6,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINEOCLOCKFLIES,7,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINEOCLOCKFLIES,8,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,INBETWEENFLIES,9,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,INBETWEENFLIES,10,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,INBETWEENFLIES,11,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,INBETWEENFLIES,12,2)
	QUICK_INFORMATION(2,"Tick tock, Keeper.",-1)
ENDIF




REM ** When a player digs enough of the central gold, spawn flies to attack them **



REM ** When a player reaches the centre, spawn attacking parties of thieves and flies. Then, every 20,000 turns, spawn them again and spawn a load of flies everywhere to cause chaos **

IF_ACTION_POINT(17,ALL_PLAYERS)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-1,1,6,1600)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-2,1,6,1600)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-3,1,6,1600)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-4,1,6,1600)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-1,4,3,800)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-2,4,3,800)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-3,4,3,800)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-4,4,3,800)

	SET_TIMER(PLAYER0,TIMER1)

	IF(PLAYER0,TIMER1 >= 20000)
	
		NEXT_COMMAND_REUSABLE
		QUICK_INFORMATION(3,"It's that time again.",-1)
		
       	NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-1,1,6,1600)
		NEXT_COMMAND_REUSABLE		
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-2,1,6,1600)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-3,1,6,1600)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,-4,1,6,1600)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-1,4,3,800)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-2,4,3,800)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-3,4,3,800)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FLY,-4,4,3,800)

		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELVEOCLOCKFLIES,1,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELVEOCLOCKFLIES,2,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THREEOCLOCKFLIES,3,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THREEOCLOCKFLIES,4,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXOCLOCKFLIES,5,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXOCLOCKFLIES,6,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINEOCLOCKFLIES,7,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINEOCLOCKFLIES,8,1)

       	NEXT_COMMAND_REUSABLE
       	SET_TIMER(PLAYER0,TIMER1)
	ENDIF
ENDIF




IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
	WIN_GAME
ENDIF
