REM ANOTHER DUNGEON LEVEL9
REM [ubVEbh`҉΂̖{`

REM *** SETUP_SECTION ***

SET_GENERATE_SPEED(450)

MAX_CREATURES(PLAYER0, 20)
MAX_CREATURES(PLAYER2, 25)

START_MONEY(PLAYER0, 10000)
START_MONEY(PLAYER2, 50000)

COMPUTER_PLAYER(PLAYER2, 2)
SET_COMPUTER_PROCESS(PLAYER2, "DIG TO CLOSE GOLD", 0, 20000, 1500, 8, 20)

ADD_CREATURE_TO_POOL(FLY, 5)
ADD_CREATURE_TO_POOL(BUG, 20)
ADD_CREATURE_TO_POOL(SORCEROR, 30)
ADD_CREATURE_TO_POOL(DEMONSPAWN, 20)
ADD_CREATURE_TO_POOL(DRAGON, 30)
ADD_CREATURE_TO_POOL(BILE_DEMON, 30)
ADD_CREATURE_TO_POOL(SPIDER, 20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 30)
ADD_CREATURE_TO_POOL(GHOST, 20)
ADD_CREATURE_TO_POOL(VAMPIRE, 30)
ADD_CREATURE_TO_POOL(ORC, 30)
ADD_CREATURE_TO_POOL(TROLL, 30)
ADD_CREATURE_TO_POOL(TENTACLE, 20)
ADD_CREATURE_TO_POOL(HELL_HOUND, 20)
ADD_CREATURE_TO_POOL(HORNY, 3)

CREATURE_AVAILABLE(PLAYER0, TENTACLE, 1, 1)
CREATURE_AVAILABLE(PLAYER0, HELL_HOUND, 1, 1)
CREATURE_AVAILABLE(PLAYER2, ORC, 1, 1)
CREATURE_AVAILABLE(PLAYER2, TROLL, 1, 1)
CREATURE_AVAILABLE(PLAYER2, SORCEROR, 1, 1)
CREATURE_AVAILABLE(PLAYER2, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(PLAYER2, DARK_MISTRESS, 1, 1)
CREATURE_AVAILABLE(PLAYER2, SPIDER, 1, 1)
CREATURE_AVAILABLE(PLAYER2, VAMPIRE, 1, 1)

ROOM_AVAILABLE(ALL_PLAYERS, LAIR, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, GARDEN, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, BARRACKS, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, GUARD_POST, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, TORTURE, 1, 1)
ROOM_AVAILABLE(PLAYER0, TREASURE, 1, 1)
ROOM_AVAILABLE(PLAYER2, RESEARCH, 1, 1)
ROOM_AVAILABLE(PLAYER2, TRAINING, 1, 1)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CALL_TO_ARMS, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_PROTECT, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(PLAYER0, POWER_SIGHT, 1, 1)
MAGIC_AVAILABLE(PLAYER0, POWER_CHICKEN, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_ARMAGEDDON, 1, 0)

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

DOOR_AVAILABLE(PLAYER0, WOOD, 1, 0)
DOOR_AVAILABLE(PLAYER2, STEEL, 1, 0)
DOOR_AVAILABLE(PLAYER2, MAGIC, 1, 0)

REM *** HERO PARTY ***

CREATE_PARTY(ATTACK1_1)
ADD_TO_PARTY(ATTACK1_1, SAMURAI, 8, 2000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK1_1, GIANT, 8, 2000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK1_1, ARCHER, 8, 2000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK1_1, DWARFA, 8, 2000, ATTACK_ROOMS, 0)

CREATE_PARTY(ATTACK1_2)
ADD_TO_PARTY(ATTACK1_2, SAMURAI, 8, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK1_2, GIANT, 8, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK1_2, ARCHER, 8, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK1_2, DWARFA, 8, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(ATTACK2_1)
ADD_TO_PARTY(ATTACK2_1, THIEF, 8, 2000, ATTACK_ROOMS, 0)
ADD_TO_PARTY(ATTACK2_1, MONK, 8, 2000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK2_1, BARBARIAN, 8, 2000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK2_1, WITCH, 8, 2000, ATTACK_ENEMIES, 0)

CREATE_PARTY(ATTACK2_2)
ADD_TO_PARTY(ATTACK2_2, THIEF, 8, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK2_2, MONK, 8, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK2_2, BARBARIAN, 8, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK2_2, WITCH, 8, 0, ATTACK_ENEMIES, 0)

REM *** MAIN ***

IF(PLAYER0, GAME_TURN >= 1000)
	DISPLAY_INFORMATION(63, PLAYER0)
ENDIF

IF(PLAYER0, GAME_TURN >= 2500)
	IF(PLAYER0, LAIR >= 1)
		IF(PLAYER0, GARDEN >= 1)
			SET_TIMER(PLAYER0, TIMER0)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0, FLAG6 == 0)
	rem H
	IF(PLAYER2, TROLL >= 1)
		SET_FLAG(PLAYER0, FLAG3, 1)
		SET_FLAG(PLAYER0, FLAG6, 1)
	ENDIF
	rem HA퓬
	IF(PLAYER2, BILE_DEMON >= 1)
		SET_FLAG(PLAYER0, FLAG3, 1)
		SET_FLAG(PLAYER0, FLAG5, 1)
		SET_FLAG(PLAYER0, FLAG6, 3)
	ENDIF
	rem 퓬
	IF(PLAYER2, ORC >= 1)
		SET_FLAG(PLAYER0, FLAG5, 1)
		SET_FLAG(PLAYER0, FLAG6, 1)
	ENDIF
	rem 퓬Ap
	IF(PLAYER2, DARK_MISTRESS >= 1)
		SET_FLAG(PLAYER0, FLAG4, 1)
		SET_FLAG(PLAYER0, FLAG5, 1)
		SET_FLAG(PLAYER0, FLAG6, 3)
	ENDIF
	rem p
	IF(PLAYER2, SORCEROR >= 1)
		SET_FLAG(PLAYER0, FLAG4, 1)
		SET_FLAG(PLAYER0, FLAG6, 1)
	ENDIF
	rem pAH
	IF(PLAYER2, VAMPIRE >= 1)
		SET_FLAG(PLAYER0, FLAG3, 1)
		SET_FLAG(PLAYER0, FLAG4, 1)
		SET_FLAG(PLAYER0, FLAG6, 3)
	ENDIF
	rem ̑
	IF(PLAYER2, SPIDER >= 1)
	    SET_FLAG(PLAYER0, FLAG6, 2)
	ENDIF
ENDIF

IF(PLAYER0, TIMER0 >= 2500)
	DISPLAY_INFORMATION(64, PLAYER0)
	CREATURE_AVAILABLE(PLAYER0, FLY, 1, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER2, DARK_MISTRESS, 1, 3, 6, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER2, VAMPIRE, 1, 1, 7, 0)
	rem H{
	IF(PLAYER0, FLAG3 == 1)
		CREATURE_AVAILABLE(PLAYER0, TROLL, 1, 1)
		CREATURE_AVAILABLE(PLAYER0, BUG, 1, 1)
		ROOM_AVAILABLE(PLAYER0, WORKSHOP, 1, 1)
		TRAP_AVAILABLE(PLAYER0, LIGHTNING, 1, 0)
		TRAP_AVAILABLE(PLAYER0, LAVA, 1, 0)
		DOOR_AVAILABLE(PLAYER0, BRACED, 1, 0)
		IF(PLAYER0, FLAG6 == 1)
			CREATURE_AVAILABLE(PLAYER0, BILE_DEMON, 1, 1)
			ROOM_AVAILABLE(PLAYER0, TEMPLE, 1, 1)
			TRAP_AVAILABLE(PLAYER0, BOULDER, 1, 0)
			DOOR_AVAILABLE(PLAYER0, STEEL, 1, 0)
		ENDIF
	ENDIF
	rem p{
	IF(PLAYER0, FLAG4 == 1)
		CREATURE_AVAILABLE(PLAYER0, SORCEROR, 1, 1)
		CREATURE_AVAILABLE(PLAYER0, GHOST, 1, 1)
		ROOM_AVAILABLE(PLAYER0, RESEARCH, 1, 1)
		MAGIC_AVAILABLE(PLAYER0, POWER_OBEY, 1, 0)
		MAGIC_AVAILABLE(PLAYER0, POWER_HEAL_CREATURE, 1, 0)
		MAGIC_AVAILABLE(PLAYER0, POWER_CONCEAL, 1, 0)
		MAGIC_AVAILABLE(PLAYER0, POWER_DISEASE, 1, 0)
		IF(PLAYER0, FLAG6 == 1)
			CREATURE_AVAILABLE(PLAYER0, DRAGON, 1, 1)
			ROOM_AVAILABLE(PLAYER0, SCAVENGER, 1, 1)
			MAGIC_AVAILABLE(PLAYER0, POWER_LIGHTNING, 1, 0)
			MAGIC_AVAILABLE(PLAYER0, POWER_CAVE_IN, 1, 0)
		ENDIF
	ENDIF
	rem 퓬{
	IF(PLAYER0, FLAG5 == 1)
		CREATURE_AVAILABLE(PLAYER0, ORC, 1, 1)
		CREATURE_AVAILABLE(PLAYER0, DEMONSPAWN, 1, 1)
		ROOM_AVAILABLE(PLAYER0, TRAINING, 1, 1)
		IF(PLAYER0, FLAG6 == 1)
			CREATURE_AVAILABLE(PLAYER0, SPIDER, 1, 1)
			CREATURE_AVAILABLE(PLAYER0, DARK_MISTRESS, 1, 1)
			ROOM_AVAILABLE(PLAYER0, GRAVEYARD, 1, 1)
		ENDIF
	ENDIF
	rem ̑
	IF(PLAYER0, FLAG6 == 2)
		CREATURE_AVAILABLE(PLAYER0, BUG, 1, 1)
		CREATURE_AVAILABLE(PLAYER0, GHOST, 1, 1)
		CREATURE_AVAILABLE(PLAYER0, HORNY, 1, 1)
		ROOM_AVAILABLE(PLAYER0, PRISON, 1, 1)
		ROOM_AVAILABLE(PLAYER0, TEMPLE, 1, 1)
	ENDIF
ENDIF

IF_ACTION_POINT(5, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG2, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DRAGON, 8, 6, 5, 2000)
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 0)
	IF(PLAYER2, DUNGEON_DESTROYED == 1)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DRAGON, 8, 5, 10, 4000)
	ENDIF
	IF_ACTION_POINT(2, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 2, 4, 5, 400)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, WITCH, -2, 4, 5, 0)
	ENDIF
	IF_ACTION_POINT(3, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SAMURAI, -2, 4, 7, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SAMURAI, -4, 4, 6, 800)
	ENDIF
	IF_ACTION_POINT(4, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, WIZARD, -1, 4, 6, 600)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, -1, 4, 6, 600)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, MONK, -2, 5, 7, 0)
	ENDIF
	IF_ACTION_POINT(6, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 6, 5, 4, 200)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, MONK, -2, 4, 8, 0)
	ENDIF
	IF_ACTION_POINT(7, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DRAGON, 7, 1, 8, 2000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 7, 4, 6, 0)
	ENDIF
	IF_ACTION_POINT(9, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 9, 4, 5, 400)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ARCHER, -2, 5, 7, 0)
	ENDIF
	IF_ACTION_POINT(10, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, WIZARD, 10, 5, 7, 800)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, -2, 4, 4, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, MONK, -4, 5, 7, 0)
	ENDIF
	IF_ACTION_POINT(11, PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK1_1, -4, 2)
	ENDIF
	IF_ACTION_POINT(12, PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK2_1, -1, 2)
	ENDIF
	IF_ACTION_POINT(13, PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK2_2, -3, 2)
	ENDIF
	IF_ACTION_POINT(14, PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK1_2, -2, 2)
	ENDIF
