SET_GENERATE_SPEED(200)

MAX_CREATURES(PLAYER0,0)
MAX_CREATURES(PLAYER1,15)
MAX_CREATURES(PLAYER2,8)
MAX_CREATURES(PLAYER3,8)

ALLY_PLAYERS(PLAYER2,PLAYER3)

START_MONEY(ALL_PLAYERS,10000)

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

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

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,FLY,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,1)

ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,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,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DESTROY_WALLS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_ARMAGEDDON,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LAVA,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,BOULDER,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,0)

CREATE_PARTY(BATTLE)

ADD_TO_PARTY(BATTLE,SAMURAI,3,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BATTLE,BARBARIAN,2,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BATTLE,GIANT,1,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BATTLE,DWARFA,2,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BATTLE,DWARFA,2,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BATTLE,ARCHER,3,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BATTLE,ARCHER,3,0,ATTACK_DUNGEON_HEART,0)

QUICK_OBJECTIVE(0,"You are surrounded by enemies. A powerful Dungeon Keeper to the East is in wait, and two lesser Keepers are allied against you two in the North and South. And to the West are Heroes attempting to attack you. It is pathetic how far they go to destroy you. Yet at the same time, complimenting. Teach them a lesson in agony with your magic.",PLAYER0)

IF(PLAYER_GOOD,AVATAR==1)
	IF(PLAYER_GOOD,TOTAL_CREATURES==1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BATTLE,-1,1)
	ENDIF
ENDIF

IF(PLAYER_GOOD,AVATAR==0)
	IF(PLAYER0,FLAG0==0)
		IF(PLAYER1,FLAG0==0)
			SET_FLAG(PLAYER_GOOD,FLAG0,1)
			QUICK_OBJECTIVE(1,"With the Hero Leader dead, the invasions should stop now. Your first task is complete... now for the annoying Dungeon Keepers...",PLAYER0)
		ENDIF
	ENDIF
	IF(PLAYER0,FLAG0==1)
		IF(PLAYER1,FLAG0==0)
			SET_FLAG(PLAYER_GOOD,FLAG0,1)
			QUICK_OBJECTIVE(2,"All enemies except for the more powerful Dungeon Keeper to the East lie dead. Time for him to join.",PLAYER0)
		ENDIF
	ENDIF
	IF(PLAYER0,FLAG0==0)
		IF(PLAYER1,FLAG0==1)
			SET_FLAG(PLAYER_GOOD,FLAG0,1)
			QUICK_OBJECTIVE(3,"Look above you. Now look below you. That's what garbage looks like, time to get rid of it.",PLAYER0)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER1,DUNGEON_DESTROYED==1)
	IF(PLAYER0,FLAG0==0)
		IF(PLAYER_GOOD,FLAG0==0)
			SET_FLAG(PLAYER1,FLAG0,1)
			QUICK_OBJECTIVE(4,"Ahh, the so called deadly Dungeon Keeper proves to be very deadly indeed. Now only the weak survive... this should be fun, my lord.",PLAYER0)
		ENDIF
	ENDIF
	IF(PLAYER0,FLAG0==0)
		IF(PLAYER_GOOD,FLAG0==1)
			SET_FLAG(PLAYER1,FLAG0,1)
			QUICK_OBJECTIVE(5,"Look above you. Now look below you. That's what garbage looks like, time to get rid of it.",PLAYER0)
		ENDIF
	ENDIF
	IF(PLAYER0,FLAG0==1)
		IF(PLAYER_GOOD,FLAG0==0)
			SET_FLAG(PLAYER1,FLAG0,1)
			QUICK_OBJECTIVE(6,"All Dungeon Keepers have been destroyed. There is nothing but humans left to kill. I suggest you enlarge your Hatchery. We don't want our food to go to waste... right?",PLAYER0)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER2,DUNGEON_DESTROYED==1)
	IF(PLAYER3,DUNGEON_DESTROYED==1)
		IF(PLAYER1,FLAG0==0)
			IF(PLAYER_GOOD,FLAG0==0)
				SET_FLAG(PLAYER0,FLAG0,1)
				QUICK_OBJECTIVE(7,"What's left for us for us to do? Torment some heroes? Dispose of an annoying Dungeon Keeper? Your choice.",PLAYER0)
			ENDIF
		ENDIF
	ENDIF
	IF(PLAYER3,DUNGEON_DESTROYED==1)
		IF(PLAYER1,FLAG0==1)
			IF(PLAYER_GOOD,FLAG0==0)
				SET_FLAG(PLAYER0,FLAG0,1)
				QUICK_OBJECTIVE(8,"All Dungeon Keepers have been destroyed. There is nothing but humans left to kill. I suggest you enlarge your Hatchery. We don't want our food to go to waste... right?",PLAYER0)
			ENDIF
		ENDIF
	ENDIF
	IF(PLAYER3,DUNGEON_DESTROYED==1)
		IF(PLAYER1,FLAG0==0)
			IF(PLAYER_GOOD,FLAG0==1)
				SET_FLAG(PLAYER0,FLAG0,1)
				QUICK_OBJECTIVE(9,"All enemies except for the more powerful Dungeon Keeper to the East lie dead. Time for him to join.",PLAYER0)
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0,FLAG0==1)
	IF(PLAYER1,FLAG0==1)
		IF(PLAYER_GOOD,FLAG0==1)
			QUICK_OBJECTIVE(10,"This land is now yours. Like all other possessions, we must play with it until we are bored, then capture something else that isn't ours. Evil never felt so good.",PLAYER0)
			WIN_GAME
		ENDIF
	ENDIF
ENDIF
