LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(PLAYER0,35000)
MAX_CREATURES(ALL_PLAYERS,25)

SET_GAME_RULE(ImpWorkExperience, 300)
SET_CREATURE_CONFIGURATION(THIEF, PrimaryJobs, TRAIN)
SET_CREATURE_MAX_LEVEL(PLAYER0, THIEF, 3)
SET_PLAYER_COLOR(PLAYER0, WHITE)
SET_PLAYER_COLOR(PLAYER_GOOD, RED)

ADD_CREATURE_TO_POOL(DWARFA,7)
ADD_CREATURE_TO_POOL(ARCHER,7)
ADD_CREATURE_TO_POOL(BARBARIAN,7)
ADD_CREATURE_TO_POOL(FAIRY,7)
ADD_CREATURE_TO_POOL(WIZARD,2)

CREATURE_AVAILABLE(PLAYER0,DWARFA,1,0)
CREATURE_AVAILABLE(PLAYER0,ARCHER,1,0)
CREATURE_AVAILABLE(PLAYER0,BARBARIAN,1,0)
CREATURE_AVAILABLE(PLAYER0,FAIRY,1,0)
CREATURE_AVAILABLE(PLAYER0,WIZARD,1,0)

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

MAGIC_AVAILABLE(PLAYER0,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_POSSESS,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CONCEAL,1,0)

TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)

DOOR_AVAILABLE(PLAYER0,WOOD,1,1)

REM Constant timer
SET_TIMER(PLAYER0, TIMER0)
REM Gold Spawn timer
SET_TIMER(PLAYER0, TIMER1)

REM Gold Shrine 1 (Bottom Right)
SET_FLAG(PLAYER0, FLAG0, 0)
REM Gold Shrine 2 (Bottom Left)
SET_FLAG(PLAYER0, FLAG1, 0
REM Gold Shrine 3 (Middle Right, Lower)
SET_FLAG(PLAYER0, FLAG2, 0)
REM Gold Shrine 4 (Middle Right, Upper)
SET_FLAG(PLAYER0, FLAG3, 0)
REM Gold Shrine 5 (Middle Left)
SET_FLAG(PLAYER0, FLAG4, 0)
REM Gold Shrine 6 (Top Left)
SET_FLAG(PLAYER0, FLAG5, 0)

CREATE_PARTY(SHRINE1)
ADD_TO_PARTY(SHRINE1, GIANT, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE1, GIANT, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE1, FAIRY, 3, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(SHRINE2)
ADD_TO_PARTY(SHRINE2, DWARFA, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE2, MONK, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE2, MONK, 3, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(SHRINE3)
ADD_TO_PARTY(SHRINE3, BARBARIAN, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE3, BARBARIAN, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE3, FAIRY, 3, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(SHRINE4)
ADD_TO_PARTY(SHRINE4, DWARFA, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE4, ARCHER, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(SHRINE4, ARCHER, 3, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(LORD)
ADD_TO_PARTY(LORD, KNIGHT, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, SAMURAI, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, SAMURAI, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, ARCHER, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, WIZARD, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, WIZARD, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, GIANT, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, GIANT, 10, 5000, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(LORD2)
ADD_TO_PARTY(LORD, BARBARIAN, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, BARBARIAN, 10, 5000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(LORD, BARBARIAN, 10, 5000, ATTACK_DUNGEON_HEART, 0)


IF(PLAYER0, TIMER0 >= 20)
	REM QUICK_OBJECTIVE(1, "This realm is devoid of any gold, however lost shrines to gods now forgotten lay dormant. Claiming them should provide a trickle of gold we can make use of.", 1)
	DISPLAY_OBJECTIVE(27, 1)
	REVEAL_MAP_RECT(PLAYER0, 208, 220, 5, 5)
ENDIF

REM Give 5 minutes of bonus grace period
IF(PLAYER0, TIMER0 > 6000)
	REM QUICK_INFORMATION(2, "Your foes have divined your presence, it may be wise to act swiftly and take the shrines from them.")
	DISPLAY_INFORMATION(28)
	SET_TIMER(PLAYER0, TIMER2) REM Enemy Spawn timer
ENDIF

REM Gold Shrine Owner section
IF_SLAB_OWNER(69, 73, PLAYER0)
	SET_FLAG(PLAYER0, FLAG0, 1)
ENDIF
IF_SLAB_OWNER(6, 75, PLAYER0)
	SET_FLAG(PLAYER0, FLAG1, 1)
ENDIF
IF_SLAB_OWNER(63, 57, PLAYER0)
	SET_FLAG(PLAYER0, FLAG2, 1)
ENDIF
IF_SLAB_OWNER(13, 35, PLAYER0)
	SET_FLAG(PLAYER0, FLAG3, 1)
ENDIF
IF_SLAB_OWNER(75, 41, PLAYER0)
	SET_FLAG(PLAYER0, FLAG4, 1)
ENDIF
IF_SLAB_OWNER(76, 8, PLAYER0)
	SET_FLAG(PLAYER0, FLAG5, 1)
ENDIF

IF_ACTION_POINT(7, PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, LORD, 7, 1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD, LORD2, 7, 1)
ENDIF

IF_ACTION_POINT(8, PLAYER0)
	REM QUICK_INFORMATION(3, "Looks like this TIME WIZARD got himself trapped, good thing you found him in... time.")
	DISPLAY_INFORMATION(29)
ENDIF

REM Spawn gold every 1 minute
IF(PLAYER0, TIMER1 >= 1200)
	IF(PLAYER0, FLAG0 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(GOLD_CHEST, 9, 1000, PLAYER0)
		NEXT_COMMAND_REUSABLE
		PLAY_MESSAGE(PLAYER0, SOUND, "payday3.wav")
	ENDIF
	IF(PLAYER0, FLAG1 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(GOLD_CHEST, 9, 750, PLAYER0)
	ENDIF
	IF(PLAYER0, FLAG2 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(GOLD_CHEST, 9, 750, PLAYER0)
	ENDIF
	IF(PLAYER0, FLAG3 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(GOLD_CHEST, 9, 750, PLAYER0)
	ENDIF
	IF(PLAYER0, FLAG4 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(GOLD_CHEST, 9, 750, PLAYER0)
	ENDIF
	IF(PLAYER0, FLAG5 == 1)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(GOLD_CHEST, 9, 750, PLAYER0)
	ENDIF
	
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0, TIMER1)
ENDIF

REM Spawn attack waves until shrines are taken every 3 minutes
IF(PLAYER0, TIMER2 >= 3600)
	IF(PLAYER0, FLAG1 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, SHRINE1, -1, DUNGEON, 1, 3, 250)
	ENDIF
	IF(PLAYER0, FLAG2 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, SHRINE2, -2, DUNGEON, 1, 3, 250)
	ENDIF
	IF(PLAYER0, FLAG3 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, SHRINE3, -3, DUNGEON, 1, 3, 250)
	ENDIF
	IF(PLAYER0, FLAG4 == 0)
		NEXT_COMMAND_REUSABLE
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, SHRINE4, -4, DUNGEON, 1, 3, 250)
	ENDIF
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0, TIMER2)
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
	WIN_GAME
ENDIF

IF(PLAYER0, THIEF == 0)
	LOSE_GAME
ENDIF