rem		LEVELPACK				rem
rem		Undivine Dungeon 1.34	rem
rem		01, MOUNTAINCAL			rem
rem		by Shinthoras0815		rem

LEVEL_VERSION(1)
SET_GENERATE_SPEED(625)
MAX_CREATURES(PLAYER0,24)
MAX_CREATURES(PLAYER1,31)

START_MONEY(PLAYER0,0)
START_MONEY(PLAYER1,3000000)
START_MONEY(PLAYER3,0)

COMPUTER_PLAYER(PLAYER1,0)
COMPUTER_PLAYER(PLAYER3,9)
ALLY_PLAYERS(PLAYER0,PLAYER3,1)

CREATURE_ENTRANCE_LEVEL (PLAYER1, 2)

SET_GAME_RULE(BodyRemainsFor,1000)

SET_COMPUTER_EVENT(​PLAYER1,​"EVENT MOANING PRISONER",​100,​2,​9​,5,​0)
SET_COMPUTER_EVENT(​PLAYER1,​"EVENT ENEMY DOOR",​40,5,​2500,​2​,0)

ADD_CREATURE_TO_POOL(SORCEROR,5)
ADD_CREATURE_TO_POOL(BILE_DEMON,10)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,15)
ADD_CREATURE_TO_POOL(TROLL,15)
ADD_CREATURE_TO_POOL(TUNNELLER,15)
ADD_CREATURE_TO_POOL(SPIDER,15)
ADD_CREATURE_TO_POOL(ORC,15)
ADD_CREATURE_TO_POOL(DRAGON,15)
ADD_CREATURE_TO_POOL(VAMPIRE,1)
ADD_CREATURE_TO_POOL(TENTACLE,15)
ADD_CREATURE_TO_POOL(HELL_HOUND,15)
ADD_CREATURE_TO_POOL(DEMONSPAWN,5)
ADD_CREATURE_TO_POOL(Fly,5)

CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER0,TUNNELLER,1,1)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1)
CREATURE_AVAILABLE(PLAYER1,VAMPIRE,1,1)
CREATURE_AVAILABLE(PLAYER1,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,1)
CREATURE_AVAILABLE(PLAYER1,Fly,1,0)
SET_CREATURE_MAX_LEVEL(​ALL_PLAYERS,FLOATING_SPIRIT,​9)
SET_CREATURE_MAX_LEVEL(​PLAYER1,​DEMONSPAWN,​10)

ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER1,BARRACKS,2,0)
ROOM_AVAILABLE(PLAYER1,GUARD_POST,2,0)
ROOM_AVAILABLE(PLAYER1,TORTURE,2,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,0,0)
ROOM_AVAILABLE(PLAYER1,BRIDGE,2,0)
ROOM_AVAILABLE(PLAYER1,WORKSHOP,2,0)
ROOM_AVAILABLE(PLAYER1,PRISON,2,0)

ROOM_AVAILABLE(PLAYER0,BARRACKS,3,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,3,0)
ROOM_AVAILABLE(PLAYER0,TORTURE,3,0)
ROOM_AVAILABLE(PLAYER0,TEMPLE,3,0)
ROOM_AVAILABLE(PLAYER0,BRIDGE,3,0)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,3,0)
ROOM_AVAILABLE(PLAYER0,PRISON,3,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)

MAGIC_AVAILABLE(PLAYER1,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE,0,0)
MAGIC_AVAILABLE(PLAYER1,POWER_PROTECT,0,0)
MAGIC_AVAILABLE(PLAYER1,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_HAND,0,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,0,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,1,1)

IF(PLAYER0,FLAG1 == 0)
NEXT_COMMAND_REUSABLE
MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,0,0)
NEXT_COMMAND_REUSABLE
MAGIC_AVAILABLE(PLAYER0,POWER_DESTROY_WALLs,0,0)
ENDIF


TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,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(Pinata)
	ADD_TO_PARTY(Pinata,FAIRY,5,1500,DEFEND_LOCATION,0)
	ADD_TO_PARTY(Pinata,FAIRY,5,750,DEFEND_LOCATION,0)
	ADD_TO_PARTY(Pinata,FAIRY,5,750,DEFEND_LOCATION,0)
	ADD_TO_PARTY(Pinata,FAIRY,3,500,DEFEND_LOCATION,0)
	ADD_TO_PARTY(Pinata,FAIRY,3,500,DEFEND_LOCATION,0)

CREATE_PARTY(Cake)
	ADD_TO_PARTY(Cake,SAMURAI,7,2500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake,GIANT,6,2000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake,GIANT,6,2500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake,BARBARIAN,6,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake,BARBARIAN,6,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake,KNIGHT,8,750,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake,DWARFA,5,500,ATTACK_ENEMIES,0)

CREATE_PARTY(Cake2)
	ADD_TO_PARTY(Cake2,SAMURAI,10,2500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,GIANT,10,2000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,GIANT,10,2500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,BARBARIAN,10,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,BARBARIAN,10,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,KNIGHT,10,750,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,DWARFA,10,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Cake2,WIZARD,10,500,ATTACK_ENEMIES,0)

CREATE_PARTY(Fireworks)
	ADD_TO_PARTY(Fireworks,WIZARD,6,100,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Fireworks,WIZARD,6,100,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Fireworks,MONK,7,100,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Fireworks,WITCH,6,100,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Fireworks,MONK,6,100,ATTACK_DUNGEON_HEART,0)


CREATE_PARTY(PartyHard)
	ADD_TO_PARTY(PartyHard,KNIGHT,10,100,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(PartyHard,SAMURAI,7,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(PartyHard,THIEF,6,100,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(PartyHard,DWARFA,6,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(PartyHard,ARCHER,6,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(PartyHard,WITCH,6,500,ATTACK_ENEMIES,0)

CREATE_PARTY(Attack)
	ADD_TO_PARTY(Attack,DWARFA,6,0,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Attack,DWARFA,6,0,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Attack,DWARFA,6,0,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(Attack,DWARFA,6,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(Attack2)
	ADD_TO_PARTY(Attack2,DWARFA,5,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Attack2,FAIRY,5,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(Attack2,THIEF,5,250,STEAL_SPELLS,0)
	ADD_TO_PARTY(Attack2,THIEF,5,250,STEAL_GOLD,0)
	
CREATE_PARTY(SteahltGold)
	ADD_TO_PARTY(SteahltGold,THIEF,8,0,STEAL_GOLD,0)
	ADD_TO_PARTY(SteahltGold,THIEF,8,0,STEAL_GOLD,0)

CREATE_PARTY(SteahltSpell)
	ADD_TO_PARTY(SteahltSpell,THIEF,8,0,STEAL_SPELLS,0)
	ADD_TO_PARTY(SteahltSpell,THIEF,8,0,STEAL_SPELLS,0)

CREATE_PARTY(Explorer)
	ADD_TO_PARTY(Explorer,IMP,1,0,DEFEND_LOCATION,0)

CREATE_PARTY(NewBegin)
	ADD_TO_PARTY(NewBegin,IMP,10,0,DEFEND_LOCATION,0)

CREATE_PARTY(Wisp)
	ADD_TO_PARTY(Wisp,FLOATING_SPIRIT,1,0,DEFEND_LOCATION,0)

rem "hide player heart on the beginning"
CONCEAL_MAP_RECT(Player0, 54,30, 30, 30, 0)
CONCEAL_MAP_RECT(Player0, 223,55, 12, 12, 1)
rem "start message"
DISPLAY_OBJECTIVE(​22,​PLAYER3)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Pinata,6,1)

rem" Speed on Ai"

SET_TIMER(PLAYER1,TIMER0)
 IF(PLAYER1,TIMER0 >= 15000)
	IF(PLAYER1,FLAG1 == 0)
		COMPUTER_DIG_TO_LOCATION(PLAYER1,PLAYER1,8)
	ENDIF
ENDIF

rem "if player reach hero heart, spawn Lord of the Land Party"
rem "do the same if computer reach the heart"

IF(PLAYER_GOOD,DUNGEON_DESTROYED == 0)
	IF_ACTION_POINT(3,PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SteahltSpell,3,1)
	ENDIF

	IF_ACTION_POINT(5,PLAYER0)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Pinata,-2,1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Cake2,-3,1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Fireworks,-1,1)
	ENDIF

	IF_ACTION_POINT(3,PLAYER1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SteahltSpell,3,1)
ENDIF

	IF_ACTION_POINT(5,PLAYER1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Pinata,-2,1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Cake2,-3,1)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Fireworks,-1,1)
	ENDIF
ENDIF

rem "If Player found tunnel to old dungeon then show message, set claimed floor behind the tunnel and reveal the tunnel on map"
IF_SLAB_OWNER(​ 18, ​43, PLAYER0)
	IF(PLAYER1,FLAG2 == 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1,FLAG2,1)
	NEXT_COMMAND_REUSABLE
	CHANGE_SLAB_OWNER(18,​ 48,​ PLAYER0)
	ENDIF
	ADD_PARTY_TO_LEVEL(PLAYER0,Explorer,10,1)
	PLAY_MESSAGE(PLAYER0,SOUND,777)
	DISPLAY_INFORMATION(7 ,10)
	REVEAL_MAP_LOCATION(PLAYER0,10,9)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER2,FLAG2,0)
ENDIF
IF_SLAB_OWNER(​ 18, ​48, PLAYER0)
	IF(PLAYER3,FLAG1 == 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER3,FLAG1,1)
	NEXT_COMMAND_REUSABLE
	CHANGE_SLAB_OWNER(18,​ 43,​ PLAYER0)
	ENDIF
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER3,FLAG2,0)
ENDIF

IF_SLAB_OWNER(​ 18, ​48, PLAYER1)
	IF(PLAYER2,FLAG2 == 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER2,FLAG2,1)
	NEXT_COMMAND_REUSABLE
	CHANGE_SLAB_OWNER(18, ​43,​ PLAYER1)
	ENDIF
	ADD_PARTY_TO_LEVEL(PLAYER1,Explorer,10,1)
	CHANGE_SLAB_TYPE(18,49,PATH)
	PLAY_MESSAGE(PLAYER0,SOUND,785)
	DISPLAY_INFORMATION(23 ,10)
	REVEAL_MAP_LOCATION(PLAYER0,10,9)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1,FLAG2,0)
ENDIF
IF_SLAB_OWNER(​ 18, ​43, PLAYER1)
	IF(PLAYER3,FLAG2 == 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER3,FLAG2,1)
	NEXT_COMMAND_REUSABLE
	CHANGE_SLAB_OWNER(18, ​48,​ PLAYER1)
	ENDIF
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER3,FLAG1,0)
ENDIF
rem "Computer is heavily weakend if PLAYER0 reach the old dungeon"
IF(PLAYER0, ENTRANCE >= 10)
NEXT_COMMAND_REUSABLE
MAX_CREATURES(PLAYER0,34)
ENDIF
IF(PLAYER0, ENTRANCE <= 9)
NEXT_COMMAND_REUSABLE
MAX_CREATURES(PLAYER0,24)
ENDIF

IF(PLAYER0,FLAG1 == 1)
IF_SLAB_OWNER(7, 78, PLAYER0)
	CHANGE_SLAB_TYPE(10,76, PRETTY_PATH)
	ADD_GOLD_TO_PLAYER(PLAYER1, -5000000)
	CREATURE_ENTRANCE_LEVEL (PLAYER1, 1)
	KILL_CREATURE(PLAYER1,​IMP,ANYWHERE,​50)
	MAGIC_AVAILABLE(PLAYER1,POWER_IMP,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_SLAP,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_CHICKEN,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_DISEASE,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_LIGHTNING,0,0)
	ROOM_AVAILABLE(PLAYER1, BRIDGE,0,0)
	SET_TIMER(PLAYER1, TIMER6)
	MAX_CREATURES(PLAYER1,16)
	KILL_CREATURE(PLAYER1,DARK_MISTRESS,MOST_EXPERIENCED,2)
	KILL_CREATURE(PLAYER1,BILE_DEMON,MOST_EXPERIENCED,1)
	KILL_CREATURE(PLAYER1,ORC,MOST_EXPERIENCED,1)
	KILL_CREATURE(PLAYER1,DRAGON,MOST_EXPERIENCED,2)
	CREATURE_AVAILABLE(PLAYER1,VAMPIRE,0,0)
ENDIF
IF_SLAB_OWNER(7, 78, PLAYER_NEUTRAL)
IF_CONTROLS(PLAYER1,Fly == 0)
NEXT_COMMAND_REUSABLE
ADD_CREATURE_TO_LEVEL(​PLAYER1,FLY,​PLAYER1,1,​5,​0)
ENDIF
ENDIF
ENDIF

rem "IMP respawn for computer"
IF_SLAB_OWNER(7, 78, PLAYER0)
IF(PLAYER1,IMP < 5)
	IF(PLAYER1,TIMER6 >= 1000)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(​PLAYER1,IMP,​PLAYER1,1,​3,​0)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(​PLAYER1,IMP,​PLAYER1,1,​1,​0)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER1, TIMER6)
	ENDIF
ENDIF	
ENDIF
rem "Wisp respawn for player with effect and first time message"

IF(PLAYER0,FLAG1 == 1)
IF(PLAYER0,FLOATING_SPIRIT == 0)
	IF(PLAYER1,FLAG0 == 0)
	NEXT_COMMAND_REUSABLE
	PLAY_MESSAGE(PLAYER0,SOUND,778)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1, FLAG0, 1)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER2, TIMER0)
	ENDIF
		IF(PLAYER2,TIMER0 >=300)
			IF(PLAYER1,FLAG0 == 1)
			NEXT_COMMAND_REUSABLE
			CREATE_EFFECTS_LINE(PLAYER0,PLAYER0,0, 0, 0, 48)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(​PLAYER0,​FLOATING_SPIRIT,​PLAYER0,​1,​1,​0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1, FLAG0, 0)
			DISPLAY_INFORMATION(3 ,PLAYER0)
			ENDIF
		ENDIF
ENDIF
ENDIF

rem "Wisp respawn for computer"
IF(PLAYER1,DUNGEON_DESTROYED == 0)
IF(PLAYER1,FLOATING_SPIRIT == 1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER1, TIMER5)
ENDIF
IF(PLAYER1,FLOATING_SPIRIT == 0)
	IF(PLAYER1,TIMER5 >=500)
		NEXT_COMMAND_REUSABLE
		ADD_CREATURE_TO_LEVEL(​PLAYER1,​FLOATING_SPIRIT,​PLAYER1,​1,​1,​0)
	ENDIF
ENDIF
ENDIF
rem "if hero hearth activ and computer reach ACTION_POINT 8 then then show message to PLAYER0 (other keeper is here) and start respawning waves of heros, Flag for speed on AI"

