REM ANOTHER DUNGEON LEVEL14
REM X[s[o`̓f`

REM *** SETUP SECTION ***

SET_GENERATE_SPEED(380)

START_MONEY(ALL_PLAYERS, 20000)

MAX_CREATURES(PLAYER0, 25)
MAX_CREATURES(PLAYER3, 37)

COMPUTER_PLAYER(PLAYER3, 10)

ALLY_PLAYERS(PLAYER_GOOD, PLAYER3)

ADD_CREATURE_TO_POOL(SKELETON, 76)
ADD_CREATURE_TO_POOL(GHOST, 10)
ADD_CREATURE_TO_POOL(DWARFA, 30)
ADD_CREATURE_TO_POOL(ARCHER, 30)
ADD_CREATURE_TO_POOL(WITCH, 20)
ADD_CREATURE_TO_POOL(WIZARD, 10)
ADD_CREATURE_TO_POOL(BARBARIAN, 20)
ADD_CREATURE_TO_POOL(SAMURAI, 10)
ADD_CREATURE_TO_POOL(MONK, 20)
ADD_CREATURE_TO_POOL(FAIRY, 20)

CREATURE_AVAILABLE(PLAYER3, SKELETON, 1, 1)
CREATURE_AVAILABLE(PLAYER3, GHOST, 1, 1)

ROOM_AVAILABLE(ALL_PLAYERS, TREASURE, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, LAIR, 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, BARRACKS, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TORTURE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, GUARD_POST, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TEMPLE, 1, 0)
ROOM_AVAILABLE(PLAYER3, PRISON, 1, 0)
ROOM_AVAILABLE(PLAYER3, BRIDGE, 1, 0)
ROOM_AVAILABLE(PLAYER3, GRAVEYARD, 1, 0)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CONCEAL, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_PROTECT, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_HOLD_AUDIENCE, 1, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_LIGHTNING, 1, 1)
MAGIC_AVAILABLE(PLAYER3, POWER_DISEASE, 1, 1)

TRAP_AVAILABLE(ALL_PLAYERS, POISON_GAS, 1, 0)
TRAP_AVAILABLE(PLAYER0, WORD_OF_POWER, 1, 0)
TRAP_AVAILABLE(PLAYER3, LIGHTNING, 1, 0)

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

SET_CREATURE_HEALTH(KNIGHT, 2500)
SET_CREATURE_HEALTH(SORCEROR, 750)
SET_CREATURE_STRENGTH(KNIGHT, 255)
SET_CREATURE_STRENGTH(SKELETON, 100)
SET_CREATURE_ARMOUR(KNIGHT, 255)
SET_CREATURE_ARMOUR(SORCEROR, 200)
SET_CREATURE_ARMOUR(GHOST, 100)
SET_CREATURE_FEAR(KNIGHT, 0)
SET_CREATURE_FEAR(SORCEROR, 0)
SET_CREATURE_FEAR(SKELETON, 0)

REM *** HERO PARTY ***

CREATE_PARTY(ST_GOLD1)
ADD_TO_PARTY(ST_GOLD1, GHOST, 8, 0, STEAL_GOLD, 0)

CREATE_PARTY(ST_GOLD2)
ADD_TO_PARTY(ST_GOLD2, HELL_HOUND, 7, 0, STEAL_GOLD, 0)

CREATE_PARTY(AT_ROOM1)
ADD_TO_PARTY(AT_ROOM1, HELL_HOUND, 6, 0, ATTACK_ROOMS, 0)

CREATE_PARTY(SCOUT1)
ADD_TO_PARTY(SCOUT1, GHOST, 5, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(SCOUT1, GHOST, 7, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(SCOUT1, GHOST, 5, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(SCOUT1, GHOST, 5, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(SCOUT2)
ADD_TO_PARTY(SCOUT2, HELL_HOUND, 7, 0, STEAL_GOLD, 0)
ADD_TO_PARTY(SCOUT2, GHOST, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(SCOUT2, HELL_HOUND, 7, 0, STEAL_GOLD, 0)
ADD_TO_PARTY(SCOUT2, HELL_HOUND, 7, 0, ATTACK_ROOMS, 0)
ADD_TO_PARTY(SCOUT2, HELL_HOUND, 7, 0, ATTACK_ROOMS, 0)

CREATE_PARTY(ATTACK1)
ADD_TO_PARTY(ATTACK1, SKELETON, 4, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK1, GHOST, 8, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK1, SKELETON, 4, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(ATTACK2)
ADD_TO_PARTY(ATTACK2, SKELETON, 7, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK2, SKELETON, 7, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK2, GHOST, 8, 0, STEAL_GOLD, 0)
ADD_TO_PARTY(ATTACK2, GHOST, 8, 0, STEAL_GOLD, 0)

CREATE_PARTY(ATTACK3)
ADD_TO_PARTY(ATTACK3, HELL_HOUND, 7, 0, ATTACK_ROOMS, 0)
ADD_TO_PARTY(ATTACK3, SKELETON, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK3, HELL_HOUND, 7, 0, ATTACK_ROOMS, 0)
ADD_TO_PARTY(ATTACK3, HELL_HOUND, 7, 0, ATTACK_ROOMS, 0)
ADD_TO_PARTY(ATTACK3, HELL_HOUND, 7, 0, ATTACK_ROOMS, 0)

CREATE_PARTY(ATTACK4)
ADD_TO_PARTY(ATTACK4, VAMPIRE, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(ATTACK4, GHOST, 9, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(ATTACK4, GHOST, 9, 0, STEAL_GOLD, 0)
ADD_TO_PARTY(ATTACK4, GHOST, 9, 0, STEAL_GOLD, 0)
ADD_TO_PARTY(ATTACK4, GHOST, 9, 0, STEAL_GOLD, 0)

CREATE_PARTY(BOSS)
ADD_TO_PARTY(BOSS, SORCEROR, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(BOSS, KNIGHT, 10, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(BOSS, VAMPIRE, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, VAMPIRE, 10, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(BOSS, VAMPIRE, 10, 0, ATTACK_ENEMIES, 0)

REM *** MAIN ***

IF_ACTION_POINT(1, PLAYER0)
	SET_TIMER(PLAYER_GOOD, TIMER2)
	IF(PLAYER_GOOD, TIMER2 > 3500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GHOST, 3, 4, 6, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, 8, 4, 5, 0)
	ENDIF
ENDIF

IF_ACTION_POINT(2, PLAYER0)
	SET_TIMER(PLAYER_GOOD, TIMER3)
	IF(PLAYER_GOOD, TIMER3 > 3500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SKELETON, 4, 5, 5, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 7, 2, 8, 0)
	ENDIF
ENDIF

IF(PLAYER_GOOD, FLAG1 == 0)
	IF(PLAYER_GOOD, TIMER0 > 3000)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, -2, 5, 6, 0)
	ENDIF
	IF(PLAYER_GOOD, TIMER0 > 11500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 4, 4, 6, 0)
	ENDIF
	IF(PLAYER_GOOD, TIMER1 > 7000)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK1, 3, 2)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK1, 4, 2)
	ENDIF
	IF(PLAYER_GOOD, TIMER2 > 9500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SKELETON, 3, 6, 8, 0)
	ENDIF
	IF(PLAYER_GOOD, TIMER3 > 9500)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 4, 7, 5, 0)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 10)
		DISPLAY_INFORMATION(113, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GHOST, 3, 5, 3, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SKELETON, 4, 5, 3, 0)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 20)
		SET_FLAG(PLAYER0, FLAG2, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ST_GOLD1, 9, 4)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, -1, 4, 6, 0)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 30)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK2, 3, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK2, 4, 1)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 40)
		MAX_CREATURES(PLAYER3, 52)
		SET_FLAG(PLAYER0, FLAG2, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, AT_ROOM1, 9, 8)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 55)
		SET_FLAG(PLAYER_GOOD, FLAG4, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK2, 3, 2)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ST_GOLD2, 4, 7)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 70)
		MAGIC_AVAILABLE(PLAYER3, POWER_CALL_TO_ARMS, 1, 1)
		MAX_CREATURES(PLAYER3, 68)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, -1, 3, 9, 0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SCOUT2, -1, 1)
	ENDIF
	IF(PLAYER0, BATTLES_LOST >= 90)
		MAX_CREATURES(PLAYER3, 76)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK3, 4, 2)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 3, 5, 8, 0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ST_GOLD2, 3, 6)
	ENDIF
	IF_ACTION_POINT(10, PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK2, 10, 1)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 4, 6, 5, 0)
	ENDIF
	IF_ACTION_POINT(11, PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SKELETON, 12, 5, 6, 0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, VAMPIRE, 12, 3, 7, 0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ST_GOLD2, 12, 2)
	ENDIF
	IF_AVAILABLE(PLAYER0, POWER_HEAL_CREATURE == 1)
		SET_TIMER(PLAYER_GOOD, TIMER4)
		IF(PLAYER_GOOD, TIMER4 > 3000)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ST_GOLD1, 9, 3)
		ENDIF
		IF(PLAYER_GOOD, TIMER4 > 8500)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD, AT_ROOM1, 9, 6)
		ENDIF
	ENDIF
	IF(PLAYER0, GAME_TURN >= 12500)
		DISPLAY_OBJECTIVE(111, PLAYER0)
		SET_FLAG(PLAYER0, FLAG2, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SCOUT1, 7, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SCOUT1, 8, 1)
	ENDIF
	IF(PLAYER0, GAME_TURN >= 17000)
		SET_FLAG(PLAYER0, FLAG1, 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK1, 3, 2)
	ENDIF
	IF(PLAYER0, GAME_TURN >= 25000)
		SET_FLAG(PLAYER0, FLAG1, 2)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK1, 4, 2)
	ENDIF
