LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(PLAYER0,10000)
START_MONEY(PLAYER2,50000)
START_MONEY(PLAYER4,50000)
MAX_CREATURES(PLAYER0,1)
MAX_CREATURES(PLAYER2,30)
MAX_CREATURES(PLAYER4,40)

COMPUTER_PLAYER(PLAYER2,0)
COMPUTER_PLAYER(PLAYER4,0)
ALLY_PLAYERS(PLAYER2,PLAYER4,3)

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

CREATURE_AVAILABLE(PLAYER2,FLY,1,0)
CREATURE_AVAILABLE(PLAYER2,BUG,1,0)
CREATURE_AVAILABLE(PLAYER2,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(PLAYER2,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER2,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER2,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER2,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER2,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER2,ORC,1,0)
CREATURE_AVAILABLE(PLAYER2,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER2,DARK_MISTRESS,1,0)

CREATURE_AVAILABLE(PLAYER4,DARK_MISTRESS,1,0)


REM --------------------------- Room All Players

ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,0)

REM --------------------------- Room 0 Player

ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0)

REM --------------------------- Room Player 2

ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)

REM --------------------------- Room Player 4	

ROOM_AVAILABLE(PLAYER4,LAIR,0,0)

REM --------------------------- Magic

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)
rem MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
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)

REM --------------------------- Trap

TRAP_AVAILABLE(PLAYER0,BOULDER,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)

QUICK_OBJECTIVE(0,"LOGRAS: What? You expected battle robes? Please. Even apocalypses demand dress code.",PLAYER0)
SET_TIMER(PLAYER0,TIMER0)
IF(PLAYER0,TIMER0 >= 200)
	QUICK_OBJECTIVE(1,"COBALD: Logras, it suits you.",PLAYER0)
ENDIF

SET_TIMER(PLAYER0,TIMER1)
IF(PLAYER0,TIMER1 >= 400)
	QUICK_OBJECTIVE(2,"SHIMMER: These lands have drunk deep of suffering...",PLAYER0)
ENDIF

REM ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_01,-1,DUNGEON_HEART,DUNGEON,6,160)

REM --------------------------- Hero party

REM --------------------------- Party 01 - start 

CREATE_PARTY(HEROES_01)
ADD_TO_PARTY(HEROES_01,FAIRY,10,2000,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_01,FAIRY,10,2000,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_01,FAIRY,10,2000,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_01,FAIRY,10,2000,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_01,FAIRY,10,2000,ATTACK_DUNGEON_HEART,0)

REM --------------------------- Party 02

CREATE_PARTY(HEROES_02)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(HEROES_02,SAMURAI,10,200,ATTACK_DUNGEON_HEART,0)

REM --------------------------- Party 03

CREATE_PARTY(HEROES_03)
ADD_TO_PARTY(HEROES_03,KNIGHT,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(HEROES_03,KNIGHT,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(HEROES_03,KNIGHT,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(HEROES_03,KNIGHT,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(HEROES_03,KNIGHT,10,200,ATTACK_ENEMIES,0)

REM --------------------------- Main stream

IF_ACTION_POINT(10,PLAYER0)
	REVEAL_MAP_RECT(PLAYER0,236,414,160,100)
ENDIF

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

IF(PLAYER0,PRISON >= 1)
	ROOM_AVAILABLE(PLAYER0,PRISON,1,1)
	QUICK_OBJECTIVE(3,"SHIMMER: The prison! That's the key to defeating Moths!",PLAYER0)
ENDIF

REM --------------------------- Hero attack 01

IF_ACTION_POINT(11,PLAYER0)
	SET_TIMER(PLAYER0,TIMER2)
	IF(PLAYER0,TIMER2 >= 3600)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_01,-1,5)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_01,-2,5)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_01,-3,5)
		QUICK_OBJECTIVE(4,"LOGRAS: The Moth paid these fairies handsomely for our heads? Then we'll reclaim his gold - with interest!",PLAYER0)
	ENDIF
ENDIF

IF_ACTION_POINT(13,PLAYER0)
	CHANGE_SLAB_TYPE(73,122,PATH)
	CHANGE_SLAB_TYPE(90,125,PATH)
	CHANGE_SLAB_TYPE(110,137,PATH)
	ENDIF
ENDIF

REM --------------------------- Temple

IF(PLAYER0,TEMPLE >= 1)
	ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,1)
	QUICK_OBJECTIVE(5,"LOGRAS: Ruins of the old temple... I believe they may serve our purpose.",PLAYER0)
ENDIF


REM --------------------------- Hero attack 02

IF_ACTION_POINT(12,PLAYER0)
	SET_TIMER(PLAYER0,TIMER3)
	IF(PLAYER0,TIMER3 >= 1)
rem 		REVEAL_MAP_RECT(PLAYER0,115,292,120,62)
		REVEAL_MAP_RECT(PLAYER0,236,337,20,20)
		REVEAL_MAP_RECT(PLAYER0,205,310,10,10)
		CHANGE_SLAB_OWNER(68,103,PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_02,-4,1)
	ENDIF
