


REM ### OVERLAND INTRO -- Stillwater Sump. A pitch-black cavity in the earth, Stillwater Sump serves as a basin for the water percolating through the igneous rock above. This dank pit carved into the primordial rock through untold eons of erosion nonetheless calls itself home to some primitive yet highly territorial creatures.



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


REM ### ACTION POINT 1 -	BLUE PORTAL REINFORCEMENTS
REM ### ACTION POINT 2 -	GREEN PORTAL REINFORCEMENTS
REM ### ACTION POINT 3 -	BLUE DUNGEON HEART RADIUS
REM ### ACTION POINT 4 -	GREEN DUNGEON HEART RADIUS
REM ### ACTION POINT 5 -	PLAYER0 PORTAL, MESSAGE DIRECT

REM ### MESSAGE 1 -			INTRO
REM ### MESSAGE 2 -			OUTRO
REM ### MESSAGE 3 -			BLUE REINFORCEMENTS
REM ### MESSAGE 4 -			GREEN REINFORCEMENTS
REM ### MESSAGE 5 -			HINT #1
REM ### MESSAGE 6 -			HINT #2
REM ### MESSAGE 7 -			HINT #3
REM ### MESSAGE 8 -			HINT #4
REM ### MESSAGE 9 -			HINT #5
REM ### MESSAGE 10 -		MAIN OBJECTIVE

REM ### P0 FLAG0 -			CREATE IMP SPECIAL
REM ### P0 FLAG1 -			GAME START DELAY
REM ### P0 FLAG2 -			IMP SPAWNS AT GAME START
REM ### P1 FLAG0 -			COUNTS PLAYER CREATURES NEAR BLUE HEART
REM ### P1 FLAG1 -			BONUS REINFORCEMENTS FOR BLUE
REM ### P2 FLAG0 -			COUNTS PLAYER CREATURES NEAR GREEN HEART
REM ### P2 FLAG1 -			BONUS REINFORCEMENTS FOR GREEN

REM ### P0 TIMER0 -			IMP RESPAWN SYSTEM
REM ### P0 TIMER1 -			POST-DEATH MESSAGES
REM ### P1 TIMER0 -			IMP RESPAWN SYSTEM
REM ### P1 TIMER1 - 		COUNTS PLAYER CREATURES NEAR BLUE HEART
REM ### P1 TIMER2 - 		BRIEFLY DISABLES BLUE KEEPER HAND WHEN REINFORCEMENTS ARRIVE
REM ### P2 TIMER0 -			IMP RESPAWN SYSTEM
REM ### P2 TIMER1 - 		COUNTS PLAYER CREATURES NEAR GREEN HEART
REM ### P2 TIMER2 - 		BRIEFLY DISABLES GREEN KEEPER HAND WHEN REINFORCEMENTS ARRIVE
REM ### PG TIMER0 - 		PROVIDES BRIEF DELAY WHEN SPAWNING IMPS AT GAME START

REM ### BOX0 -				CREATE IMP CUSTOM SPECIAL



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


LEVEL_VERSION(1)

SET_GENERATE_SPEED(250)

SET_TEXTURE(PLAYER0,NONE)

COMPUTER_PLAYER(PLAYER1,15)
COMPUTER_PLAYER(PLAYER2,13)

START_MONEY(PLAYER0,0)
START_MONEY(PLAYER1,0)
START_MONEY(PLAYER2,0)

MAX_CREATURES(PLAYER0,20)
MAX_CREATURES(PLAYER1,20)
MAX_CREATURES(PLAYER2,20)



REM ######################################################
REM ######################################################
REM ### BILE DEMONS AND DRAGS TOO STRONK ###
REM ### GIVE PLAYER A CHANCE AT GETTING ORCS/THOTS


ADD_CREATURE_TO_POOL(FLY,20)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(ORC,4)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,4)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(DRUID,20)

IF(PLAYER0,BARRACKS > 1)
	ADD_CREATURE_TO_POOL(ORC,6)
ENDIF

IF(PLAYER0,TORTURE > 1)
	ADD_CREATURE_TO_POOL(DARK_MISTRESS,6)
ENDIF



REM ######################################################
REM ######################################################
REM ### FORCE TENTACLES FOR ALL PLAYERS TO MATCH THE SWAMPY THEME ###


CREATURE_AVAILABLE(ALL_PLAYERS,FLY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRUID,1,0)

CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,1,12)



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


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,BRIDGE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)



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


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)



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


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,WORD_OF_POWER,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,BOULDER,1,0)



REM ######################################################
REM ######################################################
REM ### NO CAVE-IN, DESTROY WALLS, ARMAGEDDON


MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,1,0)



