LEVEL_VERSION(1)

REM -------------------------------------------------------------------------------------------------------------------------------------------

COMPUTER_PLAYER(PLAYER0,2)
COMPUTER_PLAYER(PLAYER5,ROAMING)

SET_GENERATE_SPEED(1000)

QUICK_OBJECTIVE(0,​"You have joined Keeper Astaroth in the ongoing siege of Glorydale. You have arrived in time as the Heroes, led by the Mage Lord, are expected to to make their move soon. The Mage Lord himself has not been spotted but is rumored to be in the overworld to gather reinforcements.",PLAYER1)

START_MONEY(PLAYER1,30000)
START_MONEY(PLAYER0,2500000)
START_MONEY(PLAYER_GOOD,2500000)


ALLY_PLAYERS(PLAYER1,PLAYER0,1)

SET_GAME_RULE(128,1)
SET_GAME_RULE(ALWAYS_TUNNEL_TO_RED,1)
SET_GAME_RULE(AlliesShareCta,1)
SET_GAME_RULE(AlliesShareDrop,1)
SET_GAME_RULE(AlliesShareVision,0)
SET_GAME_RULE(PayDayGap,12500)

SET_PLAYER_MODIFIER(PLAYER0,TrainingCost,85)
SET_PLAYER_MODIFIER(PLAYER0,SALARY,85)
SET_CREATURE_TENDENCIES(PLAYER0,FLEE,1)
SET_COMPUTER_GLOBALS(PLAYER0,40,1,2,2,600,1)

MAX_CREATURES(PLAYER1,17)
MAX_CREATURES(PLAYER0,24)

ADD_CREATURE_TO_POOL(DARK_MISTRESS,15)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,30)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(DRAGON,30)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(VAMPIRE,1)
ADD_CREATURE_TO_POOL(HORNY,1)

REM	Creature availability
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,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(PLAYER1,VAMPIRE,1,0)
CREATURE_AVAILABLE(PLAYER0,VAMPIRE,1,1)
CREATURE_AVAILABLE(PLAYER0,HORNY,1,1)
CREATURE_AVAILABLE(PLAYER1,HORNY,1,0)

SET_CREATURE_HEALTH(AVATAR,850)
SET_CREATURE_ARMOUR(AVATAR,65)
SET_CREATURE_STRENGTH(AVATAR,75)
SET_CREATURE_PROPERTY(AVATAR,LORD,0)
SET_CREATURE_PROPERTY(AVATAR,NEVER_CHICKENS,0)
SET_CREATURE_PROPERTY(AVATAR,IMMUNE_TO_BOULDER,0)
SET_CREATURE_PROPERTY(AVATAR,ONE_OF_KIND,0)
SET_CREATURE_PROPERTY(AVATAR,NO_IMPRISONMENT,1)

SET_CREATURE_PROPERTY(KNIGHT,LORD,0)
SET_CREATURE_PROPERTY(KNIGHT,NO_IMPRISONMENT,1)

REM	Room availability
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,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,1,0)

SET_COMPUTER_PROCESS(PLAYER0,"BUILD A TREASURE ROOM",10,6,6,2,0)
SET_COMPUTER_PROCESS(PLAYER0,"BUILD A RESEARCH ROOM",0,6,6,3,0)
SET_COMPUTER_PROCESS(PLAYER0,"BUILD A TORTURE ROOM",-10,5,6,5,0)
SET_COMPUTER_PROCESS(PLAYER0,"BUILD A BARRACK ROOM",-10,4,5,12,0)
SET_COMPUTER_PROCESS(PLAYER0,"BUILD A TRAINING ROOM",0,5,4,6,0)
SET_COMPUTER_PROCESS(PLAYER0,"BUILD A HATCHERY",8,6,6,13,0)

SET_COMPUTER_PROCESS(PLAYER0,"ATTACK PLAN 1",-1,100,335,100,0)

IF(PLAYER1,CAMPAIGN_FLAG1 != 0)
	ADD_CREATURE_TO_POOL(ANGEL,2)
	CREATURE_AVAILABLE(PLAYER0,ANGEL,1,1)
	CREATURE_AVAILABLE(PLAYER1,ANGEL,1,0)
ENDIF

IF(PLAYER1,GAME_TURN >= 1000)
	QUICK_INFORMATION(1,​"Summerland At War Status: Desperation grips the core realms as the Heroes come to realize the worsening plight on the battle lines.",PLAYER1)
ENDIF

IF(PLAYER1,PRISON >= 1)
	QUICK_INFORMATION(2,​"Capture Heroes and extract information from them. You may even be succesful in turning a few to your side. However, turning many Heroes to your side may provoke a response from the Overworld. ",PLAYER1)
ENDIF

IF(PLAYER0,WORKSHOP >= 72)
	ROOM_AVAILABLE(PLAYER0,WORKSHOP,0,0)
ENDIF

IF(PLAYER0,TRAINING >= 20)
	ROOM_AVAILABLE(PLAYER0,TRAINING,0,0)
ENDIF


REM	Spells availability
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)

REM	Doors and traps availability
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,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)

REM -------------------------------------------------------------------------------------------------------------------------------------------

CREATE_PARTY(EASY_FIRST)
    ADD_TO_PARTY(EASY_FIRST,DWARFA,2,250,ATTACK_ROOMS,0)
    ADD_TO_PARTY(EASY_FIRST,ARCHER,2,250,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(EASY_FIRST,THIEF,3,250,STEAL_GOLD,0)
	ADD_TO_PARTY(EASY_FIRST,KNIGHT,2,250,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(EASY_FIRST,ARCHER,2,250,DEFEND_PARTY,0)

CREATE_PARTY(EASY_SECOND)
	ADD_TO_PARTY(EASY_SECOND,DWARFA,2,200,ATTACK_ROOMS,0)
	ADD_TO_PARTY(EASY_SECOND,BARBARIAN,2,250,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(EASY_SECOND,ARCHER,3,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(EASY_SECOND,THIEF,3,300,STEAL_GOLD,0)
	ADD_TO_PARTY(EASY_SECOND,AVATAR,2,200,DEFEND_PARTY,0)

CREATE_PARTY(EASY_THIRD)
	ADD_TO_PARTY(EASY_THIRD,DWARFA,2,250,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(EASY_THIRD,SAMURAI,3,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(EASY_THIRD,ARCHER,2,200,DEFEND_PARTY,0)
	ADD_TO_PARTY(EASY_THIRD,THIEF,2,150,STEAL_GOLD,0)
	ADD_TO_PARTY(EASY_THIRD,ARCHER,2,200,DEFEND_PARTY,0)

CREATE_PARTY(EASY_FOURTH)
	ADD_TO_PARTY(EASY_FOURTH,DWARFA,2,250,ATTACK_ROOMS,0)
	ADD_TO_PARTY(EASY_FOURTH,MONK,3,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(EASY_FOURTH,FAIRY,3,200,STEAL_SPELLS,0)
	ADD_TO_PARTY(EASY_FOURTH,WITCH,3,200,STEAL_SPELLS,0)
	ADD_TO_PARTY(EASY_FOURTH,THIEF,2,150,STEAL_GOLD,0)

CREATE_PARTY(MEDIUM_FIRST)
	ADD_TO_PARTY(MEDIUM_FIRST,MONK,5,400,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(MEDIUM_FIRST,MONK,5,550,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(MEDIUM_FIRST,WITCH,5,500,STEAL_SPELLS,0)
	ADD_TO_PARTY(MEDIUM_FIRST,KNIGHT,4,400,DEFEND_PARTY,0)
	ADD_TO_PARTY(MEDIUM_FIRST,FAIRY,4,300,STEAL_SPELLS,0)

CREATE_PARTY(MEDIUM_SECOND)
	ADD_TO_PARTY(MEDIUM_SECOND,BARBARIAN,5,400,ATTACK_ROOMS,0)
	ADD_TO_PARTY(MEDIUM_SECOND,GIANT,5,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(MEDIUM_SECOND,DWARFA,5,400,ATTACK_ROOMS,0)
	ADD_TO_PARTY(MEDIUM_SECOND,ARCHER,4,300,,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(MEDIUM_SECOND,ARCHER,4,300,DEFEND_PARTY,0)

CREATE_PARTY(MEDIUM_THIRD)
	ADD_TO_PARTY(MEDIUM_THIRD,SAMURAI,4,500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(MEDIUM_THIRD,AVATAR,5,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(MEDIUM_THIRD,MONK,5,400,STEAL_SPELLS,0)
	ADD_TO_PARTY(MEDIUM_THIRD,ARCHER,4,300,DEFEND_PARTY,0)
	ADD_TO_PARTY(MEDIUM_THIRD,FAIRY,4,250,STEAL_SPELLS,0)

CREATE_PARTY(HARD_FIRST)
	ADD_TO_PARTY(HARD_FIRST,MONK,8,500,DEFEND_PARTY,0)
	ADD_TO_PARTY(HARD_FIRST,KNIGHT,8,750,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(HARD_FIRST,THIEF,7,100,STEAL_GOLD,0)
	ADD_TO_PARTY(HARD_FIRST,ARCHER,7,250,DEFEND_PARTY,0)
	ADD_TO_PARTY(HARD_FIRST,GIANT,7,500,ATTACK_ROOMS,0)
	ADD_TO_PARTY(HARD_FIRST,AVATAR,6,400,ATTACK_ENEMIES,0)

CREATE_PARTY(HARD_SECOND)
	ADD_TO_PARTY(HARD_SECOND,SAMURAI,7,600,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(HARD_SECOND,KNIGHT,8,700,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(HARD_SECOND,DWARFA,7,500,ATTACK_ROOMS,0)
	ADD_TO_PARTY(HARD_SECOND,FAIRY,8,300,STEAL_SPELLS,0)
	ADD_TO_PARTY(HARD_SECOND,ARCHER,7,250,DEFEND_PARTY,0)
	ADD_TO_PARTY(HARD_SECOND,AVATAR,6,400,ATTACK_ROOMS,0)

CREATE_PARTY(VERY_HARD)
	ADD_TO_PARTY(VERY_HARD,AVATAR,9,800,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(VERY_HARD,KNIGHT,10,900,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(VERY_HARD,FAIRY,10,750,STEAL_SPELLS,0)
	ADD_TO_PARTY(VERY_HARD,MONK,8,700,DEFEND_PARTY,0)
	ADD_TO_PARTY(VERY_HARD,WITCH,10,800,DEFEND_PARTY,0)
	ADD_TO_PARTY(VERY_HARD,SAMURAI,8,600,ATTACK_ROOMS,0)
	ADD_TO_PARTY(VERY_HARD,ARCHER,8,500,DEFEND_PARTY,0)

CREATE_PARTY(MAGE_LORD)
	ADD_TO_PARTY(MAGE_LORD,WIZARD,10,10000,DEFEND_HEART,0)

CREATE_PARTY(OVERWORLD_LIGHT)
	ADD_TO_PARTY(OVERWORLD_LIGHT,ARCHER,10,750,DEFEND_PARTY,0)
	ADD_TO_PARTY(OVERWORLD_LIGHT,THIEF,10,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(OVERWORLD_LIGHT,DWARFA,9,500,ATTACK_ROOMS,0)
	ADD_TO_PARTY(OVERWORLD_LIGHT,THIEF,8,400,STEAL_GOLD,0)
	ADD_TO_PARTY(OVERWORLD_LIGHT,ARCHER,8,300,DEFEND_PARTY,0)
	ADD_TO_PARTY(OVERWORLD_LIGHT,DWARFA,8,300,ATTACK_ROOMS,0)
	ADD_TO_PARTY(OVERWORLD_LIGHT,ARCHER,8,300,DEFEND_PARTY,0)

CREATE_PARTY(OVERWORLD_HEAVY)
	ADD_TO_PARTY(OVERWORLD_HEAVY,MONK,10,800,DEFEND_PARTY,400)
	ADD_TO_PARTY(OVERWORLD_HEAVY,KNIGHT,10,1000,ATTACK_DUNGEON_HEART,400)
	ADD_TO_PARTY(OVERWORLD_HEAVY,FAIRY,10,750,STEAL_SPELLS,400)
	ADD_TO_PARTY(OVERWORLD_HEAVY,SAMURAI,8,500,ATTACK_ENEMIES,400)
	ADD_TO_PARTY(OVERWORLD_HEAVY,AVATAR,8,600,ATTACK_ENEMIES,400)
	ADD_TO_PARTY(OVERWORLD_HEAVY,GIANT,8,600,ATTACK_ROOMS,400)
	ADD_TO_PARTY(OVERWORLD_HEAVY,ARCHER,10,750,DEFEND_PARTY,400)

CREATE_PARTY(FIRST)
	ADD_TO_PARTY(FIRST,KNIGHT,2,400,DEFEND_PARTY,0)
	ADD_TO_PARTY(FIRST,WIZARD,3,300,STEAL_SPELLS,0)
	ADD_TO_PARTY(FIRST,AVATAR,2,100,ATTACK_ENEMIES,0)

CREATE_PARTY(FAIRY_GUARD)
	ADD_TO_PARTY(FAIRY_GUARD,FAIRY,8,1500,DEFEND_LOCATION,50000)
	
CREATE_PARTY(GIANT_GUARD)
	ADD_TO_PARTY(GIANT_GUARD,GIANT,8,1500,DEFEND_LOCATION,50000)

CREATE_PARTY(WANDERING_GUARDS)
	ADD_TO_PARTY(WANDERING_GUARDS,FAIRY,4,1000,DEFEND_ROOMS,50000)
	ADD_TO_PARTY(WANDERING_GUARDS,KNIGHT,4,1000,DEFEND_LOCATION,50000)
	ADD_TO_PARTY(WANDERING_GUARDS,AVATAR,4,1000,DEFEND_LOCATION,50000)

REM -------------------------------------------------------------------------------------------------------------------------------------------

RANDOMISE_FLAG(PLAYER_NEUTRAL,FLAG1,7)

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 1)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("battle01.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 2)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("battle02.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 3)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("battle03.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 4)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("battle04.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 5)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("01. Theme.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 6)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("05. Outro Fail.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG1 == 7)
		IF(PLAYER1,ACTIVE_BATTLES >= 1)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC("06. Outro Win.mp3")
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 1)
	IF(PLAYER_NEUTRAL,TIMER0 >= 600)
		IF(PLAYER1,ACTIVE_BATTLES == 0)	
			NEXT_COMMAND_REUSABLE
			RANDOMISE_FLAG(PLAYER_NEUTRAL,FLAG1,7)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER_NEUTRAL,FLAG0,0)
			NEXT_COMMAND_REUSABLE
			RANDOMISE_FLAG(PLAYER_NEUTRAL,FLAG2,4)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER1)
			NEXT_COMMAND_REUSABLE
			ADD_TO_TIMER(PLAYER_NEUTRAL,TIMER1,6600)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG2 == 1)
		IF(PLAYER_NEUTRAL,TIMER1 >= 6600)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC(3)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER_NEUTRAL,FLAG2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG2 == 2)
		IF(PLAYER_NEUTRAL,TIMER1 >= 6600)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC(4)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER_NEUTRAL,FLAG2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG2 == 3)
		IF(PLAYER_NEUTRAL,TIMER1 >= 6600)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC(5)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER_NEUTRAL,FLAG2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER_NEUTRAL,FLAG0 == 0)
	IF(PLAYER_NEUTRAL,FLAG2 == 4)
		IF(PLAYER_NEUTRAL,TIMER1 >= 6600)
			NEXT_COMMAND_REUSABLE
			SET_MUSIC(6)
			NEXT_COMMAND_REUSABLE
			ADD_TO_FLAG(PLAYER_NEUTRAL,FLAG2,-3)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_NEUTRAL,TIMER1)
		ENDIF
	ENDIF
ENDIF

REM -------------------------------------------------------------------------------------------------------------------------------------------

REM Attacks

IF(PLAYER1,GAME_TURN >= 4000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FIRST,2,DUNGEON,0,2,300)
	QUICK_OBJECTIVE(3,​"The Heroes are sallying forth. Find and capture the Hero Gates they are coming from lest you get overrun.",PLAYER1)
ENDIF

IF(PLAYER1,GAME_TURN >= 4300)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FIRST,-1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FIRST,-3,1)
	SET_TIMER(PLAYER0,TIMER0)
	SET_TIMER(PLAYER0,TIMER1)
	SET_TIMER(PLAYER0,TIMER2)
	SET_TIMER(PLAYER0,TIMER3)
	SET_TIMER(PLAYER_GOOD,TIMER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GIANT_GUARD,3,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GIANT_GUARD,4,2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRY_GUARD,6,3)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FAIRY_GUARD,7,3)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,14,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,13,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,12,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,8,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,11,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,9,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WANDERING_GUARDS,10,1)
ENDIF

REM Easy waves

IF(PLAYER0,TIMER0 >= 2050)
	IF(PLAYER0,FLAG0 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EASY_FIRST,-5,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER0)
	ENDIF
ENDIF

IF(PLAYER0,TIMER1 >= 2050)
	IF(PLAYER_GOOD,TIMER0 >= 2500)
		IF(PLAYER0,FLAG1 == 0)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EASY_SECOND,-4,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER0,TIMER1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0,TIMER2 >= 2050)
	IF(PLAYER_GOOD,TIMER0 >= 4500)
		IF(PLAYER0,FLAG2 == 0)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EASY_THIRD,-2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER0,TIMER2)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0,TIMER3 >= 2050)
	IF(PLAYER_GOOD,TIMER0 >= 3500)
		IF(PLAYER0,FLAG3 == 0)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EASY_FOURTH,-3,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER0,TIMER3)
		ENDIF
	ENDIF
ENDIF


IF_SLAB_OWNER(​7,​67,​PLAYER1)
	SET_TIMER(PLAYER1,TIMER0)
	SET_TIMER(PLAYER1,TIMER1)
	SET_TIMER(PLAYER1,TIMER2)
	SET_TIMER(PLAYER_GOOD,TIMER1)
ENDIF

REM Medium waves

IF(PLAYER1,TIMER0 >= 2750)
	IF(PLAYER0,FLAG0 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MEDIUM_FIRST,-5,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER1,TIMER0)
	ENDIF
ENDIF

IF(PLAYER1,TIMER1 >= 2750)
	IF(PLAYER0,FLAG2 == 0)
		IF(PLAYER_GOOD,TIMER1 >= 2850)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MEDIUM_SECOND,-2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER1,TIMER1)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER1,TIMER2 >= 2750)
	IF(PLAYER0,FLAG3 == 0)
		IF(PLAYER_GOOD,TIMER1 >= 3750)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MEDIUM_THIRD,-3,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER1,TIMER2)
		ENDIF
	ENDIF
ENDIF


IF_SLAB_OWNER(​13,​29,​PLAYER1)
	SET_TIMER(PLAYER2,TIMER0)
	SET_TIMER(PLAYER2,TIMER1)
	SET_TIMER(PLAYER_GOOD,TIMER2)
	CREATURE_ENTRANCE_LEVEL(PLAYER0,4)
ENDIF

REM Hard waves

IF(PLAYER2,TIMER0 >= 4350)
	IF(PLAYER0,FLAG2 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HARD_FIRST,-2,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER2,TIMER0)
	ENDIF
ENDIF

IF(PLAYER2,TIMER1 >= 4350)
	IF(PLAYER0,FLAG3 == 0)
		IF(PLAYER_GOOD,TIMER2 >= 8000)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HARD_SECOND,-3,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER2,TIMER1)
		ENDIF
	ENDIF
ENDIF

IF_SLAB_OWNER(​78,​28,​PLAYER1)
	SET_TIMER(PLAYER3,TIMER2)
	CREATURE_ENTRANCE_LEVEL(PLAYER0,2)
	CREATURE_ENTRANCE_LEVEL(PLAYER0,2)
ENDIF

REM Very hard wave

IF(PLAYER3,TIMER2 >= 8000)
	IF(PLAYER0,FLAG3 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VERY_HARD,-3,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER3,TIMER2)
	ENDIF
ENDIF

REM Captured Hero Gates

IF_SLAB_OWNER(​2,​81,​​PLAYER1)
	SET_FLAG(PLAYER0,FLAG1,1)
	QUICK_INFORMATION(4,​"This Hero Gate has been disabled now.",-4)
	USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
	HIDE_HERO_GATE(-4,1)
ENDIF

IF_SLAB_OWNER(​7,​34,​​PLAYER1)
	SET_FLAG(PLAYER0,FLAG0,1)
	QUICK_INFORMATION(5,​"This Hero Gate has been disabled now.",-5)
	USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
	HIDE_HERO_GATE(-5,1)
ENDIF

IF_SLAB_OWNER(​80,​5,​​PLAYER1)
	SET_FLAG(PLAYER0,FLAG2,1)
	QUICK_INFORMATION(6,​"This Hero Gate has been disabled now.",-2)
	USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
	HIDE_HERO_GATE(-2,1)
ENDIF

IF_SLAB_OWNER(​83,​66,​PLAYER1)
	SET_FLAG(PLAYER0,FLAG3,1)
	QUICK_INFORMATION(7,​"This Hero Gate has been disabled now.",-3)
	USE_SPECIAL_INCREASE_LEVEL(PLAYER0,1)
	HIDE_HERO_GATE(-3,1)
