REM ANOTHER DUNGEON LEVEL3
REM EH[^[h[EEH[`d̒nԁ`

REM *** SETUP_SECTION ***

SET_GENERATE_SPEED(500)

MAX_CREATURES(PLAYER0, 18)

START_MONEY(PLAYER0, 7500)

ADD_CREATURE_TO_POOL(DRAGON, 12)
ADD_CREATURE_TO_POOL(BUG, 4)
ADD_CREATURE_TO_POOL(SORCEROR, 8)
ADD_CREATURE_TO_POOL(SPIDER, 6)
ADD_CREATURE_TO_POOL(TENTACLE, 10)
ADD_CREATURE_TO_POOL(HELL_HOUND, 8)
ADD_CREATURE_TO_POOL(BARBARIAN, 8)
ADD_CREATURE_TO_POOL(BILE_DEMON, 8)
ADD_CREATURE_TO_POOL(TROLL, 6)

CREATURE_AVAILABLE(PLAYER0, SPIDER, 1, 1)
CREATURE_AVAILABLE(PLAYER0, DRAGON, 1, 1)
CREATURE_AVAILABLE(PLAYER0, TENTACLE, 1, 1)
CREATURE_AVAILABLE(PLAYER0, HELL_HOUND, 1, 1)

MAGIC_AVAILABLE(PLAYER0, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(PLAYER0, POWER_CONCEAL, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_HOLD_AUDIENCE, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_PROTECT, 1, 0)

ROOM_AVAILABLE(PLAYER0, TREASURE, 1, 1)
ROOM_AVAILABLE(PLAYER0, LAIR, 1, 1)
ROOM_AVAILABLE(PLAYER0, GARDEN, 1, 1)
ROOM_AVAILABLE(PLAYER0, RESEARCH, 1, 1)
ROOM_AVAILABLE(PLAYER0, TRAINING, 1, 1)
ROOM_AVAILABLE(PLAYER0, GUARD_POST, 1, 0)
ROOM_AVAILABLE(PLAYER0, TEMPLE, 1, 0)
ROOM_AVAILABLE(PLAYER0, BARRACKS, 1, 0)
ROOM_AVAILABLE(PLAYER0, SCAVENGER, 1, 0)

TRAP_AVAILABLE(PLAYER0, POISON_GAS, 1, 0)
DOOR_AVAILABLE(PLAYER0, BRACED, 1, 0)

SET_CREATURE_HEALTH(TUNNELLER, 1500)
SET_CREATURE_STRENGTH(KNIGHT, 160)
SET_CREATURE_STRENGTH(TUNNELLER, 120)
SET_CREATURE_ARMOUR(DWARFA, 70)
SET_CREATURE_ARMOUR(TUNNELLER, 120)

REM *** HERO PARTY ***

CREATE_PARTY(HERO1)
ADD_TO_PARTY(HERO1, SAMURAI, 9, 200, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(HERO1, WIZARD, 10, 800, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(HERO1, MONK, 8, 200, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(HERO1, MONK, 8, 200, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(HERO2)
ADD_TO_PARTY(HERO2, BARBARIAN, 7, 200, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(HERO3)
ADD_TO_PARTY(HERO3, ARCHER, 7, 200, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(BOSS1)
ADD_TO_PARTY(BOSS1, GIANT, 10, 800, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS1, TUNNELLER, 9, 2400, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS1, GIANT, 10, 800, ATTACK_ENEMIES, 0)

CREATE_PARTY(BOSS2)
ADD_TO_PARTY(BOSS2, BARBARIAN, 9, 800, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(BOSS2, KNIGHT, 10, 2000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(BOSS2, BARBARIAN, 9, 800, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(BOSS2, ARCHER, 9, 200, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS2, ARCHER, 9, 200, ATTACK_ENEMIES, 0)

REM *** MAIN ***

DISPLAY_OBJECTIVE(16, PLAYER0)

IF(PLAYER0, SORCEROR >= 1)
	DISPLAY_OBJECTIVE(18, PLAYER0)
	ROOM_AVAILABLE(PLAYER0, BRIDGE, 1, 1)
	TUTORIAL_FLASH_BUTTON(18, -1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 5, 5, 7, 200)
	SET_FLAG(PLAYER0, FLAG0, 1)
	SET_FLAG(PLAYER_GOOD, FLAG1, 3)
	SET_FLAG(PLAYER_GOOD, FLAG3, 2)
ENDIF

IF_ACTION_POINT(1, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 8, 4, 9, 200)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 19, 4, 8, 200)
ENDIF

IF_ACTION_POINT(2, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 6, 9, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 10, 5, 6, 0)
ENDIF

IF_ACTION_POINT(3, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 2)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 10, 8, 5, 0)
ENDIF

IF_ACTION_POINT(4, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG0, 1)
ENDIF

IF_ACTION_POINT(5, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 1)
	IF(PLAYER0, FLAG0 == 0)
		DISPLAY_OBJECTIVE(17, PLAYER0)
	ENDIF
ENDIF

IF_ACTION_POINT(6, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG3, 3)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 20, 3, 8, 300)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 21, 3, 8, 300)
	SET_FLAG(PLAYER0, FLAG1, 1)
ENDIF

IF_ACTION_POINT(7, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 1)
	SET_FLAG(PLAYER0, FLAG1, 1)
ENDIF

IF_ACTION_POINT(8, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 9, 3, 10, 0)
	SET_FLAG(PLAYER0, FLAG3, 3)
	SET_TIMER(PLAYER_GOOD, TIMER3)
ENDIF

IF_ACTION_POINT(11, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 2)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 6, 5, 0)
ENDIF

IF_ACTION_POINT(12, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 3)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 12, 6, 10, 200)
ENDIF

IF_ACTION_POINT(13, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 3)
	SET_FLAG(PLAYER_GOOD, FLAG2, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 13, 8, 9, 200)
ENDIF

IF_ACTION_POINT(14, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG2, 1)
	SET_FLAG(PLAYER_GOOD, FLAG3, 3)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 14, 7, 10, 200)
ENDIF

IF_ACTION_POINT(15, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 3)
	SET_FLAG(PLAYER_GOOD, FLAG2, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 16, 5, 9, 200)
ENDIF

IF_ACTION_POINT(17, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 17, 5, 8, 100)
	SET_TIMER(PLAYER_GOOD, TIMER4)
ENDIF

IF_ACTION_POINT(18, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG3, 2)
ENDIF

IF_ACTION_POINT(19, PLAYER0)
	SET_FLAG(PLAYER_GOOD, FLAG3, 1)
ENDIF

IF_ACTION_POINT(22, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 13, 4, 8, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 11, 4, 7, 0)
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 0)
	IF(PLAYER_GOOD, TIMER1 >= 4000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, -1, 3, 8, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER1 >= 7000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -1, 4, 9, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER2 >= 3000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 8, 5, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER2 >= 4500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 4, 9, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER2 >= 6000)
		SET_FLAG(PLAYER_GOOD, FLAG1, 1)
	ENDIF
	IF(PLAYER_GOOD, TIMER2 >= 17250)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 7, 10, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER3 >= 7000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 8, 4, 7, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER3 >= 18000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 8, 4, 7, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER4 >= 4000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 8, 3, 10, 200)
	ENDIF
	IF(PLAYER_GOOD, TIMER4 >= 12000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 8, 3, 10, 200)
	ENDIF
ENDIF

IF(PLAYER_GOOD, FLAG1 == 1)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 6, 6, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD, FLAG1, 0)
ENDIF

IF(PLAYER_GOOD, FLAG1 == 2)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 5, 7, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD, FLAG1, 0)
ENDIF

IF(PLAYER_GOOD, FLAG1 == 3)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -2, 5, 10, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD, FLAG1, 0)
ENDIF

IF(PLAYER_GOOD,FLAG2 == 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 15, 3, 10, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, 15, 4, 6, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, PLAYER_GOOD, 3, 10 ,0)
ENDIF

IF(PLAYER_GOOD, FLAG3 == 1)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -1, 4, 9, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD, FLAG3, 0)
ENDIF

IF(PLAYER_GOOD, FLAG3 == 2)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, -1, 1, 10, 0)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, -1, 3, 7, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD, FLAG3, 0)
ENDIF