REM ######################################################
REM ######################################################
REM ### STOP ENTIRE DUNGEON BEING REVEALED AT START // STOP AI FROM PICKING UP ORC-TROLL // SPAWN ORC-TROLL //  MAKE ORC-TROLL NOT ATTACK EACH OTHER OR PLAYER, THEN RETREAT INTO DARKNESS.


CHANGE_SLAB_TYPE(​35,41,PATH)
CHANGE_SLAB_TYPE(​36,40,PATH)


MAGIC_AVAILABLE(PLAYER1,POWER_HAND,0,0)
MAGIC_AVAILABLE(PLAYER2,POWER_HAND,0,0)


CREATE_PARTY(ORC)
ADD_TO_PARTY(ORC,ORC,1,0,DEFEND_ROOMS,0)
ADD_PARTY_TO_LEVEL(PLAYER1,ORC,5,1)
CREATE_PARTY(TROLL)
ADD_TO_PARTY(TROLL,TROLL,1,0,DEFEND_ROOMS,0)
ADD_PARTY_TO_LEVEL(PLAYER2,TROLL,5,1)


ALLY_PLAYERS(PLAYER1,PLAYER2,3)
ALLY_PLAYERS(PLAYER0,PLAYER1,3)
ALLY_PLAYERS(PLAYER0,PLAYER2,3)



REM ######################################################
REM ######################################################
REM ### RETURN HAND TO AI // TELEPORT ORC-TROLL BACK HOME // RESET ALLIANCES // GIVE STARTING GOLD TO PLAYERS // FLAG1 SPAWNS IMPS FOR PLAYERS ###


IF(PLAYER0,GAME_TURN > 325)
	MAGIC_AVAILABLE(PLAYER1,POWER_HAND,1,1)
	MAGIC_AVAILABLE(PLAYER2,POWER_HAND,1,1)
	USE_POWER(PLAYER1,POWER_HOLD_AUDIENCE,1)
	USE_POWER(PLAYER2,POWER_HOLD_AUDIENCE,1)
	ALLY_PLAYERS(PLAYER1,PLAYER2,2)
	ALLY_PLAYERS(PLAYER0,PLAYER1,2)
	ALLY_PLAYERS(PLAYER2,PLAYER0,2)
	ADD_GOLD_TO_PLAYER(PLAYER0,10000)
	ADD_GOLD_TO_PLAYER(PLAYER1,7500)
	ADD_GOLD_TO_PLAYER(PLAYER2,7500)
	SET_FLAG(PLAYER0,FLAG1,1)
	QUICK_OBJECTIVE(10,"My, what a repellent little burrow this is.. and what a horrific smell! Clear these wretches quickly Keeper, and let us venture somewhere less.. earthy.")
ENDIF



REM ######################################################
REM ######################################################
REM ### IMP SPAWNS AT GAME START


SET_TIMER(PLAYER_GOOD,TIMER0)


IF(PLAYER0,FLAG1 == 1)
	IF(PLAYER0,FLAG2 <= 3)
		IF(PLAYER_GOOD,TIMER0 > 15)
			NEXT_COMMAND_REUSABLE
			USE_POWER_AT_LOCATION(PLAYER0,PLAYER0,POWER_IMP,1,1)
			NEXT_COMMAND_REUSABLE
			USE_POWER_AT_LOCATION(PLAYER1,PLAYER1,POWER_IMP,1,1)
			NEXT_COMMAND_REUSABLE
			USE_POWER_AT_LOCATION(PLAYER2,PLAYER2,POWER_IMP,1,1)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(​PLAYER0,FLAG2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER0)
		ENDIF
	ENDIF
ENDIF



REM ######################################################
REM ######################################################
REM ### IMP RESPAWNS FOR EVERYBODY ###


SET_TIMER(PLAYER0,TIMER0)
SET_TIMER(PLAYER1,TIMER0)
SET_TIMER(PLAYER2,TIMER0)


IF(PLAYER0,TIMER0 >= 500)
	IF(PLAYER0,IMP <= 5)
		NEXT_COMMAND_REUSABLE
		USE_POWER_AT_LOCATION(PLAYER0,PLAYER0,POWER_IMP,1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER0)
	ENDIF
ENDIF

IF(PLAYER1,TIMER0 >= 500)
	IF(PLAYER1,IMP <= 3)
		NEXT_COMMAND_REUSABLE
		USE_POWER_AT_LOCATION(PLAYER1,PLAYER1,POWER_IMP,1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER1,TIMER0)
	ENDIF
ENDIF

IF(PLAYER2,TIMER0 >= 500)
	IF(PLAYER2,IMP <= 3)
		NEXT_COMMAND_REUSABLE
		USE_POWER_AT_LOCATION(PLAYER2,PLAYER2,POWER_IMP,1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER2,TIMER0)
	ENDIF
ENDIF



