REM  Script for Level Buffy Oak - Coop

LEVEL_VERSION(1)
SET_GENERATE_SPEED(300,PLAYER0)
SET_GENERATE_SPEED(300,PLAYER1)
SET_GENERATE_SPEED(220,PLAYER2)
SET_GENERATE_SPEED(220,PLAYER3)
SET_GENERATE_SPEED(220,PLAYER4)
SET_GENERATE_SPEED(220,PLAYER5)
SET_GENERATE_SPEED(220,PLAYER6)
SET_GENERATE_SPEED(220,PLAYER_GOOD)

REM Creating the final wave
CREATE_PARTY(ONE)
ADD_TO_PARTY(ONE,GHOST,10,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,DARK_MISTRESS,6,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,HORNY,5,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,MAIDEN,8,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,BILE_DEMON,5,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,DRAGON,8,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,DRUID,7,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,HELL_HOUND,6,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,VAMPIRE,5,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(ONE,ORC,5,0,ATTACK_ENEMIES,-300)

CREATE_PARTY(TWO)
ADD_TO_PARTY(TWO,GHOST,10,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,DEMONSPAWN,9,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,HORNY,4,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,SKELETON,7,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,SPIDER,8,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,DRAGON,9,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,DRUID,7,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,TROLL,6,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,TENTACLE,5,0,ATTACK_ENEMIES,-300)
ADD_TO_PARTY(TWO,ORC,6,0,ATTACK_ENEMIES,-300)

START_MONEY(PLAYER0,15000)
START_MONEY(PLAYER1,15000)
START_MONEY(PLAYER2,10000)
START_MONEY(PLAYER3,10000)
START_MONEY(PLAYER4,10000)
START_MONEY(PLAYER5,10000)
START_MONEY(PLAYER6,10000)
START_MONEY(PLAYER_GOOD,10000)

REM	Human players forced as allies
ALLY_PLAYERS(RED,BLUE,3)

REM	PLAYER1 will play heroes as white. Consequently PLAYER_GOOD will be blue
SET_PLAYER_COLOR(PLAYER1,WHITE)
SET_PLAYER_COLOR(PLAYER_GOOD,BLUE)

SET_GAME_RULE(DisplayPortalLimit,1)
SET_GAME_RULE(AlliesShareDrop,1)
SET_GAME_RULE(AlliesShareVision,1)
SET_GAME_RULE(AlliesShareCta,1)
SET_GAME_RULE(ImpWorkExperience,200)
SET_GAME_RULE(MapCreatureLimit,1000)
SET_CREATURE_PROPERTY(IMP,NO_IMPRISONMENT,1)
SET_CREATURE_PROPERTY(AVATAR,LORD,0)
SET_CREATURE_PROPERTY(KNIGHT,LORD,0)

COMPUTER_PLAYER(PLAYER2,0)
COMPUTER_PLAYER(PLAYER3,0)
COMPUTER_PLAYER(PLAYER4,0)
COMPUTER_PLAYER(PLAYER5,0)
COMPUTER_PLAYER(PLAYER6,0)
COMPUTER_PLAYER(PLAYER_GOOD,0)

MAX_CREATURES(PLAYER0,32)
MAX_CREATURES(PLAYER1,32)
MAX_CREATURES(PLAYER2,24)
MAX_CREATURES(PLAYER3,24)
MAX_CREATURES(PLAYER4,24)
MAX_CREATURES(PLAYER5,24)
MAX_CREATURES(PLAYER6,24)
MAX_CREATURES(PLAYER_GOOD,24)

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(ALL_PLAYERS,BRIDGE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
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)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DESTROY_WALLS,1,0)

MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CAVE_IN,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)

ADD_CREATURE_TO_POOL(BUG,40)
ADD_CREATURE_TO_POOL(BILE_DEMON,40)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,40)
ADD_CREATURE_TO_POOL(DRAGON,40)
ADD_CREATURE_TO_POOL(DRUID,40)
ADD_CREATURE_TO_POOL(HORNY,30)
ADD_CREATURE_TO_POOL(HELL_HOUND,40)
ADD_CREATURE_TO_POOL(MAIDEN,40)
ADD_CREATURE_TO_POOL(ORC,40)
ADD_CREATURE_TO_POOL(SPIDER,40)
ADD_CREATURE_TO_POOL(TENTACLE,40)
ADD_CREATURE_TO_POOL(TROLL,40)
ADD_CREATURE_TO_POOL(SORCEROR,40)

ADD_CREATURE_TO_POOL(ARCHER,20)
ADD_CREATURE_TO_POOL(BARBARIAN,20)
ADD_CREATURE_TO_POOL(DWARFA,20)
ADD_CREATURE_TO_POOL(FAIRY,20)
ADD_CREATURE_TO_POOL(GIANT,20)
ADD_CREATURE_TO_POOL(KNIGHT,20)
ADD_CREATURE_TO_POOL(MONK,20)
ADD_CREATURE_TO_POOL(WITCH,20)
ADD_CREATURE_TO_POOL(SAMURAI,20)
ADD_CREATURE_TO_POOL(TIME_MAGE,20)
ADD_CREATURE_TO_POOL(WIZARD,20)

CREATURE_AVAILABLE(PLAYER0,BUG,1,0)
CREATURE_AVAILABLE(PLAYER2,BUG,1,0)
CREATURE_AVAILABLE(PLAYER3,BUG,1,0)
CREATURE_AVAILABLE(PLAYER4,BUG,1,0)
CREATURE_AVAILABLE(PLAYER5,BUG,1,0)
CREATURE_AVAILABLE(PLAYER6,BUG,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,BUG,1,0)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER2,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER3,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER4,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER5,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER6,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER2,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER3,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER4,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER5,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER6,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER0,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER2,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER3,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER4,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER5,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER6,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER0,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER2,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER3,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER4,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER5,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER6,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,DRUID,1,0)
CREATURE_AVAILABLE(PLAYER0,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER2,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER3,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER4,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER5,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER6,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER2,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER3,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER4,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER5,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER6,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER0,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER2,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER3,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER4,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER5,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER6,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,MAIDEN,1,0)
CREATURE_AVAILABLE(PLAYER0,ORC,1,0)
CREATURE_AVAILABLE(PLAYER2,ORC,1,0)
CREATURE_AVAILABLE(PLAYER3,ORC,1,0)
CREATURE_AVAILABLE(PLAYER4,ORC,1,0)
CREATURE_AVAILABLE(PLAYER5,ORC,1,0)
CREATURE_AVAILABLE(PLAYER6,ORC,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,ORC,1,0)
CREATURE_AVAILABLE(PLAYER0,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER2,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER3,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER4,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER5,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER6,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,SPIDER,1,0)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER2,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER3,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER4,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER5,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER6,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER0,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER2,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER3,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER4,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER5,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER6,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER2,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER3,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER4,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER5,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER6,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER_GOOD,SORCEROR,1,0)

CREATURE_AVAILABLE(PLAYER1,ARCHER,1,0)
CREATURE_AVAILABLE(PLAYER1,BARBARIAN,1,0)
CREATURE_AVAILABLE(PLAYER1,DWARFA,1,0)
CREATURE_AVAILABLE(PLAYER1,FAIRY,1,0)
CREATURE_AVAILABLE(PLAYER1,GIANT,1,0)
CREATURE_AVAILABLE(PLAYER1,KNIGHT,1,0)
CREATURE_AVAILABLE(PLAYER1,MONK,1,0)
CREATURE_AVAILABLE(PLAYER1,WITCH,1,0)
CREATURE_AVAILABLE(PLAYER1,SAMURAI,1,0)
CREATURE_AVAILABLE(PLAYER1,TIME_MAGE,1,0)
CREATURE_AVAILABLE(PLAYER1,WIZARD,1,0)

CREATURE_AVAILABLE(ALL_PLAYERS,DRUID,1,0)

