REM ********************************************
REM
REM   Script for Matter of Time (Single-Player)
REM
REM ********************************************


LEVEL_VERSION(1)

SET_GENERATE_SPEED(945)

MAX_CREATURES(	ALL_PLAYERS,	70)

START_MONEY(	ALL_PLAYERS,	60000)

COMPUTER_PLAYER(PLAYER1,	0)


ADD_CREATURE_TO_POOL(	BILE_DEMON,	4)
ADD_CREATURE_TO_POOL(	DRAGON,		1)
ADD_CREATURE_TO_POOL(	DEMONSPAWN,	9)
ADD_CREATURE_TO_POOL(	DARK_MISTRESS,	20)
ADD_CREATURE_TO_POOL(	HELL_HOUND,	10)
ADD_CREATURE_TO_POOL(	TENTACLE,	8)
ADD_CREATURE_TO_POOL(	SORCEROR,	2)
ADD_CREATURE_TO_POOL(	TROLL,		16)
ADD_CREATURE_TO_POOL(	SPIDER,		6)
ADD_CREATURE_TO_POOL(	BUG,		0)
ADD_CREATURE_TO_POOL(	SKELETON,	20)
ADD_CREATURE_TO_POOL(	ORC,		20)
ADD_CREATURE_TO_POOL(	WIZARD,		10)
ADD_CREATURE_TO_POOL(	MONK,		20)
ADD_CREATURE_TO_POOL(	ARCHER,		20)
ADD_CREATURE_TO_POOL(	BARBARIAN,	20)
ADD_CREATURE_TO_POOL(	FAIRY,		12)
ADD_CREATURE_TO_POOL(	GIANT,		16)
ADD_CREATURE_TO_POOL(	THIEF,		3)
ADD_CREATURE_TO_POOL(	DWARFA,		6)
ADD_CREATURE_TO_POOL(	SAMURAI,	0)
ADD_CREATURE_TO_POOL(	HORNY,		0)


REM			Player		Creatures	Can be attracted	Amount forced

CREATURE_AVAILABLE(	PLAYER0,	BILE_DEMON,	1,			1)
CREATURE_AVAILABLE(	PLAYER0,	SORCEROR,	1,			1)
CREATURE_AVAILABLE(	PLAYER0,	BUG,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	TROLL,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	TENTACLE,	1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	DEMONSPAWN,	1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	DRAGON,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	ORC,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	DARK_MISTRESS,	1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	SPIDER,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	HELL_HOUND,	1,			30)
CREATURE_AVAILABLE(	ALL_PLAYERS,	SKELETON,	1,			30)
CREATURE_AVAILABLE(	ALL_PLAYERS,	ARCHER,		1,			30)
CREATURE_AVAILABLE(	ALL_PLAYERS,	WIZARD,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	MONK,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	BARBARIAN,	1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	FAIRY,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	GIANT,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	THIEF,		1,			1)
CREATURE_AVAILABLE(	ALL_PLAYERS,	DWARFA,		1,			1)
CREATURE_AVAILABLE(	PLAYER0,	SAMURAI,	1,			1)
CREATURE_AVAILABLE(	PLAYER1,	HORNY,		1,			1)


REM			Player		Room type	Can be available	Is available

ROOM_AVAILABLE(		ALL_PLAYERS,	TREASURE,	1,			1)
ROOM_AVAILABLE(		ALL_PLAYERS,	RESEARCH,	1,			1)
ROOM_AVAILABLE(		ALL_PLAYERS,	WORKSHOP,	0,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	GARDEN,		1,			1)
ROOM_AVAILABLE(		ALL_PLAYERS,	LAIR,		1,			1)
ROOM_AVAILABLE(		ALL_PLAYERS,	GUARD_POST,	1,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	GRAVEYARD,	0,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	PRISON,		0,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	TORTURE,	1,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	TRAINING,	1,			1)
ROOM_AVAILABLE(		ALL_PLAYERS,	SCAVENGER,	0,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	BARRACKS,	1,			0)
ROOM_AVAILABLE(		ALL_PLAYERS,	TEMPLE,		1,			0)
ROOM_AVAILABLE(		PLAYER0,	BRIDGE,		1,			0)

IF(PLAYER1,GAME_TURN > 30000)
ROOM_AVAILABLE(		PLAYER1,	BRIDGE,		1,			1)
SET_COMPUTER_PROCESS(​	PLAYER1,​"DIG TO CLOSE GOLD",10,0,5000,1,84)
ADD_GOLD_TO_PLAYER(	PLAYER1,-100000)
ENDIF


REM			Player		Door type		Can be available	Is available

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


REM			Player		Trap type		Can be available	Is available