REM ######################################################
REM ######################################################	
REM ### CHECK IF PLAYER HAS CREATURES NEAR BLUE'S HEART ###
	
	
SET_FLAG(PLAYER1,FLAG0,0)
IF_ACTION_POINT(3,PLAYER0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER1,TIMER1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(​PLAYER1,FLAG0,​1)
ENDIF

IF(PLAYER1,TIMER1 >= 50)
	NEXT_COMMAND_REUSABLE
	RESET_ACTION_POINT(3)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1,FLAG0,0)
ENDIF



REM ######################################################
REM ######################################################	
REM ### CHECK IF PLAYER HAS CREATURES NEAR GREEN'S HEART ###
	
	
SET_FLAG(PLAYER2,FLAG0,0)
IF_ACTION_POINT(4,PLAYER0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER2,TIMER1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(​PLAYER2,FLAG0,​1)
ENDIF

IF(PLAYER2,TIMER1 >= 50)
	NEXT_COMMAND_REUSABLE
	RESET_ACTION_POINT(4)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER2,FLAG0,0)
ENDIF
	
	

REM ######################################################
REM ######################################################
REM ### IF BLUE KEEPER HAS FEW CREATURES, 33% HEART HEALTH, AND PLAYER IS ATTACKING THEIR HEART, SPAWN SOME CREATURES. ###
REM ### TIMER2 DISABLES KEEPER'S HAND FOR A SHORT DURATION SO THEY CAN'T IMMEDIATELY PICK UP THE REINFORCEMENTS. ###
REM ### IF PLAYER1 DIES SECOND, REINFORCEMENTS HAVE ADDITIONAL UNITS.
REM ### FLAG1 ENSURES ADDITIONAL REINFORCEMENTS SPAWNS AT SAME TIME AS FIRST.


IF(PLAYER1,HEART_HEALTH <= 10000)
	IF(PLAYER1,TOTAL_CREATURES <= 5)
		IF(PLAYER1,FLAG0 >= 1)
			SET_TIMER(PLAYER1,TIMER2)
			ADD_CREATURE_TO_LEVEL(​PLAYER1,BILE_DEMON,1,​1,​5,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER1,​ORC,​1,​3,​3,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER1,TROLL,​1,​4,​2,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER1,SPIDER,1,​2,​3,​0)
			ADD_GOLD_TO_PLAYER(PLAYER1,8000)
			MAGIC_AVAILABLE(PLAYER1,POWER_HAND,0,0)
			PLAY_MESSAGE(PLAYER0,SOUND,83)
			QUICK_INFORMATION(3,"[A band of enemy warriors emerge from deeper in the cave, leaping into the fray.]",1)
			SET_FLAG(PLAYER1,FLAG1,1)
		ENDIF
	ENDIF
ENDIF


IF(PLAYER1,FLAG1 == 1)
	IF(PLAYER2,DUNGEON_DESTROYED == 1)
		ADD_CREATURE_TO_LEVEL(PLAYER1,HORNY,1,1,5,0)
		ADD_CREATURE_TO_LEVEL(PLAYER1,HELL_HOUND,1,2,5,0)
		ADD_GOLD_TO_PLAYER(PLAYER1,3000)
	ENDIF
ENDIF


IF(PLAYER1,TIMER2 >= 300)
	MAGIC_AVAILABLE(PLAYER1,POWER_HAND,1,1)
ENDIF



REM ######################################################
REM ######################################################	
REM ### IF GREEN KEEPER HAS FEW CREATURES, 33% HEART HEALTH, AND PLAYER IS ATTACKING THEIR HEART, SPAWN SOME CREATURES.
REM ### TIMER2 DISABLES KEEPER'S HAND FOR A SHORT DURATION SO THEY CAN'T IMMEDIATELY PICK UP THE REINFORCEMENTS. ###
REM ### IF PLAYER2 DIES SECOND, REINFORCEMENTS HAVE ADDITIONAL UNITS.
REM ### FLAG1 ENSURES ADDITIONAL REINFORCEMENTS SPAWNS AT SAME TIME AS FIRST.


IF(PLAYER2,HEART_HEALTH <= 10000)
	IF(PLAYER2,TOTAL_CREATURES <= 5)
		IF(PLAYER2,FLAG0 >= 1)
			SET_TIMER(PLAYER2,TIMER2)
			ADD_CREATURE_TO_LEVEL(​PLAYER2,DRUID,2,​1,7,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER2,TENTACLE,2,2,​3,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER2,SPIDER,​2,​2,​4,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER2,BUG,2,​2,​2,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER2,DARK_MISTRESS,2,​2,​2,​0)
			ADD_CREATURE_TO_LEVEL(​PLAYER2,SORCEROR,2,​2,​3,​0)
			ADD_GOLD_TO_PLAYER(PLAYER2,8000)
			MAGIC_AVAILABLE(PLAYER2,POWER_HAND,0,0)
			PLAY_MESSAGE(PLAYER0,SOUND,83)
			QUICK_INFORMATION(4,"[A Druid leader has hastily mustered a force of creatures to repel your ongoing attack.]",2)
			SET_FLAG(PLAYER2,FLAG1,1)
		ENDIF
	ENDIF