REM # All Keepers and heroes are allied against the player
ALLY_PLAYERS(PLAYER_GOOD,PLAYER2,3)
ALLY_PLAYERS(PLAYER_GOOD,PLAYER3,3)
ALLY_PLAYERS(PLAYER_GOOD,PLAYER4,3)
ALLY_PLAYERS(PLAYER_GOOD,PLAYER5,3)
ALLY_PLAYERS(PLAYER_GOOD,PLAYER6,3)

ALLY_PLAYERS(PLAYER2,PLAYER3,3)
ALLY_PLAYERS(PLAYER2,PLAYER4,3)
ALLY_PLAYERS(PLAYER2,PLAYER5,3)
ALLY_PLAYERS(PLAYER2,PLAYER6,3)

ALLY_PLAYERS(PLAYER3,PLAYER4,3)
ALLY_PLAYERS(PLAYER3,PLAYER5,3)
ALLY_PLAYERS(PLAYER3,PLAYER6,3)

ALLY_PLAYERS(PLAYER4,PLAYER5,3)
ALLY_PLAYERS(PLAYER4,PLAYER6,3)

ALLY_PLAYERS(PLAYER5,PLAYER6,3)

REM Prevents the players to see the whole map at start
IF(PLAYER0,GAME_TURN>1)
	CHANGE_SLAB_TYPE(14,63,PATH,MATCH)
	CHANGE_SLAB_TYPE(48,63,PATH,MATCH)
	CHANGE_SLAB_TYPE(52,63,PATH,MATCH)
	CHANGE_SLAB_TYPE(86,63,PATH,MATCH)
	CHANGE_SLAB_TYPE(14,105,PATH,MATCH)
	CHANGE_SLAB_TYPE(48,105,PATH,MATCH)
	CHANGE_SLAB_TYPE(52,105,PATH,MATCH)
	CHANGE_SLAB_TYPE(86,105,PATH,MATCH)
ENDIF

REM # Flags
REM PLAYER0,FLAG0 enemy Keepers kill count (from 0 to 6, reference that should never decrease)

REM # Timers
REM PLAYER0,TIMER7 sequencing the final fight
REM PLAYER2,TIMER0 delay (140 turns) to spawn a new lvl 3 imp for Blue Keeper
REM PLAYER2,TIMER1 delay (140 turns) to spawn a new lvl 3 imp for Green Keeper
REM PLAYER2,TIMER2 delay (140 turns) to spawn a new lvl 3 imp for Yellow Keeper
REM PLAYER2,TIMER3 delay (140 turns) to spawn a new lvl 3 imp for Purple Keeper
REM PLAYER2,TIMER4 delay (140 turns) to spawn a new lvl 3 imp for Black Keeper
REM PLAYER2,TIMER5 delay (140 turns) to spawn a new lvl 3 imp for Orange Keeper
REM PLAYER_GOOD,TIMER0 delay (1200 turns) before increasing the enemy Keepers fight efficiency by 1%

QUICK_OBJECTIVE(1,"You are a rogue keeper and its hero friend. The betrayed keepers have followed you in this land to take their revenge. May this fortress protect you.")

IF(PLAYER0,GAME_TURN >= 200)
	QUICK_INFORMATION(2,"This area is so deep beneath the earth that lightning strike can't even reach it.")
ENDIF

REM Give enemy Keepers DESTROY_WALLS after 15 minutes so that they can breach the fortress
IF(PLAYER0,GAME_TURN>=18000)
	QUICK_INFORMATION(3,"Enemy keepers are now able to breach our walls!")
	MAGIC_AVAILABLE(PLAYER_GOOD,POWER_DESTROY_WALLS,1,1)
	MAGIC_AVAILABLE(PLAYER2,POWER_DESTROY_WALLS,1,1)
	MAGIC_AVAILABLE(PLAYER3,POWER_DESTROY_WALLS,1,1)
	MAGIC_AVAILABLE(PLAYER4,POWER_DESTROY_WALLS,1,1)
	MAGIC_AVAILABLE(PLAYER5,POWER_DESTROY_WALLS,1,1)
	MAGIC_AVAILABLE(PLAYER6,POWER_DESTROY_WALLS,1,1)
	SET_POWER_CONFIGURATION(POWER_DESTROY_WALLS,Cost,4000,1)
ENDIF

REM Strenghten enemy Keepers creatures coming from the entrance after each Keeper kill (starting xp level and attraction speed)
IF(PLAYER0,FLAG0 == 1)
	CREATURE_ENTRANCE_LEVEL(PLAYER_GOOD,3)
	CREATURE_ENTRANCE_LEVEL(PLAYER2,3)
	CREATURE_ENTRANCE_LEVEL(PLAYER3,3)
	CREATURE_ENTRANCE_LEVEL(PLAYER4,3)
	CREATURE_ENTRANCE_LEVEL(PLAYER5,3)
	CREATURE_ENTRANCE_LEVEL(PLAYER6,3)
	QUICK_INFORMATION(5,"Every time a Keeper dies, the other Keepers become stronger!")
ENDIF

IF(PLAYER0,FLAG0 == 2)
	CREATURE_ENTRANCE_LEVEL(PLAYER_GOOD,5)
	CREATURE_ENTRANCE_LEVEL(PLAYER2,5)
	CREATURE_ENTRANCE_LEVEL(PLAYER3,5)
	CREATURE_ENTRANCE_LEVEL(PLAYER4,5)
	CREATURE_ENTRANCE_LEVEL(PLAYER5,5)
	CREATURE_ENTRANCE_LEVEL(PLAYER6,5)
	SET_GENERATE_SPEED(200,PLAYER2)
	SET_GENERATE_SPEED(200,PLAYER3)
	SET_GENERATE_SPEED(200,PLAYER4)
	SET_GENERATE_SPEED(200,PLAYER5)
	SET_GENERATE_SPEED(200,PLAYER6)
	SET_GENERATE_SPEED(200,PLAYER_GOOD)
ENDIF

IF(PLAYER0,FLAG0 == 3)
	CREATURE_ENTRANCE_LEVEL(PLAYER_GOOD,6)
	CREATURE_ENTRANCE_LEVEL(PLAYER2,6)
	CREATURE_ENTRANCE_LEVEL(PLAYER3,6)
	CREATURE_ENTRANCE_LEVEL(PLAYER4,6)
	CREATURE_ENTRANCE_LEVEL(PLAYER5,6)
	CREATURE_ENTRANCE_LEVEL(PLAYER6,6)
	SET_GENERATE_SPEED(180,PLAYER2)
	SET_GENERATE_SPEED(180,PLAYER3)
	SET_GENERATE_SPEED(180,PLAYER4)
	SET_GENERATE_SPEED(180,PLAYER5)
	SET_GENERATE_SPEED(180,PLAYER6)
	SET_GENERATE_SPEED(180,PLAYER_GOOD)
ENDIF

IF(PLAYER0,FLAG0 == 4)
	CREATURE_ENTRANCE_LEVEL(PLAYER_GOOD,7)
	CREATURE_ENTRANCE_LEVEL(PLAYER2,7)
	CREATURE_ENTRANCE_LEVEL(PLAYER3,7)
	CREATURE_ENTRANCE_LEVEL(PLAYER4,7)
	CREATURE_ENTRANCE_LEVEL(PLAYER5,7)
	CREATURE_ENTRANCE_LEVEL(PLAYER6,7)
	SET_GENERATE_SPEED(140,PLAYER2)
	SET_GENERATE_SPEED(140,PLAYER3)
	SET_GENERATE_SPEED(140,PLAYER4)
	SET_GENERATE_SPEED(140,PLAYER5)
	SET_GENERATE_SPEED(140,PLAYER6)
	SET_GENERATE_SPEED(140,PLAYER_GOOD)
ENDIF

IF(PLAYER0,FLAG0 == 5)
	CREATURE_ENTRANCE_LEVEL(PLAYER_GOOD,8)
	CREATURE_ENTRANCE_LEVEL(PLAYER2,8)
	CREATURE_ENTRANCE_LEVEL(PLAYER3,8)
	CREATURE_ENTRANCE_LEVEL(PLAYER4,8)
	CREATURE_ENTRANCE_LEVEL(PLAYER5,8)
	CREATURE_ENTRANCE_LEVEL(PLAYER6,8)
	SET_GENERATE_SPEED(80,PLAYER2)
	SET_GENERATE_SPEED(80,PLAYER3)
	SET_GENERATE_SPEED(80,PLAYER4)
	SET_GENERATE_SPEED(80,PLAYER5)
	SET_GENERATE_SPEED(80,PLAYER6)
	SET_GENERATE_SPEED(80,PLAYER_GOOD)