ENDIF

IF(PLAYER2,DUNGEON_DESTROYED == 1)
	CHANGE_SLAB_TYPE(79,104,PATH)
	MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,0)
	MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0)
	TRAP_AVAILABLE(PLAYER0,BOULDER,0,0)
	DOOR_AVAILABLE(ALL_PLAYERS,STEEL,0,0)
	QUICK_OBJECTIVE(6,"LOGRAS: Molly's magic destroyed our workshop. But his lackey graciously provided compensation.",PLAYER0)

ENDIF

REM --------------------------- Azagloth reborning

IF_ACTION_POINT(5,PLAYER0)
	QUICK_OBJECTIVE(7,"AZAGLOTH: The Cave of Heroes! Where warriors forge their second fate! I will face its trials!",PLAYER0)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
	KILL_CREATURE(PLAYER0,KNIGHT,ANYWHERE,1)
	SET_TIMER(PLAYER0,TIMER4)
	IF(PLAYER0,TIMER4 >= 200)		
		ADD_CREATURE_TO_LEVEL(PLAYER0,AVATAR,3,1,5,200)
	ENDIF
	QUICK_OBJECTIVE(8,"AVATAR: By the Divine Forge - the gods have recast me! This flesh thrums with their wrath! Tremble, necromancer!",PLAYER0)
ENDIF

REM --------------------------- Knights

IF_ACTION_POINT(1,PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_03,-5,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_03,-6,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_03,-7,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_03,-8,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES_03,-9,1)
ENDIF

REM --------------------------- BOSS

IF_ACTION_POINT(2,PLAYER0)
	QUICK_OBJECTIVE(9,"LOGRAS: The Moth cowers behind this door! Then forward, my friends!",PLAYER0)
ENDIF

SET_CREATURE_HEALTH(VAMPIRE,7800)
IF_ACTION_POINT(4,PLAYER0)
	QUICK_OBJECTIVE(10,"MOTH: Wretched vermin! You'll choke on your regrets before this night ends!",PLAYER0)
	SET_TIMER(PLAYER0,TIMER5)
	IF(PLAYER0,TIMER5 >= 200)		
		CHANGE_SLAB_TYPE(32,7,LAVA)
		CHANGE_SLAB_TYPE(32,8,LAVA)
		CHANGE_SLAB_TYPE(33,8,LAVA)
		CHANGE_SLAB_TYPE(33,9,LAVA)
		CHANGE_SLAB_TYPE(34,9,LAVA)
		CHANGE_SLAB_TYPE(34,10,LAVA)
		CHANGE_SLAB_TYPE(35,10,LAVA)
		CHANGE_SLAB_TYPE(33,11,LAVA)
		CHANGE_SLAB_TYPE(34,11,LAVA)
		CHANGE_SLAB_TYPE(33,12,LAVA)
		CHANGE_SLAB_TYPE(32,12,LAVA)
		CHANGE_SLAB_TYPE(32,13,LAVA)
	ENDIF
ENDIF

REM --------------------------- Logras dead and win

IF(PLAYER0,TIME_MAGE < 1)
	QUICK_OBJECTIVE(100,"Oh no! My mission!..",PLAYER0)
	LOSE_GAME
ENDIF

IF(PLAYER0,FAIRY >= 1)
	QUICK_OBJECTIVE(102,"ISOLDE: Oh, my saviors! That disgusting sorcerer kept me locked up!",PLAYER0)
	SET_TIMER(PLAYER0,TIMER6)
	IF(PLAYER0,TIMER6 >= 100)
		QUICK_OBJECTIVE(103,"LOGRAS: You're free now!",PLAYER0)
       	ENDIF
	IF(PLAYER0,TIMER6 >= 200)
		QUICK_OBJECTIVE(104,"ISOLDE: I'm so glad! Now I'm going to get even with everyone...",PLAYER0)
	ENDIF
	IF(PLAYER0,TIMER6 >= 300)
		QUICK_OBJECTIVE(105,"LOGRAS: What?",PLAYER0)
	ENDIF
	IF(PLAYER0,TIMER6 >= 400)
		QUICK_OBJECTIVE(106,"ISOLDE: No, no, it's okay!",PLAYER0)
	ENDIF
ENDIF

IF(PLAYER_GOOD,VAMPIRE == 0)
	QUICK_OBJECTIVE(101,"LOGRAS: The necromancer is no more! Let's end this journey with style!",PLAYER0)
	IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
		QUICK_OBJECTIVE(110,"LOGRAS: A victory worthy of legends! Let us return home - I can already hear the bards butchering our names in epic verses! Our deeds shall echo in every tavern! Assuming the drunks remember them correctly ;)",PLAYER0)
		WIN_GAME
       	ENDIF
ENDIF