LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(ALL_PLAYERS,2500)
MAX_CREATURES(ALL_PLAYERS,150)

COMPUTER_PLAYER(PLAYER5,ROAMING)
COMPUTER_PLAYER(PLAYER6,ROAMING)
SET_PLAYER_COLOR(PLAYER2,BLACK)
SET_PLAYER_COLOR(PLAYER6,YELLOW)
SET_GAME_RULE(TrainingRoomMaxLevel,3)
SET_FLAG(PLAYER_GOOD,FLAG1,1)

ALLY_PLAYERS(PLAYER1, PLAYER_GOOD, 1)
ALLY_PLAYERS(PLAYER2, PLAYER_GOOD, 1)
ALLY_PLAYERS(PLAYER3, PLAYER_GOOD, 1)
ALLY_PLAYERS(PLAYER5, PLAYER_GOOD, 1)
ALLY_PLAYERS(PLAYER5, PLAYER1, 1)
ALLY_PLAYERS(PLAYER5, PLAYER2, 1)
ALLY_PLAYERS(PLAYER5, PLAYER3, 1)
ALLY_PLAYERS(PLAYER3, PLAYER6, 1)

ROOM_AVAILABLE(PLAYER0,TREASURE,3,0)
ROOM_AVAILABLE(PLAYER0,LAIR,3,0)
ROOM_AVAILABLE(PLAYER0,GARDEN,3,0)
ROOM_AVAILABLE(PLAYER0,TRAINING,3,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,3,0)
ROOM_AVAILABLE(PLAYER0,PRISON,3,0)
ROOM_AVAILABLE(PLAYER0,TORTURE,3,0)
ROOM_AVAILABLE(PLAYER0,BARRACKS,3,0)
ROOM_AVAILABLE(PLAYER0,GRAVEYARD,3,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
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_OBEY,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,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(ALL_PLAYERS,WORD_OF_POWER,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)


IF(PLAYER0,RESEARCH >= 60)
	ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
ENDIF

IF(PLAYER0,WORKSHOP >= 50)
	ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,1)
	DOOR_AVAILABLE(PLAYER0,STEEL,1,0)
	DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)
ENDIF

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

QUICK_OBJECTIVE(1,"By the will of fate you once again arrived at an oddly familiar place, altough something isn't quite right here.",ALL_PLAYERS)

IF_SLAB_OWNER(59, 46, PLAYER0)
	ADD_TO_FLAG(PLAYER0,BOX100_ACTIVATED,1)
	QUICK_MESSAGE(70,"Maximum bridge length 1",BRIDGE)
	QUICK_OBJECTIVE(2,"Trashy mistle bolts will only hold one independant bridge room together, you have to get rid of all previously build bridges before being able to build new ones.",ALL_PLAYERS)
ENDIF

IF_SLAB_OWNER(72, 87, PLAYER0)
	ADD_TO_FLAG(PLAYER0,BOX100_ACTIVATED,1)
	QUICK_MESSAGE(71,"Maximum bridge length 2",BRIDGE)
ENDIF

IF_SLAB_OWNER(2, 10, PLAYER0)
	ADD_TO_FLAG(PLAYER0,BOX100_ACTIVATED,1)
	QUICK_MESSAGE(72,"Maximum bridge length 3",BRIDGE)
ENDIF

IF_SLAB_OWNER(55, 166, PLAYER0)
	ADD_TO_FLAG(PLAYER0,BOX100_ACTIVATED,10)
	QUICK_MESSAGE(73,"Full bridge unlocked",BRIDGE)
	QUICK_OBJECTIVE(3,"Now you busted the local bolt mafia and gained the ability to bridge stuff without restriction.",ALL_PLAYERS)
ENDIF

IF(PLAYER0,BOX100_ACTIVATED == 1)
	IF(PLAYER0,BRIDGE == 0)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
	ENDIF
	IF(PLAYER0,BRIDGE >= 1)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,0,0)
	ENDIF
ENDIF

IF(PLAYER0,BOX100_ACTIVATED == 2)
	IF(PLAYER0,BRIDGE == 0)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
	ENDIF
	IF(PLAYER0,BRIDGE >= 2)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,0,0)
	ENDIF
ENDIF