IF(PLAYER_GOOD, FLAG3 == 3)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, -1, 5, 5, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD, FLAG3, 0)
ENDIF

IF_AVAILABLE(PLAYER0, WORD_OF_POWER == 1)
	TRAP_AVAILABLE(PLAYER0, WORD_OF_POWER, 1, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 23, 4, 7, 200)
	SET_FLAG(PLAYER_GOOD, FLAG3, 1)
ENDIF

IF_AVAILABLE(PLAYER0, MAGIC == 1)
	DOOR_AVAILABLE(PLAYER0, MAGIC, 1, 1)
	SET_FLAG(PLAYER_GOOD, FLAG1, 3)
	SET_FLAG(PLAYER_GOOD, FLAG3, 2)
ENDIF

IF(PLAYER0, FLAG1 == 1)
	DISPLAY_INFORMATION(19, PLAYER0)
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER_GOOD, FLAG0, 1)
ENDIF

IF(PLAYER_GOOD, FLAG0 == 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 4, 8, 8, 0)
	SET_TIMER(PLAYER_GOOD, TIMER0)
	IF(PLAYER_GOOD, TIMER0 >= 150)
		DISPLAY_OBJECTIVE(20, PLAYER_GOOD)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, DWARFA, 4, 4, 10, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, FAIRY, PLAYER_GOOD, 4, 9, 0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS1, 4, 1)
		IF(PLAYER_GOOD, TUNNELLER == 0)
			DISPLAY_OBJECTIVE(21, PLAYER0)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS2, 1, 1)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD, HERO1, 1, 2)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD, HERO2, 1, 8)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD, HERO3, 1, 8)
			IF(PLAYER_GOOD, KNIGHT == 0)
				IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
					DISPLAY_OBJECTIVE(22, PLAYER0)
					WIN_GAME
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF
