REM ********************************************
REM
REM             Script for Level 777
REM
REM ********************************************

LEVEL_VERSION(1)

SET_GENERATE_SPEED(400)

COMPUTER_PLAYER(PLAYER1,0)

START_MONEY(ALL_PLAYERS,10000)

ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(DARK_KNIGHT,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(BUG,20)

CREATURE_AVAILABLE(ALL_PLAYERS, TROLL, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, SPIDER, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, DARK_MISTRESS, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, SORCEROR, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, BILE_DEMON, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, DARK_KNIGHT, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, DRAGON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS, ORC,1,0)
CREATURE_AVAILABLE(PLAYER0, BUG,1,0)

ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,1)
ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,0)


CREATE_PARTY(PRINCE1)
ADD_TO_PARTY(PRINCE1, KNIGHT, 6, 30, DEFEND_ROOMS, 0)
ADD_TO_PARTY(PRINCE1, GIANT, 6, 30, DEFEND_PARTY, 0)
ADD_TO_PARTY(PRINCE1, WIZARD, 6, 30, DEFEND_PARTY, 0)
ADD_TO_PARTY(PRINCE1, ARCHER, 7, 30, DEFEND_PARTY, 0)

CREATE_PARTY(PRINCE2)
ADD_TO_PARTY(PRINCE2, KNIGHT, 10, 30, DEFEND_ROOMS, 0)
ADD_TO_PARTY(PRINCE2, GIANT, 10, 30, DEFEND_PARTY, 0)
ADD_TO_PARTY(PRINCE2, WIZARD, 10, 30, DEFEND_PARTY, 0)
ADD_TO_PARTY(PRINCE2, ARCHER, 10, 30, DEFEND_PARTY, 0)

SET_GAME_RULE(TortureConvertChance,100)

CONCEAL_MAP_RECT(Player0, 58,254,200,500,1)

CONCEAL_MAP_RECT(Player0, 58,54,200,500,1)

CONCEAL_MAP_RECT(Player0, 58,454,200,500,1)

SET_GAME_RULE(MaxThingsInHand,60)

SET_GAME_RULE(ImpWorkExperience,124)

SET_GAME_RULE(TrainingRoomMaxLevel,4)

REVEAL_MAP_LOCATION(PLAYER0,1,2)
REVEAL_MAP_LOCATION(PLAYER0,2,2)
REVEAL_MAP_LOCATION(PLAYER0,3,6)
REVEAL_MAP_LOCATION(PLAYER0,4,6)


IF(PLAYER0, BARRACKS >= 22)
	SET_GAME_RULE(TrainingRoomMaxLevel,6)
	QUICK_INFORMATION(10,"Ahh, the Barracks. You can now train all your creatures up to level 6.",All_PLAYERS)
ENDIF

IF(PLAYER0, BARRACKS >= 44)
	SET_GAME_RULE(TrainingRoomMaxLevel,8)
	QUICK_INFORMATION(11,"You can now train all your creatures up to level 8.",All_PLAYERS)
ENDIF

QUICK_OBJECTIVE(0,"Hello Guardian, King Wilhelm and his 4 sons, Princes Edmund, Alfred, Edgar, and Henry, are in charge of this realm. Our goal is to push his sons to the point of desperation and persuade them to fight on our side, so we can overthrow King Wilhelm's oppressive reign. However, be fast to kill and imprison them, as they will flee to a portal and we will be defeated if they escape. Asmodeus, another guardian, is also hiding somewhere nearby. The time has come to bring an end to all of this.",All_PLAYERS)

SET_TIMER(PLAYER3, TIMER1)

IF(PLAYER3, TIMER1 >= 400)
QUICK_INFORMATION(13,"All 4 princes have appeared and have spoken; let them eat their own bullshit.",All_PLAYERS)
ENDIF

IF(PLAYER3, TIMER1 >= 1500)
QUICK_INFORMATION(8,"Avoid going too far north, there are extremely strong enemies there. Seek out the enchanted chamber to elevate your creatures' training beyond level 4. You need 40 Tiles of Barracks to be able to train your Creatures up to level 8.",All_PLAYERS)
ENDIF

IF(PLAYER3, TIMER1 >= 1000)
QUICK_INFORMATION(17,"You can attract a strong Dark Knight in this Realm, he wants at least 9 tiles of the temple to join your dungeon.",All_PLAYERS)
ENDIF

if(player0,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player0,15)
ENDIF
if(player0,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player0,20)
ENDIF
if(player0,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player0,25)
ENDIF
if(player0,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player0,30)
ENDIF

if(player1,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player0,15)
ENDIF
if(player1,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player0,20)
ENDIF
if(player1,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player0,25)
ENDIF
if(player1,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player0,30)
ENDIF


REM timer for princes enter
SET_TIMER(PLAYER0, TIMER0)
IF(PLAYER0, TIMER0 >= 100)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PRINCE1, 9,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PRINCE1, 10,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PRINCE2, 7,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PRINCE2, 8,1)

ENDIF

IF_ACTION_POINT(11,PLAYER0)

	CHANGE_SLAB_TYPE(10,111,PRETTY_PATH)
	CHANGE_SLAB_TYPE(9,111,PRETTY_PATH)
	CHANGE_SLAB_TYPE(9,110,PRETTY_PATH)

ENDIF

IF_ACTION_POINT(12,PLAYER0)

	CHANGE_SLAB_TYPE(29,111,PRETTY_PATH)
	CHANGE_SLAB_TYPE(30,111,PRETTY_PATH)
	CHANGE_SLAB_TYPE(30,110,PRETTY_PATH)

ENDIF

IF_ACTION_POINT(15,PLAYER0)

	CHANGE_SLAB_TYPE(2,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(2,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(3,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(3,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(4,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(4,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(5,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(5,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(6,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(6,12,PRETTY_PATH)

ENDIF

IF_ACTION_POINT(16,PLAYER0)

	CHANGE_SLAB_TYPE(2,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(2,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(3,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(3,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(4,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(4,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(5,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(5,12,PRETTY_PATH)
	CHANGE_SLAB_TYPE(6,11,PRETTY_PATH)
	CHANGE_SLAB_TYPE(6,12,PRETTY_PATH)

ENDIF

IF_ACTION_POINT(13,PLAYER0)
SET_FLAG(PLAYER1,FLAG5,1)
ENDIF

IF_ACTION_POINT(14,PLAYER0)
SET_FLAG(PLAYER1,FLAG5,1)
ENDIF

IF(PLAYER1,FLAG5 == 1)

	CHANGE_SLAB_TYPE(18,25,PRETTY_PATH)
	CHANGE_SLAB_TYPE(18,26,PRETTY_PATH)
	CHANGE_SLAB_TYPE(18,27,PRETTY_PATH)

	CHANGE_SLAB_TYPE(19,25,PRETTY_PATH)
	CHANGE_SLAB_TYPE(20,25,PRETTY_PATH)
	CHANGE_SLAB_TYPE(20,26,PRETTY_PATH)

	CHANGE_SLAB_TYPE(20,27,PRETTY_PATH)
	CHANGE_SLAB_TYPE(19,27,PRETTY_PATH)

ENDIF

IF_ACTION_POINT(5, PLAYER_GOOD)
	SET_FLAG(PLAYER2,FLAG2,1)
	QUICK_OBJECTIVE(15,"One of the princes managed to escape through a Hero Gate, we can no longer succeed..",All_PLAYERS)
ENDIF

IF_ACTION_POINT(6, PLAYER_GOOD)
	SET_FLAG(PLAYER2,FLAG2,1)
		QUICK_OBJECTIVE(16,"One of the princes managed to escape through a Hero Gate, we can no longer succeed..",All_PLAYERS)
ENDIF

IF_ACTION_POINT(17, PLAYER_GOOD)
	SET_FLAG(PLAYER2,FLAG2,1)
		QUICK_OBJECTIVE(19,"One of the princes managed to escape through a Hero Gate, we can no longer succeed..",All_PLAYERS)
ENDIF


IF(PLAYER0, KNIGHT == 1)
QUICK_OBJECTIVE(1,"You have convinced the first prince, Edgar, to join us.",All_PLAYERS)
ENDIF

IF(PLAYER0, KNIGHT == 2)
QUICK_OBJECTIVE(2,"Good job. Edmund has joined us too, he whispers in your ear that all the Princes together know the Secret to train all your creatures up to level 10 .",All_PLAYERS)
ENDIF

IF(PLAYER0, KNIGHT == 3)
QUICK_OBJECTIVE(3,"Good news from the torture chamber, Alfred's pride is shattered.",All_PLAYERS)
ENDIF

IF(PLAYER0, KNIGHT == 4)
QUICK_OBJECTIVE(4,"It's done. Henry no longer has any attachment to his father. Let's make him feel our wrath.",All_PLAYERS)
QUICK_INFORMATION(9,"They revealed their Secret, you can now train all your creatures up to level 10.",All_PLAYERS)
SET_GAME_RULE(TrainingRoomMaxLevel,10)
ENDIF

IF(PLAYER1, DUNGEON_DESTROYED == 1)
QUICK_INFORMATION(5,"Asmodeus lies in his Blood, so carry on the good work.",All_PLAYERS)
ENDIF

IF(PLAYER_GOOD, KNIGHT == 0)
	IF(PLAYER0, KNIGHT == 4)
		IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
			WIN_GAME
			QUICK_OBJECTIVE(6,"It's done. Excellent work my Master. This is our Realm now.",All_PLAYERS)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_GOOD, KNIGHT == 3)
	IF(PLAYER0, KNIGHT == 0)
	SET_FLAG(PLAYER2,FLAG2,1)
		QUICK_OBJECTIVE(22,"Failed. A Prince died, we lost.",All_PLAYERS)
	ENDIF
ENDIF

IF(PLAYER_GOOD, KNIGHT == 2)
	IF(PLAYER0, KNIGHT == 1)
	SET_FLAG(PLAYER2,FLAG2,1)
		QUICK_OBJECTIVE(22,"Failed. A Prince died, we lost.",All_PLAYERS)
	ENDIF
ENDIF

IF(PLAYER_GOOD, KNIGHT == 1)
	IF(PLAYER0, KNIGHT == 2)
	SET_FLAG(PLAYER2,FLAG2,1)
		QUICK_OBJECTIVE(22,"Failed. A Prince died, we lost.",All_PLAYERS)
	ENDIF
ENDIF

IF(PLAYER2,FLAG2 == 1)
	LOSE_GAME
ENDIF

IF(PLAYER_GOOD, KNIGHT == 0)
	IF(PLAYER0, KNIGHT <= 3)
		IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
			QUICK_OBJECTIVE(7,"What have you done ? don't let the Princes die.",All_PLAYERS)
			LOSE_GAME
		ENDIF
	ENDIF
ENDIF