IF(PLAYER0,BOX100_ACTIVATED == 3)
	IF(PLAYER0,BRIDGE >= 3)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,0,0)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,FLAG7,3)
	ENDIF
	IF(PLAYER0,FLAG7 >= 3)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,0,0)
	ENDIF
	IF(PLAYER0,BRIDGE == 0)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,FLAG7,0)
	ENDIF
	IF(PLAYER0,FLAG7 == 0)
		NEXT_COMMAND_REUSABLE
		ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
	ENDIF
	IF(PLAYER0,BRIDGE == 1)
		IF(PLAYER0,BOX121_ACTIVATED == 0)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER0,FLAG7,1)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER0,BOX121_ACTIVATED,1)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX122_ACTIVATED,0)
		ENDIF
	ENDIF
	IF(PLAYER0,BRIDGE == 2)
		IF(PLAYER0,BOX122_ACTIVATED == 0)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER0,FLAG7,1)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER0,BOX122_ACTIVATED,1)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX121_ACTIVATED,0)
		ENDIF
	ENDIF
ENDIF

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

CONCEAL_MAP_RECT(Player0, 255, 255, 510, 510, 1)
REVEAL_MAP_RECT(Player0, 60, 200, 120, 280)
CONCEAL_MAP_RECT(Player0, 60, 200, 120, 280, 0)
REVEAL_MAP_RECT(Player0, 190, 28, 40, 40)
CONCEAL_MAP_RECT(Player0, 190, 28, 40, 40, 0)
REVEAL_MAP_RECT(Player0, 214, 97, 50, 40)
CONCEAL_MAP_RECT(Player0, 214, 97, 50, 40, 0)
REVEAL_MAP_RECT(Player0, 292, 43, 50, 50)
CONCEAL_MAP_RECT(Player0, 292, 43, 50, 50, 0)
REVEAL_MAP_RECT(Player0, 271, 100, 50, 50)
CONCEAL_MAP_RECT(Player0, 271, 100, 50, 50, 0)
REVEAL_MAP_RECT(Player0, 385, 58, 50, 50)
CONCEAL_MAP_RECT(Player0, 385, 58, 50, 50, 0)


IF_SLAB_TYPE(38, 53, LAVA)
	CHANGE_SLAB_TYPE(38, 53, PATH)
	USE_POWER_AT_POS(PLAYER_GOOD,112,160,POWER_DESTROY_WALLS,3,1)
	USE_POWER_AT_POS(PLAYER_GOOD,112,163,POWER_DESTROY_WALLS,3,1)
	CREATE_EFFECT_AT_POS(14,112,160,100)
	CREATE_EFFECT_AT_POS(14,112,163,100)
ENDIF

IF_SLAB_TYPE(42, 44, LAVA)
	CHANGE_SLAB_TYPE(42, 44, PATH)
	USE_POWER_AT_POS(PLAYER_GOOD,127,136,POWER_DESTROY_WALLS,3,1)
	CREATE_EFFECT_AT_POS(14,127,136,100)
ENDIF

IF_SLAB_OWNER(32, 50, PLAYER0)
	CHANGE_SLAB_TYPE(33, 50, PATH)
	CHANGE_SLAB_TYPE(33, 51, PATH)
	CHANGE_SLAB_TYPE(34, 50, PATH)
	CHANGE_SLAB_TYPE(34, 51, PATH)
	CREATE_EFFECT_AT_POS(5,100,154,100)
	CREATE_EFFECT_AT_POS(5,103,154,100)
ENDIF

IF_SLAB_OWNER(5, 50, PLAYER0)
	CHANGE_SLAB_TYPE(5, 48, PATH)
	CHANGE_SLAB_TYPE(5, 49, PATH)
	CHANGE_SLAB_TYPE(5, 50, PATH)
	CHANGE_SLAB_TYPE(5, 51, PATH)
	CHANGE_SLAB_TYPE(6, 50, PATH)
	CHANGE_SLAB_TYPE(6, 51, PATH)
	CREATE_EFFECT_AT_POS(5,16,154,100)
	CREATE_EFFECT_AT_POS(5,19,154,100)
ENDIF

IF_SLAB_OWNER(5, 44, PLAYER0)
	CHANGE_SLAB_TYPE(5, 44, PATH)
	CHANGE_SLAB_TYPE(5, 45, PATH)
	CHANGE_SLAB_TYPE(5, 46, PATH)
	CHANGE_SLAB_TYPE(6, 44, PATH)
	CHANGE_SLAB_TYPE(6, 45, PATH)
	CHANGE_SLAB_TYPE(6, 46, PATH)
	CREATE_EFFECT_AT_POS(5,16,136,100)
	CREATE_EFFECT_AT_POS(5,19,136,100)
ENDIF

IF_SLAB_OWNER(32, 44, PLAYER0)
	CHANGE_SLAB_TYPE(32, 44, PATH)
	CHANGE_SLAB_TYPE(32, 45, PATH)
	CHANGE_SLAB_TYPE(32, 46, PATH)
	CHANGE_SLAB_TYPE(33, 44, PATH)
	CHANGE_SLAB_TYPE(33, 45, PATH)
	CHANGE_SLAB_TYPE(33, 46, PATH)
	CHANGE_SLAB_TYPE(34, 44, PATH)
	CHANGE_SLAB_TYPE(34, 45, PATH)
	CHANGE_SLAB_TYPE(34, 46, PATH)
	CHANGE_SLAB_TYPE(35, 44, PATH)
	CHANGE_SLAB_TYPE(35, 45, PATH)
	CHANGE_SLAB_TYPE(35, 46, PATH)
	CHANGE_SLAB_TYPE(36, 45, DIRT)
	CHANGE_SLAB_TYPE(36, 46, DIRT)
	CREATE_EFFECT_AT_POS(5,97,136,100)
	CREATE_EFFECT_AT_POS(5,103,136,100)
	CREATE_EFFECT_AT_POS(5,100,139,100)
	CREATE_EFFECT_AT_POS(5,106,139,100)
ENDIF

IF_SLAB_OWNER(12, 38, PLAYER0)
	CHANGE_SLAB_TYPE(12, 38, PATH)
	CHANGE_SLAB_TYPE(13, 38, PATH)
	CHANGE_SLAB_TYPE(14, 38, PATH)
	CHANGE_SLAB_TYPE(12, 37, DIRT)
	CREATE_EFFECT_AT_POS(5,40,115,100)
	CREATE_EFFECT_AT_POS(5,43,115,100)
ENDIF

IF_SLAB_OWNER(26, 38, PLAYER0)
	CHANGE_SLAB_TYPE(24, 38, PATH)
	CHANGE_SLAB_TYPE(25, 38, PATH)
	CHANGE_SLAB_TYPE(26, 38, PATH)
	CHANGE_SLAB_TYPE(26, 37, DIRT)
	CREATE_EFFECT_AT_POS(5,73,115,100)
	CREATE_EFFECT_AT_POS(5,76,115,100)
ENDIF

IF_SLAB_OWNER(25, 88, PLAYER0)
	CHANGE_SLAB_TYPE(24, 85, PATH)
	CHANGE_SLAB_TYPE(24, 86, PATH)
	CHANGE_SLAB_TYPE(24, 87, PATH)
	CHANGE_SLAB_TYPE(24, 88, PATH)
	CHANGE_SLAB_TYPE(25, 85, PATH)
	CHANGE_SLAB_TYPE(25, 86, PATH)
	CHANGE_SLAB_TYPE(25, 87, PATH)
	CHANGE_SLAB_TYPE(25, 88, PATH)
	CREATE_EFFECT_AT_POS(5,76,256,100)
	CREATE_EFFECT_AT_POS(5,73,256,100)
	CREATE_EFFECT_AT_POS(5,76,262,100)
	CREATE_EFFECT_AT_POS(5,73,262,100)
ENDIF

IF_SLAB_OWNER(35, 88, PLAYER0)
	CHANGE_SLAB_TYPE(34, 85, PATH)
	CHANGE_SLAB_TYPE(34, 86, PATH)
	CHANGE_SLAB_TYPE(34, 87, PATH)
	CHANGE_SLAB_TYPE(34, 88, PATH)
	CHANGE_SLAB_TYPE(35, 85, PATH)
	CHANGE_SLAB_TYPE(35, 86, PATH)
	CHANGE_SLAB_TYPE(35, 87, PATH)
	CHANGE_SLAB_TYPE(35, 88, PATH)
	CHANGE_SLAB_TYPE(36, 85, DIRT)
	CHANGE_SLAB_TYPE(36, 86, DIRT)
	CHANGE_SLAB_TYPE(36, 87, DIRT)
	CREATE_EFFECT_AT_POS(5,106,256,100)
	CREATE_EFFECT_AT_POS(5,103,256,100)
	CREATE_EFFECT_AT_POS(5,106,262,100)
	CREATE_EFFECT_AT_POS(5,103,262,100)