ENDIF

REM Astaroth

IF_ALLIED(PLAYER0,PLAYER1 == 1)
	IF_ALLIED(PLAYER1,PLAYER0 == 1)
		IF(PLAYER0,ACTIVE_BATTLES >= 1)
			IF(PLAYER1,ACTIVE_BATTLES == 0)
				IF(PLAYER1,GAME_TURN >= 2000)
					QUICK_INFORMATION(8,​"Your alliance with Keeper Astaroth is holding up so far and he will be useful in distracting the Heroes. However, consider your options with him once the time is right. As he will likely do the same.",PLAYER0)
					ZOOM_TO_LOCATION(PLAYER1,COMBAT[PLAYER0])
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF_ALLIED(PLAYER1,PLAYER0 == 1)
	IF_ALLIED(PLAYER0,PLAYER1 == 1)
		IF(PLAYER0,HEART_HEALTH < 25000)
			IF(PLAYER1,TOTAL_CREATURES <= 10)
				QUICK_MESSAGE(9, "If you value my help, help me now!", PLAYER0)
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF_ALLIED(PLAYER1,PLAYER0 == 0)
	IF_ALLIED(PLAYER0,PLAYER1 == 1)
		IF(PLAYER0,FLAG4 == 0)
			IF(PLAYER0,DUNGEON_DESTROYED == 0)
				QUICK_MESSAGE(10, "Blue Tempest, you will pay for your betrayal!", PLAYER0)
				ALLY_PLAYERS(PLAYER1,PLAYER0,2)
				COMPUTER_PLAYER(PLAYER0,0)
				MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF_ALLIED(PLAYER1,PLAYER0 == 1)
	IF_ALLIED(PLAYER0,PLAYER1 == 1)
		IF(PLAYER0,FLAG4 == 1)
			IF(PLAYER0,DUNGEON_DESTROYED == 0)
				QUICK_MESSAGE(11, "You have outlived your usefulness.", PLAYER0)
				ALLY_PLAYERS(PLAYER1,PLAYER0,2)
				COMPUTER_PLAYER(PLAYER0,0)
				MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
			ENDIF
		ENDIF
	ENDIF