ENDIF

REM Every minute, overall stats of enemy keepers increases by 1%
SET_TIMER(PLAYER_GOOD,TIMER0)
IF(PLAYER0,GAME_TURN>=1200)
	QUICK_INFORMATION(4,"The betrayed Keepers are enraged. Every minute passing makes them stronger than usual creatures...")
ENDIF
IF(PLAYER_GOOD,TIMER0 >= 1200)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER_GOOD,Health,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER_GOOD,Strength,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER_GOOD,Armour,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER_GOOD,SpellDamage,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER_GOOD,Speed,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER2,Health,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER2,Strength,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER2,Armour,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER2,SpellDamage,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER2,Speed,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER3,Health,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER3,Strength,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER3,Armour,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER3,SpellDamage,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER3,Speed,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER4,Health,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER4,Strength,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER4,Armour,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER4,SpellDamage,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER4,Speed,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER5,Health,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER5,Strength,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER5,Armour,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER5,SpellDamage,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER5,Speed,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER6,Health,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER6,Strength,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER6,Armour,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER6,SpellDamage,1)
	NEXT_COMMAND_REUSABLE
	ADD_TO_PLAYER_MODIFIER(PLAYER6,Speed,1)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER_GOOD,TIMER0)
ENDIF

REM The human players can create imps as long as they have less than 24 of them each
IF(PLAYER0,TOTAL_DIGGERS<24)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
ENDIF
IF(PLAYER1,TOTAL_DIGGERS<24)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
ENDIF

REM If the human players exceed 24 imps, disable the ability to create imps
IF(PLAYER0,TOTAL_DIGGERS>=24)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER0,POWER_IMP,0,0)
ENDIF
IF(PLAYER0,TOTAL_DIGGERS>=24)
	NEXT_COMMAND_REUSABLE
	MAGIC_AVAILABLE(PLAYER1,POWER_IMP,0,0)
ENDIF

REM # Tracking the number of dead enemy Keepers
IF(PLAYER0,GAME_TURN >= 10)
REM # Blue
	IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
		ADD_TO_FLAG(PLAYER0,FLAG0,1)
	ENDIF
REM # Green
	IF(PLAYER2,DUNGEON_DESTROYED == 1)
		ADD_TO_FLAG(PLAYER0,FLAG0,1)
	ENDIF
REM # Yellow
	IF(PLAYER3,DUNGEON_DESTROYED == 1)
		ADD_TO_FLAG(PLAYER0,FLAG0,1)
	ENDIF
REM # Purple
	IF(PLAYER4,DUNGEON_DESTROYED == 1)
		ADD_TO_FLAG(PLAYER0,FLAG0,1)
	ENDIF
REM # Black
	IF(PLAYER5,DUNGEON_DESTROYED == 1)
		ADD_TO_FLAG(PLAYER0,FLAG0,1)
	ENDIF
REM # Orange
	IF(PLAYER6,DUNGEON_DESTROYED == 1)
		ADD_TO_FLAG(PLAYER0,FLAG0,1)
	ENDIF
ENDIF

REM # Blue is getting imps for free if imps count is low
IF(PLAYER_GOOD, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER2, TIMER0)
	IF(PLAYER_GOOD, IMP < 12)
		IF(PLAYER2, TIMER0 > 140)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD, IMP, PLAYER_GOOD, 1, 3, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2, TIMER0)
		ENDIF
	ENDIF
ENDIF

REM # Green is getting imps for free if imps count is low
IF(PLAYER2, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER2, TIMER1)
	IF(PLAYER2, IMP < 12)
		IF(PLAYER2, TIMER1 > 140)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER2, IMP, PLAYER2, 1, 3, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2, TIMER1)
		ENDIF
	ENDIF
