LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(ALL_PLAYERS,0)
MAX_CREATURES(ALL_PLAYERS,25)

ADD_CREATURE_TO_POOL(FLY,20)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_POSSESS,1,1)

QUICK_OBJECTIVE(1, "Welcome to DOOM! E1 M1 The Hangar! The Forces of Good are planning an invasion of HELL...... Kill them All. Rip and Tear, Until it is Done!!")
IF_ACTION_POINT(11,PLAYER0)
PLAY_MESSAGE(PLAYER0,SPEECH,96)
ENDIF

IF_ACTION_POINT(2,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF

IF_ACTION_POINT(5,PLAYER0)
ADD_OBJECT_TO_LEVEL(SPECBOX_REVMAP,1,0)
PLAY_MESSAGE(PLAYER0,SPEECH,92)
QUICK_INFORMATION (6, "You Found the Automap. It is at your Dungeon Heart.",1)
ENDIF

IF_ACTION_POINT(18,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF
IF_ACTION_POINT(19,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF
IF_ACTION_POINT(20,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF
IF_ACTION_POINT(21,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF
IF_ACTION_POINT(22,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF
IF_ACTION_POINT(23,PLAYER0)
USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
PLAY_MESSAGE(PLAYER0,SPEECH,83)
ENDIF

IF_ACTION_POINT(7,PLAYER0)
QUICK_INFORMATION (2, "YOU FOUND A SECRET AREA",7)
PLAY_MESSAGE(PLAYER0,SPEECH,76)
ENDIF
IF_ACTION_POINT(8,PLAYER0)
QUICK_INFORMATION (3, "YOU FOUND A SECRET AREA",8)
PLAY_MESSAGE(PLAYER0,SPEECH,76)
ENDIF
IF_ACTION_POINT(9,PLAYER0)
QUICK_INFORMATION (4, "YOU FOUND A SECRET AREA",9)
PLAY_MESSAGE(PLAYER0,SPEECH,76)
ENDIF
IF_ACTION_POINT(10,PLAYER0)
QUICK_INFORMATION (5, "YOU FOUND A SECRET AREA",10)
PLAY_MESSAGE(PLAYER0,SPEECH,76)
ENDIF

PLAY_MESSAGE(PLAYER0,SOUND,37)

IF_ACTION_POINT(12,PLAYER0)
	CHANGE_SLAB_TYPE(59,32,PRETTY_PATH)
		IF_SLAB_TYPE(59,32,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF

IF_ACTION_POINT(13,PLAYER0)
	CHANGE_SLAB_TYPE(24,28,PRETTY_PATH)
		IF_SLAB_TYPE(24,28,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF

IF_ACTION_POINT(14,PLAYER0)
	CHANGE_SLAB_TYPE(125,18,PRETTY_PATH)
		IF_SLAB_TYPE(125,18,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_PROTECT,9,1)
		ENDIF
ENDIF

IF_ACTION_POINT(24,PLAYER0)
	CHANGE_SLAB_TYPE(105,4,PRETTY_PATH)
		IF_SLAB_TYPE(105,4,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF

IF_ACTION_POINT(25,PLAYER0)
	CHANGE_SLAB_TYPE(68,48,PRETTY_PATH)
		IF_SLAB_TYPE(68,48,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_PROTECT,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,153)
		ENDIF
ENDIF

IF_ACTION_POINT(26,PLAYER0)
	CHANGE_SLAB_TYPE(162,54,PRETTY_PATH)
		IF_SLAB_TYPE(162,54,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF

IF_ACTION_POINT(15,PLAYER0)
	CHANGE_SLAB_TYPE(138,46,PRETTY_PATH)
		IF_SLAB_TYPE(138,46,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF

IF_ACTION_POINT(16,PLAYER0)
	CHANGE_SLAB_TYPE(143,47,PRETTY_PATH)
		IF_SLAB_TYPE(143,47,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_CONCEAL,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,154)
		ENDIF
ENDIF

IF_ACTION_POINT(17,PLAYER0)
	CHANGE_SLAB_TYPE(150,68,PRETTY_PATH)
		IF_SLAB_TYPE(150,68,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF

IF_ACTION_POINT(27,PLAYER0)
	CHANGE_SLAB_TYPE(85,14,PRETTY_PATH)
		IF_SLAB_TYPE(85,14,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(28,PLAYER0)
	CHANGE_SLAB_TYPE(84,14,PRETTY_PATH)
		IF_SLAB_TYPE(84,14,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(29,PLAYER0)
	CHANGE_SLAB_TYPE(83,14,PRETTY_PATH)
		IF_SLAB_TYPE(83,14,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(30,PLAYER0)
	CHANGE_SLAB_TYPE(82,14,PRETTY_PATH)
		IF_SLAB_TYPE(82,14,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(31,PLAYER0)
	CHANGE_SLAB_TYPE(82,15,PRETTY_PATH)
		IF_SLAB_TYPE(82,15,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(32,PLAYER0)
	CHANGE_SLAB_TYPE(81,15,PRETTY_PATH)
		IF_SLAB_TYPE(81,15,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(33,PLAYER0)
	CHANGE_SLAB_TYPE(80,15,PRETTY_PATH)
		IF_SLAB_TYPE(80,15,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(34,PLAYER0)
	CHANGE_SLAB_TYPE(79,15,PRETTY_PATH)
		IF_SLAB_TYPE(79,15,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(35,PLAYER0)
	CHANGE_SLAB_TYPE(78,15,PRETTY_PATH)
		IF_SLAB_TYPE(78,15,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(36,PLAYER0)
	CHANGE_SLAB_TYPE(78,16,PRETTY_PATH)
		IF_SLAB_TYPE(78,16,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(37,PLAYER0)
	CHANGE_SLAB_TYPE(34,36,PRETTY_PATH)
		IF_SLAB_TYPE(34,36,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(38,PLAYER0)
	CHANGE_SLAB_TYPE(33,36,PRETTY_PATH)
		IF_SLAB_TYPE(33,36,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF
IF_ACTION_POINT(39,PLAYER0)
	CHANGE_SLAB_TYPE(32,36,PRETTY_PATH)
		IF_SLAB_TYPE(32,36,PRETTY_PATH)
		USE_POWER_ON_CREATURE(PLAYER0,DOOM_MISTRESS,ANYWHERE,PLAYER0,POWER_HEAL_CREATURE,9,1)
		PLAY_MESSAGE(PLAYER0,SOUND,37)
		ENDIF
ENDIF





RUN_AFTER_VICTORY(1)

REM # Score Computation, trigger whenever TOTAL_CREATURES is below the current value stored in flag BOX255_ACTIVATED.
IF(PLAYER_GOOD,TOTAL_CREATURES < PLAYER_GOOD,BOX255_ACTIVATED)
	REM # Check how much creature died, useful when you happen to kill multiples at the same time.
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER_GOOD,BOX200_ACTIVATED,SET,PLAYER_GOOD,BOX255_ACTIVATED,0)
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER_GOOD,BOX200_ACTIVATED,DECREASE,PLAYER_GOOD,TOTAL_CREATURES,0)
	REM # Add to FLAG0 amount of victim.
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER_GOOD,FLAG0,INCREASE,PLAYER_GOOD,BOX200_ACTIVATED,0)
	REM # Get new current TOTAL_CREATURES.
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER_GOOD,BOX255_ACTIVATED,SET,PLAYER_GOOD,TOTAL_CREATURES,0)
ENDIF

REM # Give gold whenever FLAG0 is above 0 and substract from it. Amount of gold is 100 as example, give whatever.
REM # A better system (but a little more complex) would use CURRENT_SALARY instead of TOTAL_CREATURES to allow for different gold reward depending on the creature type and its level.
IF(PLAYER_GOOD,FLAG0 > 0)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,100)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG0,-1)
ENDIF

REM # Whatever Loop, >> MUST BE << in place >> AFTER << the above.
IF(PLAYER_GOOD,GAME_TURN > 0)
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER_GOOD,BOX255_ACTIVATED,SET,PLAYER_GOOD,TOTAL_CREATURES,0)
ENDIF

REM # Whatever Win Condition.
IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
	COMPUTE_FLAG(PLAYER_GOOD,FLAG1,SET,PLAYER_GOOD,GAME_TURN,0)
	WIN_GAME
ENDIF

REM # Deduct score from total GAME_TURN at victory.
IF(PLAYER_GOOD,FLAG1 > 100000)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,-100000)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG1,-100000)
ENDIF
IF(PLAYER_GOOD,FLAG1 > 10000)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,-10000)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG1,-10000)
ENDIF
IF(PLAYER_GOOD,FLAG1 > 1000)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,-1000)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG1,-1000)
ENDIF
IF(PLAYER_GOOD,FLAG1 > 100)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,-100)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG1,-100)
ENDIF
IF(PLAYER_GOOD,FLAG1 > 10)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,-10)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG1,-10)
ENDIF
IF(PLAYER_GOOD,FLAG1 > 0)
	NEXT_COMMAND_REUSABLE
	ADD_GOLD_TO_PLAYER(PLAYER0,-1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_FLAG(PLAYER_GOOD,FLAG1,-1)
ENDIF



IF(PLAYER0,TOTAL_CREATURES == 0)
	LOSE_GAME
ENDIF

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
	WIN_GAME
ENDIF