ENDIF

REM ENDGAME

IF_ACTION_POINT(1,PLAYER1)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
	QUICK_OBJECTIVE(12,​"The Dungeon Heart is within your reach, destroy it! ",PLAYER_GOOD)
ENDIF

IF_ACTION_POINT(5,PLAYER1)
	SET_FLAG(PLAYER_GOOD,FLAG0,2)
	QUICK_OBJECTIVE(13,​"Thread with care, for the Heroes will not take kindly for encroaching their inner dungeon.",PLAYER_GOOD)
ENDIF

IF(PLAYER1,GOOD_CREATURES > 5)
	SET_FLAG(PLAYER_GOOD,FLAG0,3)
	QUICK_OBJECTIVE(14,​"Your activities have not gone unnoticed; the Heroes will not look kindly upon you for torturing and turning their soldiers. They will likely undertake action soon.",PLAYER1)
ENDIF

IF(PLAYER1,TOTAL_CREATURES > 30)
	SET_FLAG(PLAYER_GOOD,FLAG0,4)
	QUICK_OBJECTIVE(15,​"Your growing army has not gone unnoticed; the Heroes will likely undertake action soon.",PLAYER1)
ENDIF

IF(PLAYER_GOOD,FLAG0 != 0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,OVERWORLD_LIGHT,-1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VERY_HARD,-1,1)
	SET_TIMER(PLAYER3,TIMER0)
	SET_CREATURE_STRENGTH(WIZARD,140)
	SET_CREATURE_HEALTH(WIZARD,4000)
	SET_CREATURE_ARMOUR(WIZARD,180)
	SET_CREATURE_PROPERTY(WIZARD,LORD,1)
	SET_CREATURE_PROPERTY(WIZARD,SEE_INVISIBLE,1)
	SET_CREATURE_PROPERTY(WIZARD,NEVER_CHICKENS,1)
	SET_CREATURE_PROPERTY(WIZARD,IMMUNE_TO_BOULDER,1)
	SET_CREATURE_PROPERTY(WIZARD,NO_IMPRISONMENT,1)
	SET_CREATURE_PROPERTY(WIZARD,IMMUNE_TO_DISEASE,1)
	SET_CREATURE_CONFIGURATION(WIZARD,BaseSpeed,30)
	SET_CREATURE_CONFIGURATION(WIZARD,FearsomeFactor,10)
	SET_CREATURE_PROPERTY(WIZARD,ILLUMINATED,1)