ENDIF


IF_SLAB_OWNER(42, 118, PLAYER0)
	CHANGE_SLAB_TYPE(42, 118, PATH)
	CHANGE_SLAB_TYPE(43, 118, PATH)
	CHANGE_SLAB_TYPE(44, 118, PATH)
	CHANGE_SLAB_TYPE(45, 118, PATH)
	CHANGE_SLAB_TYPE(46, 118, PATH)
	CHANGE_SLAB_TYPE(47, 118, PATH)
	CHANGE_SLAB_TYPE(48, 118, PATH)
	CREATE_EFFECT_AT_POS(5,130,355,100)
	CREATE_EFFECT_AT_POS(5,135,355,100)
	CREATE_EFFECT_AT_POS(5,140,355,100)
	CREATE_EFFECT_AT_POS(5,145,355,100)
ENDIF

IF_SLAB_OWNER(52, 111, PLAYER0)
	CHANGE_SLAB_TYPE(52, 111, PATH)
	CHANGE_SLAB_TYPE(52, 110, PATH)
	CHANGE_SLAB_TYPE(52, 109, PATH)
	CHANGE_SLAB_TYPE(52, 108, PATH)
	CHANGE_SLAB_TYPE(52, 107, PATH)
	CHANGE_SLAB_TYPE(52, 106, PATH)
	CREATE_EFFECT_AT_POS(5,157,331,100)
	CREATE_EFFECT_AT_POS(5,157,326,100)
	CREATE_EFFECT_AT_POS(5,157,321,100)
ENDIF

IF_SLAB_OWNER(52, 99, PLAYER0)
	CHANGE_SLAB_TYPE(52, 99, PATH)
	CHANGE_SLAB_TYPE(52, 98, PATH)
	CHANGE_SLAB_TYPE(52, 97, PATH)
	CHANGE_SLAB_TYPE(52, 96, PATH)
	CHANGE_SLAB_TYPE(52, 95, PATH)
	CHANGE_SLAB_TYPE(52, 94, PATH)
	CREATE_EFFECT_AT_POS(5,157,295,100)
	CREATE_EFFECT_AT_POS(5,157,290,100)
	CREATE_EFFECT_AT_POS(5,157,285,100)
ENDIF



REM-ACTIONPOINTS
IF_ACTION_POINT(1,PLAYER0)
	COMPUTER_PLAYER(PLAYER1,0)
	ROOM_AVAILABLE(PLAYER1,TREASURE,1,1)
	ROOM_AVAILABLE(PLAYER1,LAIR,1,1)
	ROOM_AVAILABLE(PLAYER1,GARDEN,1,1)
	ROOM_AVAILABLE(PLAYER1,TRAINING,1,1)
	ROOM_AVAILABLE(PLAYER1,RESEARCH,1,1)
	ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,1)
	ROOM_AVAILABLE(PLAYER1,GUARD_POST,1,1)
	ROOM_AVAILABLE(PLAYER1,PRISON,1,1)
	ROOM_AVAILABLE(PLAYER1,TORTURE,1,1)
	ROOM_AVAILABLE(PLAYER1,BARRACKS,1,1)
	ROOM_AVAILABLE(PLAYER1,GRAVEYARD,1,1)
	ADD_CREATURE_TO_LEVEL(PLAYER1,IMP,13,8,1,0)
	ADD_CREATURE_TO_LEVEL(PLAYER1,GHOST,13,30,2,0)
	ADD_CREATURE_TO_LEVEL(PLAYER1,SKELETON,13,30,2,0)
	QUICK_INFORMATION(10,"Just to let you know, you are not alone here...",ALL_PLAYERS)
ENDIF

IF_ACTION_POINT(2,PLAYER0)
	COMPUTER_PLAYER(PLAYER3,0)
	ROOM_AVAILABLE(PLAYER3,TREASURE,1,1)
	ROOM_AVAILABLE(PLAYER3,LAIR,1,1)
	ROOM_AVAILABLE(PLAYER3,GARDEN,1,1)
	ROOM_AVAILABLE(PLAYER3,TRAINING,1,1)
	ROOM_AVAILABLE(PLAYER3,RESEARCH,1,1)
	ROOM_AVAILABLE(PLAYER3,WORKSHOP,1,1)
	ROOM_AVAILABLE(PLAYER3,GUARD_POST,1,1)
	ROOM_AVAILABLE(PLAYER3,BARRACKS,1,1)
	ROOM_AVAILABLE(PLAYER3,TEMPLE,1,1)
	ADD_CREATURE_TO_LEVEL(PLAYER3,IMP,12,8,1,0)
	ADD_CREATURE_TO_LEVEL(PLAYER3,SORCEROR,12,20,4,0)
	ADD_CREATURE_TO_LEVEL(PLAYER3,BILE_DEMON,12,20,4,0)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,3,5,2,110)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,3,5,2,110)
