REM ANOTHER DUNGEON LEVEL12
REM GuY_X`ꂽR`

REM *** SETUP SECTION ***

SET_GENERATE_SPEED(520)

START_MONEY(ALL_PLAYERS, 2500)

MAX_CREATURES(PLAYER0, 23)
MAX_CREATURES(PLAYER1, 20)
MAX_CREATURES(PLAYER2, 26)

COMPUTER_PLAYER(PLAYER1, 2)
COMPUTER_PLAYER(PLAYER2, 2)

ALLY_PLAYERS(PLAYER1, PLAYER_GOOD)

ADD_CREATURE_TO_POOL(SORCEROR, 6)
ADD_CREATURE_TO_POOL(TROLL, 8)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 8)
ADD_CREATURE_TO_POOL(ORC, 10)
ADD_CREATURE_TO_POOL(SPIDER, 5)
ADD_CREATURE_TO_POOL(DRAGON, 8)
ADD_CREATURE_TO_POOL(BILE_DEMON, 15)
ADD_CREATURE_TO_POOL(HELL_HOUND, 5)
ADD_CREATURE_TO_POOL(DWARFA, 20)
ADD_CREATURE_TO_POOL(ARCHER, 20)
ADD_CREATURE_TO_POOL(WITCH, 20)
ADD_CREATURE_TO_POOL(WIZARD, 10)
ADD_CREATURE_TO_POOL(BARBARIAN, 20)
ADD_CREATURE_TO_POOL(GIANT, 20)
ADD_CREATURE_TO_POOL(SAMURAI, 10)
ADD_CREATURE_TO_POOL(THIEF, 20)
ADD_CREATURE_TO_POOL(MONK, 20)

CREATURE_AVAILABLE(PLAYER1, SORCEROR, 1, 1)
CREATURE_AVAILABLE(PLAYER1, DARK_MISTRESS, 1, 1)
CREATURE_AVAILABLE(PLAYER1, TROLL, 1, 1)
CREATURE_AVAILABLE(PLAYER1, ORC, 1, 1)
CREATURE_AVAILABLE(PLAYER2, SPIDER, 1, 1)
CREATURE_AVAILABLE(PLAYER2, DRAGON, 1, 1)
CREATURE_AVAILABLE(PLAYER2, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(PLAYER2, HELL_HOUND, 1, 1)

ROOM_AVAILABLE(ALL_PLAYERS, TEMPLE, 1, 0)
ROOM_AVAILABLE(PLAYER0, TREASURE, 1, 0)
ROOM_AVAILABLE(PLAYER0, LAIR, 1, 0)
ROOM_AVAILABLE(PLAYER0, GARDEN, 1, 0)
ROOM_AVAILABLE(PLAYER0, RESEARCH, 1, 0)
ROOM_AVAILABLE(PLAYER0, TRAINING, 1, 0)
ROOM_AVAILABLE(PLAYER0, GUARD_POST, 1, 0)
ROOM_AVAILABLE(PLAYER0, TORTURE, 1, 0)
ROOM_AVAILABLE(PLAYER1, TREASURE, 1, 1)
ROOM_AVAILABLE(PLAYER1, LAIR, 1, 1)
ROOM_AVAILABLE(PLAYER1, GARDEN, 1, 1)
ROOM_AVAILABLE(PLAYER1, RESEARCH, 1, 1)
ROOM_AVAILABLE(PLAYER1, TRAINING, 1, 1)
ROOM_AVAILABLE(PLAYER1, BARRACKS, 1, 0)
ROOM_AVAILABLE(PLAYER1, WORKSHOP, 1, 0)
ROOM_AVAILABLE(PLAYER1, TORTURE, 1, 0)
ROOM_AVAILABLE(PLAYER2, TREASURE, 1, 1)
ROOM_AVAILABLE(PLAYER2, LAIR, 1, 1)
ROOM_AVAILABLE(PLAYER2, GARDEN, 1, 1)
ROOM_AVAILABLE(PLAYER2, RESEARCH, 1, 1)
ROOM_AVAILABLE(PLAYER2, TRAINING, 1, 1)
ROOM_AVAILABLE(PLAYER2, WORKSHOP, 1, 0)
ROOM_AVAILABLE(PLAYER2, SCAVENGER, 1, 0)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_POSSESS, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CONCEAL, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_PROTECT, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CALL_TO_ARMS, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HEAL_CREATURE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_DESTROY_WALLS, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_OBEY, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_HOLD_AUDIENCE, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_CHICKEN, 1, 0)
MAGIC_AVAILABLE(PLAYER1, POWER_SIGHT, 1, 0)
MAGIC_AVAILABLE(PLAYER1, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_SIGHT, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_DISEASE, 1, 0)

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

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

SET_CREATURE_HEALTH(HORNY, 3000)

REM *** MAIN ***

DISPLAY_OBJECTIVE(90, PLAYER0)

IF(PLAYER0, ENTRANCE >= 1)
	DISPLAY_OBJECTIVE(92, PLAYER0)
ENDIF

IF_ACTION_POINT(1, PLAYER0)
	DISPLAY_INFORMATION(91, PLAYER0)
