REM ANOTHER DUNGEON LEVEL2
REM R[W[g`Bꂽ́`

REM *** SETUP SECTION ***

SET_GENERATE_SPEED(400)

START_MONEY(PLAYER0, 5000)
START_MONEY(PLAYER1, 20000)

COMPUTER_PLAYER(PLAYER1, 1)
SET_COMPUTER_PROCESS(PLAYER1, "DIG TO CLOSE GOLD", 0, 15000, 500, 5, 300)

MAX_CREATURES(PLAYER0, 12)
MAX_CREATURES(PLAYER1, 27)

ADD_CREATURE_TO_POOL(FLY, 4)
ADD_CREATURE_TO_POOL(BUG, 8)
ADD_CREATURE_TO_POOL(SPIDER, 12)
ADD_CREATURE_TO_POOL(DEMONSPAWN, 10)
ADD_CREATURE_TO_POOL(DRAGON, 3)
ADD_CREATURE_TO_POOL(SORCEROR, 15)
ADD_CREATURE_TO_POOL(TROLL, 12)
ADD_CREATURE_TO_POOL(BILE_DEMON, 5)
ADD_CREATURE_TO_POOL(ORC, 8)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 12)
ADD_CREATURE_TO_POOL(VAMPIRE, 4)
ADD_CREATURE_TO_POOL(HELL_HOUND, 10)

CREATURE_AVAILABLE(ALL_PLAYERS, ORC, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, HELL_HOUND, 1, 1)
CREATURE_AVAILABLE(PLAYER0, SPIDER, 1, 1)
CREATURE_AVAILABLE(PLAYER0, DEMONSPAWN, 1, 1)
CREATURE_AVAILABLE(PLAYER0, TROLL, 1, 1)
CREATURE_AVAILABLE(PLAYER1, FLY, 1, 1)
CREATURE_AVAILABLE(PLAYER1, DARK_MISTRESS, 1, 1)
CREATURE_AVAILABLE(PLAYER1, VAMPIRE, 1, 1)
CREATURE_AVAILABLE(PLAYER1, BILE_DEMON, 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, GUARD_POST, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, BARRACKS, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, BRIDGE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TORTURE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TEMPLE, 1, 0)
ROOM_AVAILABLE(PLAYER1, WORKSHOP, 1, 0)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_POSSESS, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HOLD_AUDIENCE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HEAL_CREATURE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_PROTECT, 1, 0)
MAGIC_AVAILABLE(PLAYER1, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(PLAYER1, POWER_DISEASE, 1, 0)

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

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

SET_CREATURE_STRENGTH(KNIGHT, 150)
SET_CREATURE_HEALTH(WIZARD, 1400)

REM *** HERO PARTY ***

CREATE_PARTY(BOSS)
ADD_TO_PARTY(BOSS, WIZARD, 10, 2000, DEFEND_PARTY, 0)
ADD_TO_PARTY(BOSS, KNIGHT, 10, 4000, DEFEND_PARTY, 0)
ADD_TO_PARTY(BOSS, ARCHER, 10, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(BOSS, ARCHER, 10, 1000, DEFEND_PARTY, 0)

REM *** MAIN ***

DISPLAY_OBJECTIVE(9, PLAYER0)

SET_TIMER(PLAYER1, TIMER0)

IF(PLAYER0, FLAG0 != 2)
	IF(PLAYER1, TIMER0 >= 500)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER1, TIMER0)
		IF(PLAYER1, IMP == 0)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER1, IMP, PLAYER1, 1, 1, 0)
		ENDIF
		IF(PLAYER1, IMP >= 13)
			IF(PLAYER1, IMP < 18)
				NEXT_COMMAND_REUSABLE
				ADD_CREATURE_TO_LEVEL(PLAYER1, IMP, PLAYER1, 1, 1, 0)
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_GOOD, TIMER0 >= 1000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ARCHER, -1, 5, 7, 1000)
ENDIF

IF(PLAYER_GOOD, TIMER0 >= 2500)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, -1, 4, 8, 1000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, -1, 1)
	IF(PLAYER1, FLAG0 == 0)
		IF(PLAYER_GOOD, KNIGHT == 0)
			DISPLAY_OBJECTIVE(12, PLAYER0)
			MAGIC_AVAILABLE(PLAYER0, POWER_SIGHT, 1, 0)
			MAGIC_AVAILABLE(PLAYER0, POWER_SPEED, 1, 0)
			MAGIC_AVAILABLE(PLAYER0, POWER_CAVE_IN, 1, 0)
			MAGIC_AVAILABLE(PLAYER0, POWER_CALL_TO_ARMS, 1, 0)
			MAGIC_AVAILABLE(PLAYER0, POWER_DESTROY_WALLS, 1, 1)
			TUTORIAL_FLASH_BUTTON(32, -1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0, TOTAL_CREATURES >= 10)
	DISPLAY_INFORMATION(10, PLAYER0)
