REM ######################################################
REM ######################################################

LEVEL_VERSION(1)
SET_GENERATE_SPEED(800)
RUN_AFTER_VICTORY(1)

START_MONEY(PLAYER0,500)
MAX_CREATURES(PLAYER0,12)

COMPUTER_PLAYER(PLAYER1,9)
COMPUTER_PLAYER(PLAYER2,ROAMING)
COMPUTER_PLAYER(PLAYER3,ROAMING)
COMPUTER_PLAYER(PLAYER5,ROAMING)

SET_PLAYER_COLOUR(PLAYER2,BLUE)
SET_PLAYER_COLOUR(PLAYER3,ORANGE)
SET_PLAYER_COLOUR(PLAYER_GOOD,BLACK)
SET_TEXTURE(PLAYER0,ANCIENT)

SET_GAME_RULE(GLOBALAMBIENTLIGHT,14)
SET_GAME_RULE(DISPLAYPORTALLIMIT,1)
SET_POWER_CONFIGURATION(POWER_TUNNELLER,PANELTABINDEX,2)

SET_CREATURE_MAX_LEVEL(PLAYER0,THIEF,10)
SET_DIGGER(PLAYER0,TUNNELLER)
SET_CREATURE_PROPERTY(TUNNELLER,SPECIAL_DIGGER,1)
SET_CREATURE_PROPERTY(KNIGHT,LORD,0)
SET_CREATURE_PROPERTY(KNIGHT,EVENTFUL_DEATH,1)
SET_CREATURE_PROPERTY(VAMPIRE,EVENTFUL_DEATH,1)

CONCEAL_MAP_RECT(PLAYER0,127,133,999,999,1)
REVEAL_MAP_LOCATION(PLAYER0,PLAYER0,-1)

ALLY_PLAYERS(PLAYER0,PLAYER3,3)

ALLY_PLAYERS(PLAYER1,PLAYER2,3)
ALLY_PLAYERS(PLAYER1,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER1,PLAYER5,3)
ALLY_PLAYERS(PLAYER2,PLAYER_GOOD,3)
ALLY_PLAYERS(PLAYER2,PLAYER5,3)
ALLY_PLAYERS(PLAYER_GOOD,PLAYER5,3)

DISPLAY_OBJECTIVE(2)
ZOOM_TO_LOCATION(PLAYER0,PLAYER0)



REM ######################################################
REM ######################################################

ADD_CREATURE_TO_POOL(WIZARD,3)
ADD_CREATURE_TO_POOL(ARCHER,3)
ADD_CREATURE_TO_POOL(DWARFA,30)
ADD_CREATURE_TO_POOL(THIEF,4)
ADD_CREATURE_TO_POOL(BARBARIAN,2)
ADD_CREATURE_TO_POOL(GIANT,1)
ADD_CREATURE_TO_POOL(SAMURAI,2)

CREATURE_AVAILABLE(PLAYER0,WIZARD,1,0)
CREATURE_AVAILABLE(PLAYER0,ARCHER,1,0)
CREATURE_AVAILABLE(PLAYER0,DWARFA,1,0)
CREATURE_AVAILABLE(PLAYER0,THIEF,1,0)
CREATURE_AVAILABLE(PLAYER0,BARBARIAN,1,0)
CREATURE_AVAILABLE(PLAYER0,GIANT,1,0)
CREATURE_AVAILABLE(PLAYER0,SAMURAI,1,0)


REM ######################################################
REM ######################################################

ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER0,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER0,TORTURE,1,0)



REM ######################################################
REM ######################################################

DOOR_AVAILABLE(PLAYER0,BRACED,1,0)
DOOR_AVAILABLE(PLAYER0,STEEL,1,0)
DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)

TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER0,WORD_OF_POWER,1,0)
TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)



REM ######################################################
REM ######################################################

MAGIC_AVAILABLE(PLAYER0,POWER_POSSESS,0,0)
MAGIC_AVAILABLE(PLAYER0,POWER_TUNNELLER,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,0)