ENDIF

IF(PLAYER1, BATTLES_LOST >= 3)
	DISPLAY_INFORMATION(94, PLAYER0)
ENDIF

IF(PLAYER2, BATTLES_LOST >= 3)
	DISPLAY_INFORMATION(93, PLAYER0)
ENDIF

IF(PLAYER1, TOTAL_CREATURES >= 18)
	SET_FLAG(PLAYER1, FLAG0, 1)
ENDIF

IF(PLAYER1, FLAG0 == 1)
	IF(PLAYER1, DUNGEON_DESTROYED == 0)
		IF(PLAYER1, TOTAL_CREATURES <= 5)
			DISPLAY_INFORMATION(95, PLAYER0)
			SET_TIMER(PLAYER1, TIMER0)
			SET_CREATURE_STRENGTH(HORNY, 255)
			SET_CREATURE_ARMOUR(HORNY, 255)
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, HORNY, PLAYER1, 1, 10, 0)
		ENDIF
	ENDIF
	IF(PLAYER1, TIMER0 >= 3000)
		SET_FLAG(PLAYER1, FLAG0, 2)
		SET_CREATURE_STRENGTH(HORNY, 1)
		SET_CREATURE_ARMOUR(HORNY, 1)
	ENDIF
ENDIF

IF(PLAYER_GOOD, FLAG0 == 1)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, KNIGHT, 1, 1, 10, 3500)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, WIZARD, 1, 1, 10, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, MONK, 1, 1, 10, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, BARBARIAN, 1, 2, 10, 0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, GIANT, 1, 2, 10, 0)
ENDIF

IF(PLAYER0, TREASURE >= 1)
	ROOM_AVAILABLE(PLAYER0, TREASURE, 1, 1)
ENDIF

IF(PLAYER0, LAIR >= 1)
	ROOM_AVAILABLE(PLAYER0, LAIR, 1, 1)
ENDIF

IF(PLAYER0, GARDEN >= 1)
	ROOM_AVAILABLE(PLAYER0, GARDEN, 1, 1)
ENDIF

IF(PLAYER0, TRAINING >= 1)
	ROOM_AVAILABLE(PLAYER0, TRAINING, 1, 1)
ENDIF

IF(PLAYER0, RESEARCH >= 1)
	ROOM_AVAILABLE(PLAYER0, RESEARCH, 1, 1)
	SET_FLAG(PLAYER_GOOD, FLAG0, 1)
ENDIF

IF(PLAYER0, GUARD_POST >= 1)
	ROOM_AVAILABLE(PLAYER0, GUARD_POST, 1, 1)
ENDIF

IF(PLAYER0, BRIDGE >= 1)
	ROOM_AVAILABLE(PLAYER0, BRIDGE, 1, 1)
ENDIF

IF(PLAYER0, WORKSHOP >= 1)
	ROOM_AVAILABLE(PLAYER0, WORKSHOP, 1, 1)
ENDIF

IF(PLAYER0, BARRACKS >= 1)
	ROOM_AVAILABLE(PLAYER0, BARRACKS, 1, 1)
ENDIF

IF(PLAYER0, TEMPLE >= 1)
	ROOM_AVAILABLE(PLAYER0, TEMPLE, 1, 1)
ENDIF

IF(PLAYER0, SCAVENGER >= 1)
	ROOM_AVAILABLE(PLAYER0, SCAVENGER, 1, 1)
ENDIF

IF(PLAYER0, GARDEN >= 25)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, GIANT, 1, 1)
ENDIF

IF(PLAYER0, GARDEN < 25)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, GIANT, 1, 0)
ENDIF

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

IF(PLAYER0, RESEARCH < 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, WITCH, 1, 0)
ENDIF

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

IF(PLAYER0, TEMPLE < 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, MONK, 1, 0)
ENDIF

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

IF(PLAYER0, TRAINING < 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, BARBARIAN, 1, 0)
ENDIF

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

IF(PLAYER0, BARRACKS < 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, ARCHER, 1, 0)
ENDIF

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

IF(PLAYER0, WORKSHOP < 9)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, DWARFA, 1, 0)
ENDIF

IF(PLAYER0, TREASURE >= 25)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, THIEF, 1, 1)
ENDIF

IF(PLAYER0, TREASURE < 25)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, THIEF, 1, 0)
ENDIF

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

IF(PLAYER0, ENTRANCE < 10)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, SAMURAI, 1, 0)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, WIZARD, 1, 0)
ENDIF

IF(PLAYER0, BARRACKS < 25)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, SAMURAI, 1, 0)
ENDIF

IF(PLAYER0, RESEARCH < 25)
	NEXT_COMMAND_REUSABLE
	CREATURE_AVAILABLE(PLAYER0, WIZARD, 1, 0)
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
	SET_FLAG(PLAYER_GOOD, FLAG0, 1)
	ROOM_AVAILABLE(PLAYER1, BRIDGE, 1, 1)
	ROOM_AVAILABLE(PLAYER2, BRIDGE, 1, 1)
ENDIF

IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
	DISPLAY_OBJECTIVE(96, PLAYER0)
	WIN_GAME
ENDIF