ENDIF

SET_TIMER(PLAYER2, TIMER0)
IF(PLAYER2, DUNGEON_DESTROYED == 0)
	IF(PLAYER2, TIMER0 >= 350)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER2, TIMER0)
		IF(PLAYER2, IMP < 13)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER2, IMP, PLAYER2, 1, 1, 0)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER2, DUNGEON_DESTROYED == 1)
	DISPLAY_OBJECTIVE(66, PLAYER0)
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
	DISPLAY_OBJECTIVE(65, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG2, 1)
	MAGIC_AVAILABLE(ALL_PLAYERS, POWER_DESTROY_WALLS, 1, 1)
	IF(PLAYER2, DUNGEON_DESTROYED == 0)
		TUTORIAL_FLASH_BUTTON(32, -1)
	ENDIF
ENDIF

IF(PLAYER_GOOD, FLAG2 == 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, KNIGHT, 5, 1, 10, 3000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SAMURAI, 5, 2, 5, 250)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 5, 2, 5, 250)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, 5, 2, 5, 250)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, WITCH, 5, 2, 5, 250)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, -1, 2, 10, 1000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 2, 10, 1000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ARCHER, -3, 2, 10, 1000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, THIEF, -4, 2, 10, 1000)
ENDIF

IF(PLAYER0, ENTRANCE >= 10)
	MAX_CREATURES(PLAYER0, 30)
ENDIF

IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
	IF(PLAYER_GOOD, KNIGHT == 0)
		WIN_GAME
	ENDIF
ENDIF

DISPLAY_OBJECTIVE(62, PLAYER0)