ENDIF

IF(PLAYER3,TIMER0 >= 1000)
	QUICK_OBJECTIVE(16,​"The Mage Lord has returned from the Overworld with reinforcements at his back! ",PLAYER_GOOD)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,OVERWORLD_LIGHT,-1,1)
ENDIF

IF(PLAYER3,TIMER0 >= 1750)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,VERY_HARD,-1,1)
ENDIF

IF(PLAYER3,TIMER0 >= 3000)
	QUICK_MESSAGE(17, "We meet again, at the turn at the tide.", WIZARD)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAGE_LORD,-1,1)
	SET_TIMER(PLAYER3,TIMER1)
	SET_TIMER(PLAYER3,TIMER3)
	ZOOM_TO_LOCATION(PLAYER1,PLAYER_GOOD)
ENDIF

IF(PLAYER3,TIMER1 >= 5000)
	IF(PLAYER_GOOD,DUNGEON_DESTROYED == 0)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,OVERWORLD_LIGHT,-1,1)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,OVERWORLD_HEAVY,-1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER3,TIMER1)
	ENDIF
ENDIF

IF(PLAYER3,TIMER3 >= 20000)
	ADD_TO_PARTY(OVERWORLD_HEAVY,BARBARIAN,8,600,ATTACK_ROOMS,400)
	ADD_TO_PARTY(OVERWORLD_LIGHT,THIEF,10,500,ATTACK_ENEMIES,0)
ENDIF

IF(PLAYER3,TIMER3 >= 40000)
	ADD_TO_PARTY(OVERWORLD_HEAVY,WITCH,10,750,STEAL_SPELLS,400)
	ADD_TO_PARTY(OVERWORLD_LIGHT,ARCHER,10,750,DEFEND_PARTY,0)
ENDIF

IF(PLAYER3,TIMER3 >= 60000)
	ADD_TO_PARTY(OVERWORLD_HEAVY,TIME_MAGE,10,750,STEAL_SPELLS,400)
	ADD_TO_PARTY(OVERWORLD_LIGHT,DWARFA,9,300,ATTACK_ROOMS,0)
ENDIF

IF(PLAYER1,ENTRANCE > 9)
	MAX_CREATURES(PLAYER1,24)
	SET_GENERATE_SPEED(800)
ENDIF

IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
	IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
		SET_FLAG(PLAYER_GOOD,FLAG1,1)
		SET_FLAG(PLAYER0,FLAG4,1)
		HIDE_HERO_GATE(-1,1)
	ENDIF
ENDIF

IF(PLAYER0,DUNGEON_DESTROYED == 1)
	IF(PLAYER_GOOD,FLAG1 != 0)
			QUICK_OBJECTIVE(18,​"You have won a great battle. Summerland has effectively fallen and all your rivals are also gone. There is only one obstacle left for complete victory: the Witch Queen. Persue her.",PLAYER1)
		WIN_GAME
	ENDIF
ENDIF