ENDIF

IF(PLAYER0, FLAG1 >= 1)
	IF(PLAYER0, FLAG1 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, IMP, 3, 2, 1, 0)
	ENDIF
	IF(PLAYER0, FLAG1 == 2)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, IMP, 4, 2, 1, 0)
	ENDIF
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0, FLAG1, 0)
ENDIF

IF(PLAYER0, FLAG2 == 1)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, IMP, 7, 3, 1, 0)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, IMP, 8, 3, 1, 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0, FLAG2, 0)
ENDIF

IF(PLAYER_GOOD, RESEARCH <= 36)
	DISPLAY_INFORMATION(114, PLAYER0)
	MAGIC_AVAILABLE(PLAYER0, POWER_DESTROY_WALLS, 1, 1)
	TUTORIAL_FLASH_BUTTON(32, -1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HORNY, -2, 4, 8, 0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, AT_ROOM1, 9, 6)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HELL_HOUND, 9, 6, 6, 0)
	SET_TIMER(PLAYER_GOOD, TIMER1)
ENDIF

IF(PLAYER_GOOD, RESEARCH == 0)
	DISPLAY_OBJECTIVE(115, PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, BOSS, -2, 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, SKELETON, -2, 8, 8, 0)
	SET_FLAG(PLAYER_GOOD, FLAG1, 1)
	IF(PLAYER_GOOD, FLAG4 == 1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ATTACK4, 13, 2)
	ENDIF
	IF(PLAYER_GOOD, SORCEROR == 0)
		MAGIC_AVAILABLE(PLAYER0, POWER_CALL_TO_ARMS, 1, 0)
		MAGIC_AVAILABLE(PLAYER0, POWER_DISEASE, 1, 0)
		ROOM_AVAILABLE(PLAYER0, BRIDGE, 1, 0)
		ROOM_AVAILABLE(PLAYER0, SCAVENGER, 1, 0)
		MAX_CREATURES(PLAYER3, 20)
		SET_CREATURE_STRENGTH(KNIGHT, 1)
		SET_CREATURE_ARMOUR(KNIGHT, 1)
		SET_FLAG(PLAYER_GOOD, FLAG1, 2)
		IF(PLAYER3, DUNGEON_DESTROYED == 1)
			DISPLAY_OBJECTIVE(116, PLAYER0)
			WIN_GAME
		ENDIF
	ENDIF
ENDIF

SET_TIMER(PLAYER0, TIMER7)
IF(PLAYER0, TIMER7 >= 41)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, BARBARIAN, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, DWARFA, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, MONK, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, WITCH, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, FAIRY, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, ARCHER, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, WIZARD, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, SAMURAI, 1, 0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0, TIMER7)
ENDIF

IF(PLAYER0, GARDEN >= 15)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, ST_GOLD1, 9, 3)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GHOST, 9, 3, 8, 0)
	SET_TIMER(PLAYER_GOOD, TIMER0)
ENDIF

IF(PLAYER0, TRAINING >= 9)
	DISPLAY_INFORMATION(112, PLAYER0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, BARBARIAN, 1, 1)
ENDIF

IF(PLAYER0, SCAVENGER >= 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, FAIRY, 1, 1)
ENDIF

IF(PLAYER0, WORKSHOP >= 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, DWARFA, 1, 1)
ENDIF

IF(PLAYER0, TEMPLE >= 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, MONK, 1, 1)
ENDIF

IF(PLAYER0, RESEARCH >= 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, WITCH, 1, 1)
ENDIF

IF(PLAYER0, BARRACKS >= 1)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, ARCHER, 1, 1)
ENDIF

IF(PLAYER0, ENTRANCE >= 10)
	IF(PLAYER0, RESEARCH >= 25)
		NEXT_COMMAND_REUSABLE
		CREATURE_AVAILABLE(PLAYER0, WIZARD, 1, 1)
	ENDIF
	IF(PLAYER0, BARRACKS >= 25)
		NEXT_COMMAND_REUSABLE
		CREATURE_AVAILABLE(PLAYER0, SAMURAI, 1, 1)
	ENDIF
ENDIF

DISPLAY_OBJECTIVE(110, PLAYER0)