SET_TIMER(PLAYER0, TIMER2)
IF(PLAYER_GOOD,DUNGEON_DESTROYED == 0)
	IF_ACTION_POINT(8,ALL_PLAYERS)
				DISPLAY_INFORMATION(5 ,ALL_PLAYERS)
				PLAY_MESSAGE(PLAYER0,SOUND,777)
					IF(PLAYER0, TIMER2 >= 6200)
						NEXT_COMMAND_REUSABLE
						ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SteahltSpell,PLAYER_GOOD,1)
						NEXT_COMMAND_REUSABLE
						ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SteahltGold,PLAYER_GOOD,1)
						NEXT_COMMAND_REUSABLE
						ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Attack,PLAYER_GOOD,1)
						NEXT_COMMAND_REUSABLE
						SET_TIMER(PLAYER0, TIMER2)
					ENDIF

	ENDIF
ENDIF

rem "Intro"
rem "set timer for intro begin"
rem "show message and set timer"
rem "destroy wall and set timer for hero invasion"
rem "spawn hero's and set timer"
rem "Show wisp message"

SET_TIMER(PLAYER0,TIMER0)

IF(PLAYER0,TIMER0 >= 160)
	PLAY_MESSAGE(PLAYER0,SPEECH,7)
	DISPLAY_INFORMATION(4 ,7)
	SET_TIMER(PLAYER0,TIMER4)
		IF(PLAYER0,TIMER4 >= 80)
			USE_POWER_AT_LOCATION(PLAYER1,7,POWER_DESTROY_WALLs,9,1)
			SET_TIMER(PLAYER0,TIMER0)
				IF(PLAYER0,TIMER0 >= 80)
					ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Cake,1,1)
					ADD_PARTY_TO_LEVEL(PLAYER_GOOD,Fireworks,1,1)
					ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PartyHard,1,1)
					SET_TIMER(PLAYER0,TIMER0)
						IF(PLAYER0,TIMER0 >= 80)
							DISPLAY_OBJECTIVE(​1,​PLAYER3)
							PLAY_MESSAGE(PLAYER0,SOUND,785)
							IF(PLAYER0,FLAG1 == 0)
							IF(PLAYER_GOOD, TOTAL_CREATURES == 37)
							QUICK_INFORMATION(1,"Amazing, you made something that not supposed to happen, Congratluation. But you can't win from here anymore, please restart and let the Heroes destroy your Heart",ALL_PLAYERS)
							ENDIF
							ENDIF
						ENDIF
				ENDIF
		ENDIF
ENDIF

rem "if Heart destroyed then make effect, kill all creature and change rooms and slabs ownship to neutral, show message"