IF(PLAYER0,TUNNELLER >= 10)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER0,POWER_TUNNELLER,0,0)
ENDIF
IF(PLAYER0,TUNNELLER < 10)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER0,POWER_TUNNELLER,1,1)
ENDIF



REM ######################################################
REM ######################################################
REM	### RANDOM BLUE KEEPER STUFF ###

ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(BILE_DEMON,DARK_MISTRESS,ORC),PLAYER1,1,DRAWFROM(4,5),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(BILE_DEMON,DARK_MISTRESS,ORC,MAIDEN),PLAYER1,1,DRAWFROM(4,5),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(SORCEROR,TENTACLE,TROLL,MAIDEN),PLAYER1,1,DRAWFROM(2~5),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(SORCEROR,TENTACLE,TROLL,DRUID),PLAYER1,1,DRAWFROM(2~5),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(SORCEROR,TENTACLE,TROLL,DRUID),PLAYER1,1,DRAWFROM(2~3),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(SORCEROR,TENTACLE,TROLL,DRUID),PLAYER1,1,DRAWFROM(1~3),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(FLY,BUG,SPIDER),PLAYER1,1,DRAWFROM(1~5),0,NONE)
ADD_CREATURE_TO_LEVEL(PLAYER1,DRAWFROM(FLY,BUG,SPIDER),PLAYER1,1,DRAWFROM(1~5),0,NONE)

NEXT_COMMAND_REUSABLE
CHANGE_CREATURES_ANNOYANCE(PLAYER1,ANY_CREATURE,SET,0)

MAGIC_AVAILABLE(PLAYER1,POWER_HAND,0,0)
MAGIC_AVAILABLE(PLAYER1,POWER_SLAP,0,0)

SET_CREATURE_MAX_LEVEL(PLAYER1,ANY_CREATURE,6)
MAX_CREATURES(PLAYER1,8)



REM ######################################################
REM ######################################################

CREATE_PARTY(CAPTAIN)
ADD_TO_PARTY(CAPTAIN,KNIGHT,4,0,DEFEND_LOCATION,0)
ADD_PARTY_TO_LEVEL(PLAYER3,CAPTAIN,PLAYER0,1)

CREATE_PARTY(DIGLETT)
ADD_TO_PARTY(DIGLETT,DWARFA,2,0,DEFEND_PARTY,0)
ADD_TO_PARTY(DIGLETT,DWARFA,1,0,DEFEND_PARTY,0)

CREATE_PARTY(WAAAGH)
ADD_TO_PARTY(WAAAGH,ORC,5,300,ATTACK_ROOMS,0)
ADD_TO_PARTY(WAAAGH,ORC,5,300,STEAL_GOLD,0)
ADD_TO_PARTY(WAAAGH,TROLL,5,150,DEFEND_PARTY,0)
ADD_TO_PARTY(WAAAGH,TROLL,5,150,DEFEND_PARTY,0)
ADD_TO_PARTY(WAAAGH,TROLL,4,125,DEFEND_PARTY,0)
ADD_TO_PARTY(WAAAGH,TROLL,3,100,DEFEND_PARTY,0)

CREATE_PARTY(SPOOKYSCARY)
ADD_TO_PARTY(SPOOKYSCARY,SKELETON,7,0,ATTACK_ROOMS,0)
ADD_TO_PARTY(SPOOKYSCARY,SKELETON,7,0,STEAL_GOLD,0)
ADD_TO_PARTY(SPOOKYSCARY,SKELETON,5,0,DEFEND_PARTY,0)
ADD_TO_PARTY(SPOOKYSCARY,SKELETON,5,0,DEFEND_PARTY,0)
ADD_TO_PARTY(SPOOKYSCARY,SKELETON,5,0,DEFEND_PARTY,0)
ADD_TO_PARTY(SPOOKYSCARY,SKELETON,5,0,DEFEND_PARTY,0)