ENDIF

IF_ACTION_POINT(29,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,5,3,2,120)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DRUID,5,3,2,120)
ENDIF

IF_ACTION_POINT(30,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,6,4,3,130)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,THIEF,6,4,3,130)
ENDIF

IF_ACTION_POINT(31,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,7,5,4,140)
ENDIF

IF_ACTION_POINT(32,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,8,5,4,150)
ENDIF

IF_ACTION_POINT(33,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GIANT,9,4,4,160)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,9,4,4,170)
ENDIF

IF_ACTION_POINT(34,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,10,8,3,180)
ENDIF

IF_ACTION_POINT(35,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,11,6,9,190)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,KNIGHT,11,1,10,2000)
ENDIF

IF_SLAB_OWNER(59, 108, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GIANT,16,5,3,200)
ENDIF

IF_SLAB_OWNER(59, 112, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,17,5,3,210)
ENDIF

IF_SLAB_OWNER(57, 131, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,18,5,3,220)
ENDIF

IF_SLAB_OWNER(47, 130, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WITCH,19,5,3,230)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DRUID,20,5,3,240)
ENDIF

IF_SLAB_OWNER(51, 137, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,21,5,3,250)
ENDIF

IF_SLAB_OWNER(56, 140, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TIME_MAGE,22,5,3,250)
ENDIF

IF_ACTION_POINT(37,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,27,5,3,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,FLY,27,15,2,0)
ENDIF

IF_ACTION_POINT(38,PLAYER0)
	QUICK_INFORMATION(11,"Something big seem to have died here...",ALL_PLAYERS)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,36,3,2,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,36,3,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,FLY,36,10,4,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BUG,36,10,4,0)
ENDIF

IF_ACTION_POINT(39,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,23,3,1,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,23,3,7,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,FLY,23,10,6,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BUG,23,10,6,0)
ENDIF

IF_ACTION_POINT(40,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,24,4,10,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,FLY,24,15,10,0)
ENDIF

IF_ACTION_POINT(41,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,25,3,3,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BILE_DEMON,25,2,8,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,FLY,25,10,7,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,BUG,25,10,7,0)
ENDIF

IF_SLAB_OWNER(55, 160, PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,VAMPIRE,28,5,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,VAMPIRE,28,5,10,0)
ENDIF

IF(PLAYER1,DUNGEON_DESTROYED==1)
	ADD_CREATURE_TO_LEVEL(PLAYER5,MAIDEN,14,3,10,0)
ENDIF

IF(PLAYER3,DUNGEON_DESTROYED==1)
	ADD_CREATURE_TO_LEVEL(PLAYER5,MAIDEN,15,3,10,0)
ENDIF

SET_BOX_TOOLTIP(1,"Rise Training Room Max Level")

IF(PLAYER0,BOX1_ACTIVATED > 0)
	QUICK_MESSAGE(80,"Training room level cap 4",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,4)
ENDIF

IF(PLAYER0,BOX1_ACTIVATED > 1)
	QUICK_MESSAGE(81,"Training room level cap 5",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,5)
ENDIF

IF(PLAYER0,BOX1_ACTIVATED > 2)
	QUICK_MESSAGE(82,"Training room level cap 6",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,6)
ENDIF

IF(PLAYER0,BOX1_ACTIVATED > 3)
	QUICK_MESSAGE(83,"Training room level cap 7",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,7)
ENDIF

IF(PLAYER0,BOX1_ACTIVATED > 4)
	QUICK_MESSAGE(84,"Training room level cap 8",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,8)
ENDIF

IF(PLAYER0,BOX1_ACTIVATED > 5)
	QUICK_MESSAGE(85,"Training room level cap 9",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,9)
ENDIF