IF(​Player3,​DUNGEON_DESTROYED == 1)
	CREATE_EFFECTS_LINE(9,9,0, 0, 0, 48)
	KILL_CREATURE(Player0,​TUNNELLER,ANYWHERE,​10)
	KILL_CREATURE(Player0,​BILE_DEMON,ANYWHERE,​10)
	KILL_CREATURE(Player0,​DRAGON,ANYWHERE,​10)
	KILL_CREATURE(Player0,​DARK_MISTRESS,ANYWHERE,​10)
	KILL_CREATURE(Player0,​TENTACLE,ANYWHERE,​10)
	KILL_CREATURE(Player0,​SORCEROR,ANYWHERE,​10)
	KILL_CREATURE(Player0,​ORC,ANYWHERE,​10)
	KILL_CREATURE(Player0,​Fly,ANYWHERE,​10)
	KILL_CREATURE(Player0,HELL_HOUND,ANYWHERE,​10)
	KILL_CREATURE(Player0,​TROLL,ANYWHERE,​10)
	KILL_CREATURE(Player0,​SPIDER,ANYWHERE,​10)
	KILL_CREATURE(Player0,​IMP,ANYWHERE,​10)
	KILL_CREATURE(Player0,​GHOST,ANYWHERE,​10)
	
	CHANGE_SLAB_OWNER(15,​ 56,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(15,​ 57,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(15,​ 59,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(13,​ 62,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(24,​ 63,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(13,​ 69,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(19,​ 69,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(25,​ 69,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(28,​ 69,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(13,​ 73,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(27,​ 73,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(33,​ 73,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(20,​ 64,​ PLAYER_NEUTRAL)

	CHANGE_SLAB_OWNER(13,​ 61,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(20,​ 61,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(18,​ 62,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(17,​ 64,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(23,​ 64,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(14,​ 67,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(20,​ 67,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(14,​ 72,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(17,​ 70,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(23,​ 69,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(27,​ 69,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(25,​ 71,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(29,​ 71,​ PLAYER_NEUTRAL)
	CHANGE_SLAB_OWNER(31,​ 73,​ PLAYER_NEUTRAL)

	DISPLAY_INFORMATION(6 ,PLAYER0)
	PLAY_MESSAGE(PLAYER0,SOUND,787)

rem "make effect on heart, set it to 1 hp, give imp and wisp, give spell and hand back, give some gold, set flag for wisp respawn"
		IF(​Player0,​TOTAL_CREATURES == 0)
			SET_TIMER(PLAYER0,TIMER1)
				IF(PLAYER0,TIMER1 >= 200)
					CREATE_EFFECTS_LINE(PLAYER0,PLAYER0,0, 0, 0, 48)
					CREATE_EFFECTS_LINE(PLAYER0,PLAYER0,0, 0, 0, 14)
					ADD_PARTY_TO_LEVEL(PLAYER0,NewBegin,PLAYER0,1)
					ADD_PARTY_TO_LEVEL(PLAYER0,Wisp,PLAYER0,1)
					ADD_HEART_HEALTH(PLAYER0,-29999,1)
					ADD_GOLD_TO_PLAYER(PLAYER0,5000)
					SET_FLAG(PLAYER0,​FLAG1,​1)
					PLAY_MESSAGE(PLAYER0,SOUND,777)
					DISPLAY_OBJECTIVE(2 ,PLAYER0)

					rem "reset room and spell avaiability"

					ROOM_AVAILABLE(PLAYER0,BARRACKS,2,0)
					ROOM_AVAILABLE(PLAYER0,GUARD_POST,2,0)
					ROOM_AVAILABLE(PLAYER0,TORTURE,2,0)
					ROOM_AVAILABLE(PLAYER0,TEMPLE,2,0)
					ROOM_AVAILABLE(PLAYER0,BRIDGE,2,0)
					ROOM_AVAILABLE(PLAYER0,WORKSHOP,2,0)
					ROOM_AVAILABLE(PLAYER0,PRISON,2,0)

					MAGIC_AVAILABLE(PLAYER0,POWER_HAND,1,1)
					MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
					MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,0)
							IF_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS == 1)
							TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
							ENDIF
					MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_HOLD_AUDIENCE,1,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,0,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,0,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,0,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,0,0)
					MAGIC_AVAILABLE(PLAYER0,POWER_ARMAGEDDON,0,0)
				ENDIF
		ENDIF
ENDIF

rem " AI shouldn't waste time and money with CTA"

		SET_TIMER(PLAYER3,TIMER0)
		IF_SLAB_OWNER(7, 78, PLAYER_NEUTRAL)
		IF(PLAYER3,TIMER0 >= 600)
			NEXT_COMMAND_REUSABLE
			MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,0,0)
			NEXT_COMMAND_REUSABLE
			MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,1,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER3,TIMER0)
		ENDIF
		ENDIF
		
IF_ACTION_POINT(19,PLAYER0)
SET_FLAG(PLAYER0,FLAG4,1)
ENDIF
IF_ACTION_POINT(20,PLAYER0)
SET_FLAG(PLAYER0,FLAG4,1)
ENDIF
IF(PLAYER0,FLAG4 == 0)
NEXT_COMMAND_REUSABLE
CONCEAL_MAP_RECT(PLAYER0, 182,232, 124, 27, 0)
IF_ACTION_POINT(18,PLAYER0)
NEXT_COMMAND_REUSABLE
KILL_CREATURE(PLAYER0,ANY_CREATURE,AT_ACTION_POINT[18],2)
NEXT_COMMAND_REUSABLE
RESET_ACTION_POINT(18)
ENDIF
ENDIF	



IF(PLAYER0,FLAG1 == 0)
NEXT_COMMAND_REUSABLE
CHANGE_SLAB_TYPE(18,48,DIRT)
NEXT_COMMAND_REUSABLE
CHANGE_SLAB_TYPE(19,48,DIRT)
NEXT_COMMAND_REUSABLE
CHANGE_SLAB_TYPE(17,48,DIRT)
NEXT_COMMAND_REUSABLE
CHANGE_SLAB_TYPE(18,49,TORCH_WALL)
ENDIF	
IF(PLAYER0,FLAG1 >= 1)
rem "Exploit protection"
CHANGE_SLAB_TYPE(18,48,PRETTY_PATH)
CHANGE_SLAB_TYPE(18,49,DIRT)
CHANGE_SLAB_TYPE(10,76,PRETTY_PATH)
IF(PLAYER0,FLAG4 == 0)
IF(PLAYER0,TIMER7 >= 80)
	IF_ACTION_POINT(16,PLAYER0)
	IF(PLAYER0,FLAG3 == 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG3, 1)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0, TIMER3)
	ENDIF
	NEXT_COMMAND_REUSABLE
	KILL_CREATURE(PLAYER0,ANY_CREATURE,AT_ACTION_POINT[16],8)
	NEXT_COMMAND_REUSABLE
	RESET_ACTION_POINT(16)
	ENDIF
	IF_ACTION_POINT(17,PLAYER0)
	IF(PLAYER0,FLAG3 == 0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG3, 1)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0, TIMER3)
	ENDIF
	NEXT_COMMAND_REUSABLE
	KILL_CREATURE(PLAYER0,ANY_CREATURE,AT_ACTION_POINT[17],8)
	NEXT_COMMAND_REUSABLE
	RESET_ACTION_POINT(17)
	ENDIF
	IF(PLAYER0,FLAG3 == 1)
	NEXT_COMMAND_REUSABLE
	PLAY_MESSAGE(PLAYER0,SOUND,785)
	NEXT_COMMAND_REUSABLE
	DISPLAY_INFORMATION(194,ALL_PLAYERS)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG3, 2)
	ENDIF
	IF(PLAYER0,FLAG3 >= 2)
	IF(PLAYER0,TIMER3 >= 1000)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG3, 0)
	ENDIF
	ENDIF
	ENDIF
	ENDIF
	rem "Heroes are healed if Player come back"
	SET_TIMER(PLAYER0,TIMER7)
		IF(PLAYER0,TIMER7 >= 1200)
			IF(PLAYER0,FLAG7 <= 20)
				NEXT_COMMAND_REUSABLE
				SET_FLAG(PLAYER_GOOD,SACRIFICED[ORC], 1)
				NEXT_COMMAND_REUSABLE
				SET_FLAG(PLAYER_GOOD,SACRIFICED[SPIDER], 1)
				NEXT_COMMAND_REUSABLE
				SET_TIMER(PLAYER0,TIMER5)
				NEXT_COMMAND_REUSABLE
				ADD_TO_FLAG(PLAYER0,FLAG7, 1)
			ENDIF
		ENDIF
ENDIF

rem " Scripts running also after finishing the game"
RUN_AFTER_VICTORY(1)

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
	IF(PLAYER_GOOD, TOTAL_CREATURES_LEFT == 0)
	 SET_TIMER(PLAYER0, TIMER6)
	 PLAY_MESSAGE(PLAYER0,SOUND,777)
		WIN_GAME
	ENDIF
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
CHANGE_SLAB_TYPE(74,60,PATH)
ENDIF

IF(PLAYER0,TIMER6 >= 300)
	PLAY_MESSAGE(PLAYER0,SOUND,777)
	DISPLAY_INFORMATION(11 ,PLAYER0)
ENDIF