ENDIF

IF(PLAYER0, FLAG0 == 0)
	IF(PLAYER1, GRAVEYARD >= 1)
		SET_FLAG(PLAYER1, FLAG0, 1)
		ROOM_AVAILABLE(PLAYER1, GRAVEYARD, 1, 1)
		MAGIC_AVAILABLE(PLAYER1, POWER_SIGHT, 1, 1)
		MAGIC_AVAILABLE(PLAYER1, POWER_DESTROY_WALLS, 1, 1)
	ENDIF
ENDIF

IF(PLAYER0, ENTRANCE >= 10)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, SORCEROR, 1, 1)
	IF(PLAYER0, ENTRANCE >= 19)
		NEXT_COMMAND_REUSABLE
		CREATURE_AVAILABLE(PLAYER0, DARK_MISTRESS, 1, 1)
		IF(PLAYER0, ENTRANCE >= 28)
			NEXT_COMMAND_REUSABLE
			CREATURE_AVAILABLE(PLAYER0, DRAGON, 1, 1)
			NEXT_COMMAND_REUSABLE
			CREATURE_AVAILABLE(PLAYER0, VAMPIRE, 1, 1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0, ENTRANCE < 28)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, DRAGON, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, VAMPIRE, 1, 0)
	IF(PLAYER0, ENTRANCE < 19)
		NEXT_COMMAND_REUSABLE
		CREATURE_AVAILABLE(PLAYER0, DARK_MISTRESS, 1, 0)
		IF(PLAYER0, ENTRANCE < 10)
			NEXT_COMMAND_REUSABLE
			CREATURE_AVAILABLE(PLAYER0, SORCEROR, 1, 0)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER1, FLAG0 == 0)
	IF_ACTION_POINT(1, PLAYER0)
		SET_FLAG(PLAYER0, FLAG0, 2)
	ENDIF
	IF_ACTION_POINT(2, PLAYER0)
		SET_FLAG(PLAYER0, FLAG0, 2)
	ENDIF
ENDIF

IF(PLAYER0, FLAG0 == 2)
	DISPLAY_OBJECTIVE(13, PLAYER0)
	MAGIC_AVAILABLE(PLAYER0, POWER_OBEY, 1, 1)
	MAGIC_AVAILABLE(PLAYER0, POWER_CONCEAL, 1, 1)
	MAGIC_AVAILABLE(PLAYER0, POWER_CHICKEN, 1, 1)
	MAGIC_AVAILABLE(PLAYER0, POWER_DISEASE, 1, 1)
	MAGIC_AVAILABLE(PLAYER0, POWER_ARMAGEDDON, 1 ,1)
	ROOM_AVAILABLE(PLAYER0, WORKSHOP, 1, 1)
	ROOM_AVAILABLE(PLAYER0, BARRACKS, 1, 1)
	ROOM_AVAILABLE(PLAYER0, PRISON, 1, 1)
	ROOM_AVAILABLE(PLAYER0, GRAVEYARD, 1, 1)
	ROOM_AVAILABLE(PLAYER0, SCAVENGER, 1, 1)
	TRAP_AVAILABLE(PLAYER0, ALARM, 1, 0)
	TRAP_AVAILABLE(PLAYER0, LIGHTNING, 1, 0)
	TRAP_AVAILABLE(PLAYER0, BOULDER, 1, 0)
	TRAP_AVAILABLE(PLAYER0, WORD_OF_POWER, 1, 0)
	DOOR_AVAILABLE(PLAYER0, STEEL, 1, 0)
	DOOR_AVAILABLE(PLAYER0, MAGIC, 1, 0)
ENDIF

IF_ACTION_POINT(3, PLAYER0)
	SET_TIMER(PLAYER_GOOD, TIMER0)
	IF(PLAYER1, FLAG0 == 0)
		DISPLAY_INFORMATION(11, PLAYER0)
		SET_FLAG(PLAYER0, FLAG0, 1)
	ENDIF
	IF(PLAYER1, FLAG0 == 1)
		DISPLAY_INFORMATION(14, PLAYER0)
	ENDIF
ENDIF

IF(PLAYER1, DUNGEON_DESTROYED == 1)
	DISPLAY_OBJECTIVE(15, PLAYER0)
	WIN_GAME
ENDIF