IF(PLAYER0,BOX1_ACTIVATED > 6)
	QUICK_MESSAGE(86,"Training room level cap 10",TRAINING)
	SET_GAME_RULE(TrainingRoomMaxLevel,10)
ENDIF

IF_ACTION_POINT(45,PLAYER0)
	QUICK_INFORMATION(12,"The old evil sealed behind this gate is leaking, slowly corrupting this realm. Of course it ends up being your problem to clean things up before you can call yourself the sole ruler of this land. Good luck finding a way to open it.",26)
ENDIF

IF_ACTION_POINT(48,PLAYER0)
	QUICK_INFORMATION(15,"Wierd sounds seep through the rocks, look out for hidden doors.",48)
ENDIF

IF(PLAYER_GOOD,FLAG1 == 1)
	IF_ACTION_POINT(42,PLAYER0)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURE_OWNER(PLAYER0,GHOST,AT_ACTION_POINT[42],PLAYER5)
		NEXT_COMMAND_REUSABLE
		RESET_ACTION_POINT(42)
	ENDIF
ENDIF


IF_SLAB_OWNER(105, 84, PLAYER0)
	CHANGE_SLAB_TYPE(105, 87, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 88, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 89, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 90, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 91, PURPLE_PATH)
	CREATE_EFFECTS_LINE(14, 26, 0, 12, 16, 14)
	ADD_TO_FLAG(PLAYER0,BOX250_ACTIVATED,1)
ENDIF

IF_SLAB_OWNER(105, 100, PLAYER0)
	CHANGE_SLAB_TYPE(105, 97, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 96, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 95, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 94, PURPLE_PATH)
	CHANGE_SLAB_TYPE(105, 93, PURPLE_PATH)
	CREATE_EFFECTS_LINE(15, 26, 0, 12, 16, 14)
	ADD_TO_FLAG(PLAYER0,BOX250_ACTIVATED,1)
ENDIF

SET_BOX_TOOLTIP(3,"OPEN TOMB")

IF(PLAYER0,BOX250_ACTIVATED == 1)
	QUICK_MESSAGE(90,"SEAL 1 BREACHED",SCAVENGER)
ENDIF

IF(PLAYER0,BOX250_ACTIVATED == 2)
	QUICK_MESSAGE(91,"SEAL 2 BREACHED",SCAVENGER)
	ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,26,3,PLAYER0)
	IF(PLAYER0,VIEW_TYPE == 1)
		ZOOM_TO_LOCATION(PLAYER0,26)
	ENDIF
ENDIF

IF(PLAYER0,BOX3_ACTIVATED > 0)
	COMPUTER_PLAYER(PLAYER2,0)
	ADD_GOLD_TO_PLAYER(PLAYER2,5000000)
	MAGIC_AVAILABLE(PLAYER2,POWER_IMP,0,0)
	MAGIC_AVAILABLE(PLAYER2,POWER_CALL_TO_ARMS,0,0)
	ROOM_AVAILABLE(PLAYER2,TREASURE,1,1)
	ROOM_AVAILABLE(PLAYER2,LAIR,1,1)
	ROOM_AVAILABLE(PLAYER2,GARDEN,1,1)
	ROOM_AVAILABLE(PLAYER2,TRAINING,1,1)
	ROOM_AVAILABLE(PLAYER2,RESEARCH,1,1)
	ROOM_AVAILABLE(PLAYER2,WORKSHOP,1,1)
	ROOM_AVAILABLE(PLAYER2,GUARD_POST,1,1)
	ROOM_AVAILABLE(PLAYER2,PRISON,1,1)
	ROOM_AVAILABLE(PLAYER2,TORTURE,1,1)
	ROOM_AVAILABLE(PLAYER2,BARRACKS,1,1)
	ROOM_AVAILABLE(PLAYER2,GRAVEYARD,1,1)
	ROOM_AVAILABLE(PLAYER2,TEMPLE,1,1)
	ADD_CREATURE_TO_LEVEL(PLAYER2,VAMPIRE,43,20,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,HORNY,43,20,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,DARK_MISTRESS,44,20,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,MAIDEN,44,20,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,SKELETON,44,20,5,0)
	SET_CREATURE_CONFIGURATION(HORNY,HurtByLava,2)
	SET_TIMER(PLAYER_GOOD,TIMER1)
	SET_TIMER(PLAYER_GOOD,TIMER2)
	SET_FLAG(PLAYER_GOOD,FLAG1,2)
	QUICK_OBJECTIVE(4,"The last battle awaits, are you prepared keeper?",ALL_PLAYERS)
	IF(PLAYER0,VIEW_TYPE == 1)
		ZOOM_TO_LOCATION(PLAYER0,26)
	ENDIF