CREATE_PARTY(LOUIELEGS)
ADD_TO_PARTY(LOUIELEGS,MAIDEN,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(LOUIELEGS,SPIDER,7,0,DEFEND_PARTY,0)
ADD_TO_PARTY(LOUIELEGS,SPIDER,7,0,DEFEND_PARTY,0)



REM ######################################################
REM ######################################################
REM ### SOME DUDES STANDING AROUND ###

CREATE_PARTY(DRAGON)
ADD_TO_PARTY(DRAGON,DRAGON,6,0,DEFEND_LOCATION,400)
CREATE_PARTY(SPAWN)
ADD_TO_PARTY(SPAWN,DEMONSPAWN,5,0,DEFEND_LOCATION,0)
CREATE_PARTY(DOGGO)
ADD_TO_PARTY(DOGGO,HELL_HOUND,7,0,DEFEND_LOCATION,0)
CREATE_PARTY(FLY)
ADD_TO_PARTY(FLY,FLY,7,0,DEFEND_LOCATION,0)
CREATE_PARTY(TENTACLE)
ADD_TO_PARTY(TENTACLE,TENTACLE,6,0,DEFEND_LOCATION,0)
CREATE_PARTY(SKELETON)
ADD_TO_PARTY(SKELETON,SKELETON,6,0,DEFEND_LOCATION,0)
CREATE_PARTY(GHOST)
ADD_TO_PARTY(GHOST,GHOST,5,0,DEFEND_LOCATION,0)
CREATE_PARTY(SPIDER)
ADD_TO_PARTY(SPIDER,SPIDER,7,0,DEFEND_LOCATION,0)
CREATE_PARTY(BIGBOOTYBITCH)
ADD_TO_PARTY(BIGBOOTYBITCH,MAIDEN,9,0,DEFEND_LOCATION,0)


ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGON,14,2)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPAWN,14,3)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DOGGO,28,1)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGON,15,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DRAGON,15,3)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FLY,2,6)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TENTACLE,24,5)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SKELETON,-1,DRAWFROM(4~6))
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GHOST,9,DRAWFROM(2~4))
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GHOST,10,DRAWFROM(2~4))
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GHOST,11,DRAWFROM(2~4))

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPIDER,25,5)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BIGBOOTYBITCH,25,2)



REM ######################################################
REM ######################################################
REM ### DWARF PARTY MESSAGE CONTROL ###

IF(PLAYER0,FLAG0 == 1)
	NEXT_COMMAND_REUSABLE
	RANDOMIZE_FLAG(PLAYER0,FLAG1,3)
ENDIF

IF(PLAYER0,FLAG1 == 1)
	NEXT_COMMAND_REUSABLE
	DISPLAY_MESSAGE(3,KNIGHT)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG0,0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG1,0)
ENDIF

IF(PLAYER0,FLAG1 == 2)
	NEXT_COMMAND_REUSABLE
	DISPLAY_MESSAGE(4,TUNNELLER)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG0,0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG1,0)
ENDIF

IF(PLAYER0,FLAG1 == 3)
	NEXT_COMMAND_REUSABLE
	DISPLAY_MESSAGE(5,DWARFA)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG0,0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG1,0)
ENDIF



REM ######################################################
REM ######################################################
REM ### AI TUNNELLER CONTROLS ###

	REM ### FLIES (2), BEETLES (6), GIANT (7) ###

IF(PLAYER0,GAME_TURN >= 4000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,DRAWFROM(2,7,6),3,300)
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



	REM ### TROLLS (3)

IF(PLAYER0,GAME_TURN >= 7000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,3,3,0)
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



	REM ### FLIES (2), BEETLES (6), GIANT (7)
	REM ### RETRY TROLLS

IF(PLAYER0,GAME_TURN >= 12000)
	ADD_TO_PARTY(DIGLETT,DWARFA,4,0,DEFEND_PARTY,0)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,3,3,300)
	
	IF_ACTION_POINT(2,PLAYER3)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,DRAWFROM(7,6),3,300)
		SET_FLAG(PLAYER0,FLAG0,1)
	ENDIF
	IF_ACTION_POINT(7,PLAYER3)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,DRAWFROM(2,6),3,300)
		SET_FLAG(PLAYER0,FLAG0,1)
	ENDIF
	IF_ACTION_POINT(6,PLAYER3)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,DRAWFROM(2,7),3,300)
		SET_FLAG(PLAYER0,FLAG0,1)
	ENDIF