ENDIF


IF(PLAYER2,FLAG1 == 1)
	IF(PLAYER1,DUNGEON_DESTROYED == 1)
		ADD_CREATURE_TO_LEVEL(PLAYER2,TENTACLE,2,1,7,0)
		ADD_CREATURE_TO_LEVEL(PLAYER2,SPIDER,2,1,7,0)
		ADD_CREATURE_TO_LEVEL(PLAYER2,FLY,2,2,10,0)
		ADD_GOLD_TO_PLAYER(PLAYER2,3000)
	ENDIF
ENDIF


IF(PLAYER2,TIMER2 >= 300)
	MAGIC_AVAILABLE(PLAYER2,POWER_HAND,1,1)
ENDIF



REM ####################################################################
REM ####################################################################
REM ### CREATE IMP SPECIAL


SET_BOX_TOOLTIP(0,"Create Imp: Six new imps join your workforce.")

IF(PLAYER0,BOX0_ACTIVATED == 1)
	SET_TIMER(PLAYER0,TIMER2)
ENDIF

IF(PLAYER0,TIMER2 > 10)
	IF(PLAYER0,FLAG0 <= 5)
		NEXT_COMMAND_REUSABLE
		USE_POWER_AT_LOCATION(PLAYER0,LAST_EVENT,POWER_IMP,1,1)
		NEXT_COMMAND_REUSABLE
		ADD_TO_FLAG(​PLAYER0,FLAG0,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER2)
	ENDIF
ENDIF



REM ####################################################################
REM ####################################################################
REM ### ANNOYINGLY GIVE PLAYERS ADVICE IF THEIR HEART GETS DESTROYED ###


RUN_AFTER_VICTORY(1)

IF(PLAYER0,DUNGEON_DESTROYED == 1)
	SET_TIMER(PLAYER0,TIMER1)
ENDIF


IF(PLAYER0,TIMER1 >= 100)
	QUICK_INFORMATION(5,"Speed and greed are your two main objectives, at least in the beginning. Build up fast, and greedily claim as much gold as you can. Use most of your starting gold on additional workers to help carve out rooms as quickly as possible.")
ENDIF

IF(PLAYER0,TIMER1 >= 200)
	QUICK_INFORMATION(6,"There is no kinship between these two tribes. Bait them into a conflict, and then retreat into the shadows. Let their strength dwindle, while conserving your own.")
ENDIF

IF(PLAYER0,TIMER1 >= 300)
	QUICK_INFORMATION(7,"Train your minions. Spiders receive a big utility boost at level 4; Warlocks a big damage boost at 4, and Tentacles gain Freeze at level 5.")
ENDIF

IF(PLAYER0,TIMER1 >= 400)
	QUICK_INFORMATION(8,"Crack the whip! Must Obey gives all creatures a speed boost, equivalent to being permanently slapped, but without the complaints to HR. Use Must Obey to quickly train your minions and lord over the competition.")
ENDIF

IF(PLAYER0,TIMER1 >= 500)
	QUICK_INFORMATION(9,"When the gold has been mined out and your treasury begins to dwindle, rein in your expenses. Focus instead on solidifying your position and winning small, repeated bouts.")
ENDIF



REM ######################################################
REM ######################################################
REM ### LOOSE MESSAGES ###


QUICK_INFORMATION(1,"[Over the dull pulse of the Heart, and the trickle of the ever seeping walls around, you catch the soft, furtive skittering of obscured watchers in the dark. Focusing on the shadows, adjusting your eyes to see, you spy the silhouettes of hunchback creatures retreating into the nebulous darkness. Your presence is known.]",5)



REM ######################################################
REM ######################################################
REM ### WIN CONDITION ###
REM ### I DON'T REMEMBER WHY THIS IS BEHIND AN IF(GAME_TURN), BUT I DON'T WANT TO RETEST IT SO YOU KNOW WHAT? FUCK IT. IT CAN STAY. IT'S THE MALE NIPPLE OF THIS SCRIPT, IT'S PROBABLY VESTIGIAL AND POINTLESS BUT DOESN'T MATTER, WE'RE KEEPING IT.


IF(PLAYER0,GAME_TURN > 1000)
	IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
		QUICK_OBJECTIVE(2,"[The cacophany of animal shrieking and grunting is slowly replaced by the hoarse choking of the incapacitated, still-dying creatures. As the final gurgling deathrattle tolls, the sound of soft trickling water begins to return.]")
		WIN_GAME
	ENDIF
ENDIF