ENDIF

IF_ACTION_POINT(47,PLAYER0)
	ADD_CREATURE_TO_LEVEL(PLAYER2,IMP,43,16,3,0)
	MAGIC_AVAILABLE(PLAYER2,POWER_IMP,1,1)
	MAGIC_AVAILABLE(PLAYER2,POWER_CALL_TO_ARMS,1,1)
ENDIF

IF(PLAYER_GOOD,TIMER1 >= 10)
	CREATE_EFFECTS_LINE(45, 42, 0, 48, 2, 53)
ENDIF

IF(PLAYER_GOOD,TIMER1 >= 20)
	CREATE_EFFECTS_LINE(26, 42, 0, 12, 16, 14)
ENDIF

IF(PLAYER_GOOD,TIMER1 >= 30)
	CREATE_EFFECTS_LINE(45, 42, 0, 12, 16, 14)
	CREATE_EFFECTS_LINE(14, 26, 0, 12, 16, 14)
	CREATE_EFFECTS_LINE(15, 26, 0, 12, 16, 14)
	CHANGE_SLAB_TYPE(110, 92, PATH)
ENDIF

IF(PLAYER_GOOD,TIMER1 >= 40)
	CREATE_EFFECTS_LINE(42, 45, 0, 48, 2, 53)
	CREATE_EFFECTS_LINE(26, 14, 0, 12, 16, 14)
	CREATE_EFFECTS_LINE(26, 15, 0, 12, 16, 14)
	CREATE_EFFECT(48,26)
	PLAY_MESSAGE(PLAYER0,SOUND,824)
	ADD_CREATURE_TO_LEVEL(PLAYER5,HORNY,46,5,5,0)
	ADD_CREATURE_TO_LEVEL(PLAYER5,HORNY,46,5,10,0)
ENDIF

IF(PLAYER_GOOD,TIMER1 >= 1000)
	IF_CONTROLS(PLAYER2,TOTAL_CREATURES <= 20)
		ADD_CREATURE_TO_LEVEL(PLAYER2,HORNY,43,10,10,0)
		ADD_CREATURE_TO_LEVEL(PLAYER2,MAIDEN,44,10,10,0)
	ENDIF
ENDIF

IF(PLAYER_GOOD,TIMER2 >= 1000)
 	NEXT_COMMAND_REUSABLE
	CHANGE_CREATURES_ANNOYANCE(PLAYER2,HORNY,SET,0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER_GOOD,TIMER2)
ENDIF

IF(PLAYER_GOOD,FLAG1 == 2)
	IF(PLAYER2,DUNGEON_DESTROYED==1)
		WIN_GAME
	ENDIF
ENDIF



REM -- Tempfix by DamoDurryKing/PlebCrusher. No other changes made in the map or script. Feel free to implement your own solution whenever you notice this.
REM -- If player digs out dirt tiles at slabs [38,97] to [38,99], they will be unable to dig through the fortified wall as path tiles count as owned by Player Neutral, and the fortified walls will not change to dirt.
REM -- This checks if the tile on the left is player-owned, the tile in the middle is fortified wall, and the tile on the right is path, then swap to dirt. Player won't notice the discrepancy.

IF_SLAB_OWNER(36,97,PLAYER0)
	IF_SLAB_TYPE(37,97,DRAPE_WALL)
		IF_SLAB_TYPE(38,97,PATH)
			CHANGE_SLAB_TYPE(37,97,DIRT,NONE)
		ENDIF
	ENDIF
ENDIF
IF_SLAB_OWNER(36,98,PLAYER0)
	IF_SLAB_TYPE(37,98,WOMAN_WALL)
		IF_SLAB_TYPE(38,98,PATH)
			CHANGE_SLAB_TYPE(37,98,DIRT,NONE)
		ENDIF
	ENDIF
ENDIF
IF_SLAB_OWNER(36,99,PLAYER0)
	IF_SLAB_TYPE(37,99,DRAPE_WALL)
		IF_SLAB_TYPE(38,99,PATH)
			CHANGE_SLAB_TYPE(37,99,DIRT,NONE)
		ENDIF
	ENDIF
ENDIF