ENDIF

REM # Yellow is getting imps for free if imps count is low
IF(PLAYER3, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER2, TIMER2)
	IF(PLAYER3, IMP < 12)
		IF(PLAYER2, TIMER2 > 140)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER3, IMP, PLAYER3, 1, 3, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2, TIMER2)
		ENDIF
	ENDIF
ENDIF

REM # Purple is getting imps for free if imps count is low
IF(PLAYER4, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER2, TIMER3)
	IF(PLAYER4, IMP < 12)
		IF(PLAYER2, TIMER3 > 140)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER4, IMP, PLAYER4, 1, 3, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2, TIMER3)
		ENDIF
	ENDIF
ENDIF

REM # Black is getting imps for free if imps count is low
IF(PLAYER5, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER2, TIMER4)
	IF(PLAYER5, IMP < 12)
		IF(PLAYER2, TIMER4 > 140)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER5, IMP, PLAYER5, 1, 3, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2, TIMER4)
		ENDIF
	ENDIF
ENDIF

REM # Orange is getting imps for free if imps count is low
IF(PLAYER6, DUNGEON_DESTROYED == 0)
	SET_TIMER(PLAYER2, TIMER5)
	IF(PLAYER6, IMP < 12)
		IF(PLAYER2, TIMER5 > 140)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER6, IMP, PLAYER6, 1, 3, 0)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2, TIMER5)
		ENDIF
	ENDIF
ENDIF

REM Teasing the final wave
IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
	SET_TIMER(PLAYER0,TIMER7)
ENDIF
IF (PLAYER0,TIMER7 >= 160)
	PLAY_MESSAGE(PLAYER0,SOUND,927)
	PLAY_MESSAGE(PLAYER1,SOUND,927)
ENDIF
IF (PLAYER0,TIMER7 >= 280)
	PLAY_MESSAGE(PLAYER0,SOUND,927)
	PLAY_MESSAGE(PLAYER1,SOUND,927)
	QUICK_INFORMATION(6,"Something is coming...")
	COMPUTER_PLAYER(PLAYER_GOOD,ROAMING)
	COMPUTER_PLAYER(PLAYER2,ROAMING)
	COMPUTER_PLAYER(PLAYER3,ROAMING)
	COMPUTER_PLAYER(PLAYER4,ROAMING)
	COMPUTER_PLAYER(PLAYER5,ROAMING)
	COMPUTER_PLAYER(PLAYER6,ROAMING)
ENDIF
IF (PLAYER0,TIMER7 >= 420)
	PLAY_MESSAGE(PLAYER0,SOUND,927)
	PLAY_MESSAGE(PLAYER1,SOUND,927)
	QUICK_INFORMATION(7,"A huge force is approaching. Get ready for the final fight.")
	BONUS_LEVEL_TIME(1200,1)
ENDIF

IF (PLAYER0,TIMER7 >= 720)
	QUICK_INFORMATION(10,"The tremendous battle weakened the underground galleries. We can no longer use Cave-In or the entire area would collapse on the fortress.")
	MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,0,0)
	MAGIC_AVAILABLE(PLAYER1,POWER_CAVE_IN,0,0)
ENDIF
REM Some help for both players
IF (PLAYER0,TIMER7 >= 1000)
	ADD_CREATURE_TO_LEVEL(PLAYER0,AVATAR,-1,1,10,0)
	ADD_CREATURE_TO_LEVEL(PLAYER0,KNIGHT,-1,2,10,0)
	PLAY_MESSAGE(PLAYER0,SOUND,870)	
	ADD_CREATURE_TO_LEVEL(PLAYER1,AVATAR,-1,1,10,0)
	ADD_CREATURE_TO_LEVEL(PLAYER1,KNIGHT,-1,2,10,0)
	PLAY_MESSAGE(PLAYER1,SOUND,870)
	QUICK_MESSAGE(11,"We are here to help you!",AVATAR)
	ZOOM_TO_LOCATION(PLAYER0,-1)
	ZOOM_TO_LOCATION(PLAYER1,-1)
ENDIF

