REM ANOTHER DUNGEON LEVEL20
REM XJCo[hg`T^䂪ׂ搂`

REM *** SETUP SECTION ***

SET_GENERATE_SPEED(600)

ALLY_PLAYERS(PLAYER1, PLAYER_GOOD)

START_MONEY(ALL_PLAYERS, 30000)

COMPUTER_PLAYER(PLAYER1, 0)

MAX_CREATURES(PLAYER1, 70)

ADD_CREATURE_TO_POOL(BUG, 30)
ADD_CREATURE_TO_POOL(SPIDER, 30)
ADD_CREATURE_TO_POOL(BILE_DEMON, 30)
ADD_CREATURE_TO_POOL(TROLL, 30)
ADD_CREATURE_TO_POOL(TENTACLE, 30)
ADD_CREATURE_TO_POOL(HELL_HOUND, 30)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 30)
ADD_CREATURE_TO_POOL(DRAGON, 30)
ADD_CREATURE_TO_POOL(SKELETON, 20)
ADD_CREATURE_TO_POOL(ORC, 30)
ADD_CREATURE_TO_POOL(SORCEROR, 30)
ADD_CREATURE_TO_POOL(HORNY, 5)

CREATURE_AVAILABLE(ALL_PLAYERS, DRAGON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, HELL_HOUND, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, TROLL, 1, 1)
CREATURE_AVAILABLE(PLAYER0, BUG, 1, 1)
CREATURE_AVAILABLE(PLAYER0, SPIDER, 1, 1)
CREATURE_AVAILABLE(PLAYER0, SORCEROR, 1, 1)
CREATURE_AVAILABLE(PLAYER0, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(PLAYER0, DARK_MISTRESS, 1, 1)
CREATURE_AVAILABLE(PLAYER0, ORC, 1, 1)
CREATURE_AVAILABLE(PLAYER0, TENTACLE, 1, 1)

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, RESEARCH, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, TRAINING, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, WORKSHOP, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TORTURE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, GRAVEYARD, 1, 0)
ROOM_AVAILABLE(PLAYER0, BARRACKS, 1, 0)
ROOM_AVAILABLE(PLAYER1, PRISON, 1, 0)
ROOM_AVAILABLE(PLAYER1, SCAVENGER, 1, 0)

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

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

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

REM *** HERO PARTY ***

CREATE_PARTY(BOSS)
ADD_TO_PARTY(BOSS, SKELETON, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, AVATAR, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, SKELETON, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, SKELETON, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, GHOST, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, GHOST, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, GHOST, 10, 0, ATTACK_ENEMIES, 0)

SET_CREATURE_STRENGTH(AVATAR, 255)

REM *** MAIN ***

IF(PLAYER1, TOTAL_CREATURES > 50)
	DISPLAY_INFORMATION(158, PLAYER0)
	ROOM_AVAILABLE(PLAYER1, BRIDGE, 1, 1)
rem	MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 1, 1)
	SET_FLAG(PLAYER1, FLAG1, 1)
ENDIF

IF(PLAYER1, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER1, TIMER0)
	SET_TIMER(PLAYER1, TIMER1)
	SET_TIMER(PLAYER1, TIMER2)
	SET_TIMER(PLAYER1, TIMER3)
	IF(PLAYER1, IMP < 20)
		IF(PLAYER1, TIMER0 > 400)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER1, IMP, PLAYER1, 1, 10, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER1, TIMER0)
		ENDIF
	ENDIF
	IF(PLAYER1, TOTAL_CREATURES < 50)
		IF(PLAYER1, TOTAL_CREATURES < 20)
			IF(PLAYER1, FLAG1 == 1)
				SET_FLAG(PLAYER1, FLAG0, 1)
			ENDIF
			IF(PLAYER1, FLAG0 == 0)
				IF(PLAYER1, TIMER1 >= 1500)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, SPIDER, PLAYER1, 1, 6, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER1)
				ENDIF
				IF(PLAYER1, TIMER2 >= 1700)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, SORCEROR, PLAYER1, 1, 4, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER2)
				ENDIF
				IF(PLAYER1, TIMER3 >= 2000)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, DARK_MISTRESS, PLAYER1, 1, 4, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER3)
				ENDIF
			ENDIF
			IF(PLAYER1, FLAG0 == 1)
				IF(PLAYER1, TIMER1 >= 1300)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, ORC, PLAYER1, 1, 5, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER1)
				ENDIF
				IF(PLAYER1, TIMER2 >= 1400)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, DRAGON, PLAYER1, 1, 5, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER2)
				ENDIF
				IF(PLAYER1, TIMER3 >= 1900)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, SPIDER, PLAYER1, 1, 9, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER3)
				ENDIF
			ENDIF
		ENDIF
		IF(PLAYER1, TOTAL_CREATURES >= 20)
			IF(PLAYER1, FLAG0 == 0)
				IF(PLAYER1, TIMER1 >= 1600)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, BILE_DEMON, PLAYER1, 1, 3, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER1)
				ENDIF
				IF(PLAYER1, TIMER2 >= 1700)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, SPIDER, PLAYER1, 1, 4, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER2)
				ENDIF
				IF(PLAYER1, TIMER3 >= 2400)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, ORC, PLAYER1, 1, 1, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER3)
				ENDIF
			ENDIF
			IF(PLAYER1, FLAG0 == 1)
				IF(PLAYER1, TIMER1 >= 1100)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, HELL_HOUND, PLAYER1, 1, 4, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER1)
				ENDIF
				IF(PLAYER1, TIMER2 >= 1300)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, SKELETON, PLAYER1, 1, 6, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER2)
				ENDIF
				IF(PLAYER1, TIMER3 >= 1800)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER1, DARK_MISTRESS, PLAYER1, 1, 4, 0)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER1, TIMER3)
				ENDIF
			ENDIF
		ENDIF
	ENDIF
	IF(PLAYER1, GAME_TURN >= 70000)
		SET_FLAG(PLAYER1, FLAG0, 1)
	ENDIF
	IF(PLAYER1, FLAG0 == 1)
		DISPLAY_INFORMATION(159, PLAYER0)
rem		ROOM_AVAILABLE(PLAYER1, BRIDGE, 1, 1)
		MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 1, 1)
		ADD_CREATURE_TO_LEVEL(PLAYER1, IMP, PLAYER1, 10, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER1, ORC, PLAYER1, 4, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER1, DARK_MISTRESS, PLAYER1, 4, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER1, DRAGON, PLAYER1, 4, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER1, SKELETON, PLAYER1, 4, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER1, HELL_HOUND, PLAYER1, 4, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER1, VAMPIRE, PLAYER1, 2, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, 1, 6, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, 2, 6, 10, 0)
		SET_TIMER(PLAYER_GOOD, TIMER0)
	ENDIF
	IF(PLAYER_GOOD, AVATAR == 0)
		IF(PLAYER_GOOD, TIMER0 > 11000)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BILE_DEMON, 1, 3, 10, 0)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BILE_DEMON, 2, 3, 10, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD, TIMER0)
		ENDIF
	ENDIF
	IF(PLAYER1, BATTLES_LOST > 120)
		ADD_CREATURE_TO_LEVEL(PLAYER1, HELL_HOUND, PLAYER1, 6, 7, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ORC, 1, 4, 9, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ORC, 2, 4, 9, 0)
	ENDIF
	IF(PLAYER1, BATTLES_LOST > 210)
		ADD_CREATURE_TO_LEVEL(PLAYER1, HELL_HOUND, PLAYER1, 6, 7, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DARK_MISTRESS, 1, 4, 9, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DARK_MISTRESS, 2, 4, 9, 0)
	ENDIF
ENDIF

IF(PLAYER1, DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER1, FLAG5, 1)
ENDIF

IF(PLAYER1, CREATURES_SCAVENGED_LOST > 15)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HORNY, 1, 6, 9, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HORNY, 2, 6, 9, 0)
ENDIF

IF(PLAYER1, CREATURES_SCAVENGED_LOST > 30)
	SET_FLAG(PLAYER1, FLAG5, 1)
ENDIF

IF(PLAYER1, FLAG5 >= 1)
	DISPLAY_OBJECTIVE(160, PLAYER0)
	SET_FLAG(PLAYER1, FLAG0, 2)
	SET_TIMER(PLAYER_GOOD, TIMER1)
	IF(PLAYER_GOOD, TIMER1 > 500)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, 1, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, 2, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, 3, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, 4, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, 5, 1)
		IF(PLAYER_GOOD, AVATAR == 0)
			IF(PLAYER1, DUNGEON_DESTROYED == 1)
				DISPLAY_OBJECTIVE(165, PLAYER0)
				WIN_GAME
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0, BATTLES_LOST > 20)
	SET_FLAG(PLAYER0, FLAG0, 1)
ENDIF

IF(PLAYER0, CREATURES_SCAVENGED_LOST > 20)
	SET_FLAG(PLAYER0, FLAG0, 1)
ENDIF

IF(PLAYER0, FLAG0 == 1)
	IF(PLAYER0, TOTAL_CREATURES < 9)
		DISPLAY_INFORMATION(164, PLAYER0)
		MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 1, 1)
	ENDIF
ENDIF

IF(PLAYER0, ENTRANCE <= 9)
	NEXT_COMMAND_REUSABLE
	MAX_CREATURES(PLAYER0, 20)
ENDIF

IF(PLAYER0, ENTRANCE > 9)
	IF(PLAYER0, ENTRANCE <= 18)
		NEXT_COMMAND_REUSABLE
		MAX_CREATURES(PLAYER0, 35)
	ENDIF
ENDIF

IF(PLAYER0, ENTRANCE > 18)
	NEXT_COMMAND_REUSABLE
	MAX_CREATURES(PLAYER0, 50)
ENDIF

IF(PLAYER0, ENTRANCE <= 27)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, HORNY, 1, 0)
ENDIF

IF(PLAYER0, ENTRANCE > 27)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, HORNY, 1, 1)
ENDIF

DISPLAY_OBJECTIVE(157, PLAYER0)