TRAP_AVAILABLE(		ALL_PLAYERS,	ALARM,			0,			0)
TRAP_AVAILABLE(		ALL_PLAYERS,	POISON_GAS,		1,			0)
TRAP_AVAILABLE(		ALL_PLAYERS,	LAVA,			0,			0)
TRAP_AVAILABLE(		ALL_PLAYERS,	BOULDER,		0,			0)
TRAP_AVAILABLE(		ALL_PLAYERS,	LIGHTNING,		0,			0)
TRAP_AVAILABLE(		ALL_PLAYERS,	WORD_OF_POWER,		1,			0)


REM			Player		Spell type		Can be available	Is available

MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_OBEY,		0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_IMP,		0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_SLAP,		1,			1)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_SIGHT,		0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_CALL_TO_ARMS,	1,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_CAVE_IN,		0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_HEAL_CREATURE,	1,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_HOLD_AUDIENCE,	1,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_CHICKEN,		0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_SPEED,		1,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_LIGHTNING,	0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_CONCEAL,		1,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_PROTECT,		1,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_DISEASE,		0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_DESTROY_WALLS,	0,			0)
MAGIC_AVAILABLE(	ALL_PLAYERS,	POWER_ARMAGEDDON,	0,			0)

QUICK_OBJECTIVE(​0,"Welcome, Keeper. These are the map's game rules: Your creature cap is 70, and your Imp cap is 40. The creature pool lets you attract 1 of each available creature right away without having the required rooms. Build the rooms if you want more. The game's creature limit is reached when you hit 16 creatures each, but slots will be freed up as creatures on the map are slain. Take care of your creatures... Good luck!",ALL_PLAYERS)

IF_ACTION_POINT(1,PLAYER0)
	SET_GENERATE_SPEED(420)
ENDIF

IF_ACTION_POINT(1,PLAYER1)
	SET_GENERATE_SPEED(420)
ENDIF

IF(PLAYER0,BARRACKS > 0)
	ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
ENDIF

IF(PLAYER0,TORTURE > 0)
	ROOM_AVAILABLE(PLAYER0,TORTURE,1,1)
ENDIF

IF(PLAYER0,TEMPLE > 0)
	ROOM_AVAILABLE(PLAYER0,TEMPLE,1,1)
ENDIF

SET_CREATURE_HEALTH(​WITCH,​3000)

IF(PLAYER0,GAME_TURN > 24000)
	SET_GAME_RULE(GhostConvertChance,0)
ENDIF

IF(PLAYER0,GAME_TURN > 25000)
	SET_GAME_RULE(GhostConvertChance,100)
	SET_CREATURE_HEALTH(​WITCH,​300)
IF(​PLAYER0,​AVATAR ==​ DRAWFROM(1~5))
	ADD_CREATURE_TO_LEVEL(PLAYER_NEUTRAL,​AVATAR,​PLAYER1,​1,​1,2000)
ENDIF
ENDIF

IF(​PLAYER0,​WITCH ==​ 1)
	KILL_CREATURE(​PLAYER0,WITCH,LEAST_EXPERIENCED,​1)
	ADD_CREATURE_TO_LEVEL(PLAYER_NEUTRAL,​AVATAR,​PLAYER0,​1,​1,2000)
	ADD_CREATURE_TO_LEVEL(PLAYER0,​IMP,PLAYER0,​1,​2,0)
ENDIF

IF(PLAYER0,​TOTAL_DIGGERS >= 20)
	IF(​PLAYER0,​TOTAL_DIGGERS <= 39)
		NEXT_COMMAND_REUSABLE
		MAGIC_AVAILABLE(PLAYER0,POWER_IMP,		1,			1)
	ENDIF
ENDIF

IF(PLAYER1,​TOTAL_DIGGERS >= 20)
	IF(​PLAYER1,​TOTAL_DIGGERS <= 39)
		NEXT_COMMAND_REUSABLE
		MAGIC_AVAILABLE(PLAYER1,POWER_IMP,		1,			1)
	ENDIF
ENDIF

IF(​PLAYER0,​TOTAL_DIGGERS >= 40)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER0,	POWER_IMP,		0,			0)
	QUICK_INFORMATION(​1,​"You have reached the maximum number of Imps allowed on this map. Do not attempt to glitch above the cap of 40 due to the game's total creature limit.", ALL_PLAYERS)
ENDIF

IF(​PLAYER1,​TOTAL_DIGGERS >= 40)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER1,	POWER_IMP,		0,			0)
ENDIF

IF(PLAYER0,TOTAL_DIGGERS == 0)
	IF_AVAILABLE(PLAYER0,POWER_IMP == 0)
		LOSE_GAME
	ENDIF
ENDIF

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
		WIN_GAME
ENDIF