REM Spawning the final wave, creatures from every enemy keeper, have to remain allied, spawn on their previous heart location
IF(PLAYER0,TIMER7 >= 1620)
	QUICK_INFORMATION_WITH_POS(12,"From the fallen dungeon hearts, evil creatures are rising.",157,451)
	PLAY_MESSAGE(PLAYER0,SOUND,83)
	PLAY_MESSAGE(PLAYER1,SOUND,83)
	BONUS_LEVEL_TIME(0,1)
	ALLY_PLAYERS(PLAYER_GOOD,PLAYER2,3)
	ALLY_PLAYERS(PLAYER_GOOD,PLAYER3,3)
	ALLY_PLAYERS(PLAYER_GOOD,PLAYER4,3)
	ALLY_PLAYERS(PLAYER_GOOD,PLAYER5,3)
	ALLY_PLAYERS(PLAYER_GOOD,PLAYER6,3)
	ALLY_PLAYERS(PLAYER2,PLAYER3,3)
	ALLY_PLAYERS(PLAYER2,PLAYER4,3)
	ALLY_PLAYERS(PLAYER2,PLAYER5,3)
	ALLY_PLAYERS(PLAYER2,PLAYER6,3)
	ALLY_PLAYERS(PLAYER3,PLAYER4,3)
	ALLY_PLAYERS(PLAYER3,PLAYER5,3)
	ALLY_PLAYERS(PLAYER3,PLAYER6,3)
	ALLY_PLAYERS(PLAYER4,PLAYER5,3)
	ALLY_PLAYERS(PLAYER4,PLAYER6,3)
	ALLY_PLAYERS(PLAYER5,PLAYER6,3)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ONE,1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWO,1,1)
	ADD_PARTY_TO_LEVEL(PLAYER2,ONE,2,1)
	ADD_PARTY_TO_LEVEL(PLAYER2,TWO,2,1)
	ADD_PARTY_TO_LEVEL(PLAYER3,ONE,3,1)
	ADD_PARTY_TO_LEVEL(PLAYER3,TWO,3,1)
	ADD_PARTY_TO_LEVEL(PLAYER4,ONE,4,1)
	ADD_PARTY_TO_LEVEL(PLAYER4,TWO,4,1)
	ADD_PARTY_TO_LEVEL(PLAYER5,ONE,5,1)
	ADD_PARTY_TO_LEVEL(PLAYER5,TWO,5,1)
	ADD_PARTY_TO_LEVEL(PLAYER6,ONE,6,1)
	ADD_PARTY_TO_LEVEL(PLAYER6,TWO,6,1)
ENDIF

REM Some Keepers are taunting
IF(PLAYER0,TIMER7 >= 1680)
	QUICK_MESSAGE(13,"Give us the traitor!",PLAYER3)
ENDIF
IF(PLAYER0,TIMER7 >= 1740)
	QUICK_MESSAGE(14,"This fortress will fall.",PLAYER4)
ENDIF
IF(PLAYER0,TIMER7 >= 1800)
	QUICK_MESSAGE(15,"This land is ours!",PLAYER2)
ENDIF

REM # Win condition - all enemy Keepers dead, including the final wave
IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
	IF(PLAYER0,TIMER7 >= 2000)
		IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
			IF(PLAYER2,TOTAL_CREATURES == 0)
				IF(PLAYER3,TOTAL_CREATURES == 0)
					IF(PLAYER4,TOTAL_CREATURES == 0)
						IF(PLAYER5,TOTAL_CREATURES == 0)
							IF(PLAYER6,TOTAL_CREATURES == 0)
								WIN_GAME
							ENDIF
						ENDIF
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF
IF(PLAYER1,ALL_DUNGEONS_DESTROYED == 1)
	IF(PLAYER0,TIMER7 >= 2000)
		IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
			IF(PLAYER2,TOTAL_CREATURES == 0)
				IF(PLAYER3,TOTAL_CREATURES == 0)
					IF(PLAYER4,TOTAL_CREATURES == 0)
						IF(PLAYER5,TOTAL_CREATURES == 0)
							IF(PLAYER6,TOTAL_CREATURES == 0)
								WIN_GAME
							ENDIF
						ENDIF
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF