REM ANOTHER DUNGEON LEVEL10
REM lo[O`⍓Ȃҁ`

REM *** SETUP SECTION ***

SET_GENERATE_SPEED(500)

START_MONEY(PLAYER0, 12000)

MAX_CREATURES(PLAYER0, 24)

ADD_CREATURE_TO_POOL(BUG, 15)
ADD_CREATURE_TO_POOL(DEMONSPAWN, 15)
ADD_CREATURE_TO_POOL(DRAGON, 20)
ADD_CREATURE_TO_POOL(TROLL, 20)
ADD_CREATURE_TO_POOL(BILE_DEMON, 20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 10)
ADD_CREATURE_TO_POOL(ORC, 10)
ADD_CREATURE_TO_POOL(TENTACLE, 15)
ADD_CREATURE_TO_POOL(HELL_HOUND, 15)
ADD_CREATURE_TO_POOL(MONK, 10)

CREATURE_AVAILABLE(ALL_PLAYERS, BUG, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, DEMONSPAWN, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, TROLL, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, DRAGON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, TENTACLE, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, ORC, 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, BARRACKS, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, SCAVENGER, 1, 0)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_OBEY, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CONCEAL, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CHICKEN, 1, 0)

TRAP_AVAILABLE(ALL_PLAYERS, POISON_GAS, 1, 0)

DOOR_AVAILABLE(ALL_PLAYERS, STEEL, 1, 0)

SET_CREATURE_HEALTH(FLY, 600)
SET_CREATURE_HEALTH(KNIGHT, 1600)
SET_CREATURE_STRENGTH(HELL_HOUND, 80)
SET_CREATURE_STRENGTH(KNIGHT, 110)

REM *** HERO PARTY ***

CREATE_PARTY(HERO1)
ADD_TO_PARTY(HERO1, ARCHER, 3, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HERO1, ARCHER, 3, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HERO1, ARCHER, 3, 500, ATTACK_ENEMIES, 0)

CREATE_PARTY(HERO2)
ADD_TO_PARTY(HERO2, SAMURAI, 3, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HERO2, SAMURAI, 3, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HERO2, SAMURAI, 3, 500, ATTACK_ENEMIES, 0)

CREATE_PARTY(HERO3)
ADD_TO_PARTY(HERO3, WIZARD, 3, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HERO3, WIZARD, 3, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HERO3, WIZARD, 3, 500, ATTACK_ENEMIES, 0)

CREATE_PARTY(GUARD1)
ADD_TO_PARTY(GUARD1, DWARFA, 8, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD1, MONK, 10, 2000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD1, DWARFA, 8, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD1, DWARFA, 8, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD1, DWARFA, 8, 1000, DEFEND_PARTY, 0)

CREATE_PARTY(GUARD2)
ADD_TO_PARTY(GUARD2, GIANT, 8, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD2, WITCH, 10, 2000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD2, WIZARD, 8, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD2, GIANT, 8, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(GUARD2, GIANT, 8, 1000, DEFEND_PARTY, 0)

CREATE_PARTY(BOSS)
ADD_TO_PARTY(BOSS, GIANT, 10, 1000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, KNIGHT, 10, 4000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, GIANT, 10, 1000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, SAMURAI, 10, 1000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, WIZARD, 10, 1000, DEFEND_PARTY, 0)
ADD_TO_PARTY(BOSS, WIZARD, 10, 1000, DEFEND_PARTY, 0)

CREATE_PARTY(ST_GOLD)
ADD_TO_PARTY(ST_GOLD, GHOST, 6, 0, STEAL_GOLD, 0)

CREATE_PARTY(VAMP1)
ADD_TO_PARTY(VAMP1, GHOST, 8, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP1, HELL_HOUND, 8, 1000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP1, GHOST, 8, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP1, GHOST, 8, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(VAMP2)
ADD_TO_PARTY(VAMP2, HELL_HOUND, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP2, VAMPIRE, 10, 3000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP2, HELL_HOUND, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP2, HELL_HOUND, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP2, HELL_HOUND, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(VAMP2, HELL_HOUND, 10, 0, ATTACK_ENEMIES, 0)

REM *** MAIN ***

DISPLAY_OBJECTIVE(68, PLAYER0)

IF(PLAYER_GOOD, GRAVEYARD <= 20)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, 18, 4, 6, 0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP1, 24, 2)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 27, 3, 6, 0)
ENDIF

IF(PLAYER_GOOD, GRAVEYARD == 0)
	DISPLAY_OBJECTIVE(74, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG0, 2)
	SET_TIMER(PLAYER_GOOD, TIMER2)
ENDIF

IF_ACTION_POINT(2, PLAYER0)
	DISPLAY_INFORMATION(70, PLAYER0)
ENDIF

IF_ACTION_POINT(3, PLAYER0)
	DISPLAY_OBJECTIVE(72, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 5, 2, 5, 0)
	SET_CREATURE_STRENGTH(MONK, 250)
	SET_FLAG(PLAYER_GOOD, FLAG0, 1)
	SET_TIMER(PLAYER0, TIMER0)
	SET_TIMER(PLAYER_GOOD, TIMER0)
ENDIF

IF(PLAYER_GOOD, FLAG0 == 0)
	IF(PLAYER_GOOD, GAME_TURN >= 10000)
		DISPLAY_INFORMATION(69, PLAYER0)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, HERO1, 6, DUNGEON_HEART, PLAYER0, 1, 100)
	ENDIF
	IF(PLAYER_GOOD, GAME_TURN >= 14200)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, HERO2, 7, DUNGEON_HEART, PLAYER0, 2, 100)
	ENDIF
	IF(PLAYER_GOOD, GAME_TURN >= 21000)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, HERO3, 8, DUNGEON_HEART, PLAYER0, 3, 100)
	ENDIF
	IF_ACTION_POINT(1, PLAYER0)
		IF(PLAYER_GOOD, TOTAL_CREATURES >= 40)
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, -1, 6, 8, 0)
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, -1, 4, 8, 0)
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -1, 6, 8, 0)
		ENDIF
	ENDIF
	IF_ACTION_POINT(7, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, 7, 4, 10, 1000)
	ENDIF
	IF_ACTION_POINT(9, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 10, 4, 5, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 11, 4, 5, 0)
	ENDIF
	IF_ACTION_POINT(12, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SAMURAI, 13, 8, 5, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, THIEF, 15, 3, 10, 4000)
	ENDIF
	IF_ACTION_POINT(15, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, WIZARD, 15, 4, 10, 1000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, THIEF, 25, 3, 10, 4000)
	ENDIF
	IF_ACTION_POINT(16, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SAMURAI, 17, 4, 7, 500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ARCHER, 17, 6, 6, 300)
	ENDIF
	IF_ACTION_POINT(18, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, MONK, 18, 4, 10, 1000)
	ENDIF
	IF_ACTION_POINT(27, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, THIEF, 27, 3, 10, 4000)
	ENDIF
ENDIF

IF(PLAYER_GOOD, FLAG0 == 1)
	IF_ACTION_POINT(4, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 5, 4, 5, 0)
	ENDIF
	IF_ACTION_POINT(19, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 20, 1, 9, 1000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, 20, 6, 5, 0)
	ENDIF
	IF_ACTION_POINT(22, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 22, 3, 8, 500)
	ENDIF
	IF_ACTION_POINT(23, PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP1, 23, 3)
	ENDIF
	IF(PLAYER0, MONEY > 140000)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER_GOOD, FLAG1, 1)
	ENDIF
	IF(PLAYER0, MONEY < 80000)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER_GOOD, FLAG1, 0)
	ENDIF
	IF(PLAYER_GOOD, TIMER0 >= 2800)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 21, 2, 5, 0)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GHOST, 14, 2, 8, 0)
		IF(PLAYER_GOOD, FLAG1 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FLY, 14, 3, 6, 0)
		ENDIF
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER_GOOD, TIMER0)
	ENDIF
	IF(PLAYER_GOOD, TIMER1 >= 6000)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GHOST, 22, 2, 3, 0)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GHOST, 22, 1, 6, 0)
		IF(PLAYER_GOOD, FLAG1 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 21, 1, 7, 0)
		ENDIF
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER_GOOD, TIMER1)
	ENDIF
	IF(PLAYER0, TIMER0 >= 10000)
		DISPLAY_OBJECTIVE(73, PLAYER0)
	ENDIF
	IF(PLAYER0, TIMER0 >= 60000)
		DISPLAY_INFORMATION(78, PLAYER0)
	ENDIF
	IF(PLAYER0, TIMER0 >= 100000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 21, 4, 9, 0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP1, 24, 3)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 25, 8, 4, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FLY, 27, 8, 10, 0)
	ENDIF
ENDIF

IF(PLAYER_GOOD, FLAG0 >= 1)
	IF(PLAYER0, WIZARD >= 1)
		DISPLAY_INFORMATION(76, PLAYER0)
		TUTORIAL_FLASH_BUTTON(3, -1)
		MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SPEED, 1, 0)
		MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HEAL_CREATURE, 1, 0)
		MAGIC_AVAILABLE(ALL_PLAYERS, POWER_DESTROY_WALLS, 1, 0)
		SET_TIMER(PLAYER_GOOD, TIMER1)
	ENDIF
	SET_TIMER(PLAYER0, TIMER1)
	IF(PLAYER0, MONK >= 1)
		IF(PLAYER0, TIMER1 >= 5000)
			DISPLAY_INFORMATION(77, PLAYER0)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_GOOD, TIMER2 >= 2000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FLY, 7, 6, 10, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FLY, 20, 6, 10, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FLY, 18, 6, 10, 0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP1, 24, 2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP1, 26, 2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP1, 8, 2)
ENDIF

IF(PLAYER_GOOD, TIMER2 >= 2800)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 25, 5, 7, 800)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 15, 10, 4, 300)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, VAMP2, 2, 1)
	IF(PLAYER_GOOD, VAMPIRE == 0)
		DISPLAY_OBJECTIVE(75, PLAYER0)
		SET_CREATURE_STRENGTH(MONK, 60)
		SET_TIMER(PLAYER_GOOD, TIMER3)
		SET_FLAG(PLAYER_GOOD, FLAG0, 3)
	ENDIF
ENDIF

IF(PLAYER_GOOD, TIMER3 >= 4000)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, -1, 8, 10, 500)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, ARCHER, -1, 8, 10, 500)
ENDIF

IF(PLAYER_GOOD, TIMER3 >= 4400)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, -1, 1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, GUARD1, -1, 1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, GUARD2, -1, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SAMURAI, -1, 4, 8, 500)
	IF(PLAYER_GOOD, KNIGHT == 0)
		DISPLAY_OBJECTIVE(79, PLAYER0)
		WIN_GAME
	ENDIF
ENDIF

IF(PLAYER0, DWARFA >= 1)
	DISPLAY_INFORMATION(71, PLAYER0)
ENDIF

IF(PLAYER0, ENTRANCE >= 10)
	MAX_CREATURES(PLAYER0, 32)
	CREATURE_AVAILABLE(ALL_PLAYERS, HELL_HOUND, 1, 1)
ENDIF