ENDIF



	REM ### UNDEAD (4)
	REM ### RETRY (7,6,2)

IF(PLAYER0,GAME_TURN >= 18000)
	ADD_TO_PARTY(DIGLETT,DWARFA,5,0,DEFEND_PARTY,0)
	DELETE_FROM_PARTY(DIGLETT,DWARFA,1)
	
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,4,6,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,DRAWFROM(7,6,2),3,300)
	
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



	REM ### SPIDERS (1), TENTACLES (5)
	REM ### RETRY UNDEAD
	REM ### RETRY (7,6,2)

IF(PLAYER0,GAME_TURN >= 22000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,DRAWFROM(1,5),6,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,4,3,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,DRAWFROM(7,6,2),3,300)
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



	REM ### DEMONS (8)
	REM ### RETRY UNDEAD

IF(PLAYER0,GAME_TURN >= 27000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,8,6,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,4,3,300)
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



	REM ### SPIDERS (1) AND TENTACLES (5)
	REM ### RETRY DEMONS

IF(PLAYER0,GAME_TURN >= 32000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,5,6,300)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER3,DIGLETT,PLAYER0,ACTION_POINT,1,6,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,8,6,300)
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



	REM ### ENSURE SPIDER, DEMON AND UNDEAD ACTION POINTS ARE TRIGGERED.

IF(PLAYER0,GAME_TURN >= 38000)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,1,6,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,8,6,300)
	ADD_TUNNELLER_TO_LEVEL(PLAYER3,PLAYER0,ACTION_POINT,4,6,300)
	
	ADD_CREATURE_TO_LEVEL(PLAYER3,MAIDEN,1,1,8,0,NONE)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER3,MAIDEN,ANYWHERE,PLAYER5)
	
	ADD_CREATURE_TO_LEVEL(PLAYER3,SKELETON,4,2,6,0,NONE)
	ADD_CREATURE_TO_LEVEL(PLAYER3,GHOST,4,2,5,0,NONE)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER3,SKELETON,ANYWHERE,PLAYER5)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER3,GHOST,ANYWHERE,PLAYER5)
	
	ADD_CREATURE_TO_LEVEL(PLAYER3,DRAGON,8,1,6,0,NONE)
	ADD_CREATURE_TO_LEVEL(PLAYER3,DEMONSPAWN,8,4,4,0,NONE)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER3,DRAGON,ANYWHERE,PLAYER5)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER3,DEMONSPAWN,ANYWHERE,PLAYER5)
	
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF



REM ######################################################
REM ######################################################
REM ### RESEARCH CTA IF NOT ALREADY, AND TELL PLAYER TO GET OUT THERE AND ATTACK SOME SHIT ###

IF(PLAYER0,GAME_TURN > 25000)
	IF(PLAYER0,FLAG2 == 0)
		IF(PLAYER3,KNIGHT == 1)
			DISPLAY_INFORMATION(13)
			SET_FLAG(PLAYER0,FLAG2,1)
			MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
			TUTORIAL_FLASH_BUTTON(23,400)
		ENDIF
		IF(PLAYER3,KNIGHT == 0)
			DISPLAY_INFORMATION(14)
			SET_FLAG(PLAYER0,FLAG2,1)
			MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
			TUTORIAL_FLASH_BUTTON(23,400)
		ENDIF
	ENDIF
ENDIF



REM ######################################################
REM ######################################################
REM ### TROLL HARASS + PROTECTION ###

IF_ACTION_POINT(3,PLAYER3)
	SET_TIMER(PLAYER0,TIMER1)
ENDIF

IF(PLAYER0,TIMER1 >= 4500)
	IF(PLAYER1,DUNGEON_DESTROYED == 0)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER2,WAAAGH,PLAYER1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER1)
	ENDIF
ENDIF

IF_ACTION_POINT(16,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,MAIDEN,23,1,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,ORC,23,2,6,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,TROLL,23,1,6,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,TROLL,23,2,DRAWFROM(4~5),0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,DRAWFROM(BUG,SPIDER),23,2,DRAWFROM(3~5),0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,DRAWFROM(BUG,SPIDER),23,2,DRAWFROM(2~5),0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,DRAWFROM(BUG,SPIDER),23,3,DRAWFROM(1~5),0)
ENDIF



REM ######################################################
REM ######################################################
REM ### UNDEAD HARASS ###
REM ### DISABLED WHEN VAMPIRE IS DEAD ###

IF_ACTION_POINT(4,PLAYER3)
	IF(PLAYER_GOOD,VAMPIRE == 1)
		ZOOM_TO_LOCATION(PLAYER0,17)
		DISPLAY_MESSAGE(7,VAMPIRE)
		REVEAL_MAP_LOCATION(PLAYER0,17,-1)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,9,2,4,0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,10,3,3,0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,11,2,6,0)
		SET_TIMER(PLAYER0,TIMER2)
		SET_TIMER(PLAYER0,TIMER3)
	ENDIF
ENDIF

IF(PLAYER0,TIMER2 >= 5000)
	IF(PLAYER_GOOD,VAMPIRE == 1)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,9,2,4,0)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,10,3,3,0)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,11,2,6,0)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER2)
	ENDIF
ENDIF

IF(PLAYER0,TIMER3 >= 8000)
	IF(PLAYER_GOOD,VAMPIRE == 1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SPOOKYSCARY,-1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER3)
	ENDIF
ENDIF

IF(PLAYER_GOOD,VAMPIRE == 0)
	ZOOM_TO_LOCATION(PLAYER0,LAST_DEATH_EVENT[PLAYER_GOOD])
	HIDE_HERO_GATE(-1,1)
	DISPLAY_MESSAGE(8,VAMPIRE)
ENDIF



REM ######################################################
REM ######################################################
REM ### PERIODIC DEMON HARASS ###
REM ### DISABLED WHEN SCAVENGER ROOM IS DESTROYED ###

IF_ACTION_POINT(8,PLAYER3)
	IF(PLAYER_GOOD,WARLOCK == 1)
		ZOOM_TO_LOCATION(PLAYER0,-2)
		REVEAL_MAP_RECT(PLAYER0,22,28,30,21)
		REVEAL_MAP_RECT(PLAYER0,22,28,24,27)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,-2,1,6,0)
		DISPLAY_MESSAGE(9,WARLOCK)
		SET_TIMER(PLAYER0,TIMER4)
	ENDIF
ENDIF

IF(PLAYER0,TIMER4 >= 12000)
	IF(PLAYER_GOOD,WARLOCK == 1)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,-2,1,5,0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HELL_HOUND,-2,2,6,0)
	ENDIF
ENDIF

IF(PLAYER_GOOD,WARLOCK == 0)
	DISPLAY_MESSAGE(10,WARLOCK)
	ZOOM_TO_LOCATION(PLAYER0,LAST_DEATH_EVENT[PLAYER_GOOD])
	HIDE_HERO_GATE(-2,1)
ENDIF



REM ######################################################
REM ######################################################
REM ### PERIODIC SPIDER HARASS ###
REM ### DISABLED WHEN ALL PLAYER_GOOD MAIDENS ARE KILLED ###
REM ### DOES IT MAKE SENSE FOR THE TENTACLE SPAWNING TO BE ATTACHED TO MAIDENS ON THE OTHER SIDE OF THE MAP? I DON'T CARE, FUCK YOU.

IF_ACTION_POINT(1,PLAYER3)
	SET_TIMER(PLAYER0,TIMER6)
ENDIF

IF(PLAYER_GOOD,MAIDEN > 0)
	IF(PLAYER0,TIMER6 > 5000)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LOUIELEGS,26,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LOUIELEGS,27,1)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TENTACLE,24,3,5,0,NONE)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER6)
	ENDIF
ENDIF



REM ######################################################
REM ######################################################
REM ### TRAPPED DWARF RESCUE ###

IF_ACTION_POINT(18,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER0,TUNNELLER,18,1,DRAWFROM(1~4),0,NONE)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TENTACLE,20,1,DRAWFROM(3,4),0,NONE)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TENTACLE,19,1,DRAWFROM(3,4),0,NONE)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DRAWFROM(SPIDER,BUG),21,2,DRAWFROM(1~4),0,NONE)
ENDIF



REM ######################################################
REM ######################################################
REM ### CONVERT TREASURY IF BLUE DIES ###
REM ### ALSO CONVERT HIS LEFTOVER DUDES ###

IF(PLAYER1,DUNGEON_DESTROYED == 1)
	REVEAL_MAP_RECT(PLAYER0,229,229,21,15)
	REVEAL_MAP_RECT(PLAYER0,229,229,15,21)
	ZOOM_TO_LOCATION(PLAYER0,22)
	CHANGE_SLAB_OWNER(76,76,PLAYER0,MATCH)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER1,ANY_CREATURE,ANYWHERE,PLAYER5)
	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURE_OWNER(PLAYER2,ANY_CREATURE,ANYWHERE,PLAYER5)
ENDIF



REM ######################################################
REM ######################################################
REM ### NORTH-WEST INCREASE SPECIAL ###

IF_ACTION_POINT(12,PLAYER0)
	SET_OBJECT_CONFIGURATION(SPECBOX_INCLEV,UPDATEFUNCTION,UPDATE_POWER_LIGHTNING)
	CREATE_EFFECT_AT_POS(EFFECT_SPANGLE_RED_BIG,232,46,1)
	PLAY_MESSAGE(PLAYER0,SPEECH,80)
	USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
ENDIF



REM ######################################################
REM ######################################################
REM ### NORTH-WEST INCREASE SPECIAL ###

SET_BOX_TOOLTIP_ID(0,6)
IF_ACTION_POINT(13,PLAYER0)
	SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM,UPDATEFUNCTION,UPDATE_POWER_LIGHTNING)
	CREATE_EFFECT_AT_POS(EFFECT_SPANGLE_RED_BIG,34,76,1)
	PLAY_MESSAGE(PLAYER0,SPEECH,80)
	USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
ENDIF



REM ######################################################
REM ######################################################
REM ### WIN CONDITION ###

IF(PLAYER0,ACTIVE_BATTLES > 0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0,TIMER5)
ENDIF

IF(PLAYER0,MONEY >= 100000)
	IF(PLAYER0,TIMER5 > 400)
		IF(PLAYER0,FLAG3 == 0)
			IF(PLAYER3,KNIGHT == 1)
				DISPLAY_OBJECTIVE(11)
				SET_FLAG(PLAYER0,FLAG3,1)
				ADD_GOLD_TO_PLAYER(PLAYER0,-100000)
				TRANSFER_CREATURE(PLAYER3,KNIGHT,ANYWHERE,1)
				WIN_GAME
			ENDIF
			IF(PLAYER3,KNIGHT == 0)
				DISPLAY_OBJECTIVE(12)
				SET_FLAG(PLAYER0,FLAG3,1)
				WIN_GAME
			ENDIF
		ENDIF
	ENDIF
ENDIF





REM -- Player dungeon heart makes tink noises, despite being a ghostly portal. Can't fix because changing the hit_heart sounds would also influence PLAYER1's dungeon heart, thus moving the problem elsewhere.
REM -- Ideally, alliessharevision would be enabled so the player can see where the scouting parties dig to, but it cannot be used in combination with conceal map as conceal map does not affect computer players.
REM -- Player isn't told to kill all Maidens to stop their spawning, nor are they told to kill blue keeper to stop the orcs. Both should be self-explanatory.
REM -- Due to Tunnellers being interrupted before reaching their respective action points, the spawning party timers are inconsistent on when they begin, and in some situations, some areas of the map may not be dug into at all. The randomness is overall good and not an issue to be fixed.
REM -- If the 'Captain' walks into the training room, he'll probably be killed by the players creatures while they train. He's unlikely to survive long anyway, so it's no big deal.
REM -- The narrator exclaims that the dungeon has been breached every time the friendly tunnellers shows up. This is a KFX issue.