LEVEL_VERSION(1)
SET_GENERATE_SPEED(300)
START_MONEY(ALL_PLAYERS,10000)
MAX_CREATURES(ALL_PLAYERS,15)

ADD_CREATURE_TO_POOL(SPIDER,1)
ADD_CREATURE_TO_POOL(HELL_HOUND,3)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,3)
ADD_CREATURE_TO_POOL(SALAMANDER,5)
ADD_CREATURE_TO_POOL(MAIDEN,5)
ADD_CREATURE_TO_POOL(GOBLIN,2)

CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SALAMANDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,MAIDEN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,GOBLIN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)

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,3,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)

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

TRAP_AVAILABLE(ALL_PLAYERS,CANNON,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,TURRET,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,FLAILTRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,FLAMETRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,CAVE_IN_TRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,FREEZE_TRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WINDTRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNINGTRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,BEARTRAP,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,GRAPPLEHOOKTRAP,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0)

SET_GAME_RULE(ImpWorkExperience,124)
SET_GAME_RULE(DragUnconsciousToLair,1)

CREATE_PARTY(PRINCE1)
ADD_TO_PARTY(PRINCE1, BARBARIAN, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE1, GIANT, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE1, WIZARD, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE1, ARCHER, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE1, ARCHER, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE1, THIEF, 8, 50, STEAL_GOLD, 0)
ADD_TO_PARTY(PRINCE1, THIEF, 8, 50, STEAL_SPELLS, 0)
ADD_TO_PARTY(PRINCE1, THIEF, 8, 50, STEAL_SPELLS, 0)


CREATE_PARTY(PRINCE2)
ADD_TO_PARTY(PRINCE2, FAIRY, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE2, FAIRY, 9, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE2, WIZARD, 8, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE2, WIZARD, 9, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE2, FAIRY, 9, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE2, THIEF, 8, 50, STEAL_GOLD, 0)
ADD_TO_PARTY(PRINCE2, THIEF, 9, 50, STEAL_GOLD, 0)
ADD_TO_PARTY(PRINCE2, THIEF, 8, 50, STEAL_SPELLS, 0)
ADD_TO_PARTY(PRINCE2, THIEF, 9, 50, STEAL_SPELLS, 0)

CREATE_PARTY(PRINCE3)
ADD_TO_PARTY(PRINCE3, DWARFA, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE3, DWARFA, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE3, MONK, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE3, MONK, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE3, WITCH, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE3, WITCH, 10, 50, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(PRINCE4)
ADD_TO_PARTY(PRINCE4, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE4, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE4, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE4, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE4, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE4, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(PRINCE5)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE5, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(PRINCE6)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, SAMURAI, 10, 50, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PRINCE6, KNIGHT, 10, 50, ATTACK_DUNGEON_HEART, 0)

IF(PLAYER0,WORKSHOP >=1)
	ADD_CREATURE_TO_POOL(TROLL,3)	
	MAX_CREATURES(ALL_PLAYERS,18)	
	QUICK_OBJECTIVE(8,"We have the workshop back... we should enlarge and use it.",All_PLAYERS)
ENDIF

QUICK_OBJECTIVE(3,"The enemy proved to be quicker than anticipated, as they managed to steal our workshop along with our trolls and all the blueprints. In the meantime, they put it to good use and completely mined out their castle.",All_PLAYERS)

IF_ACTION_POINT(1,PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE3,-2,1)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
	SET_TIMER(PLAYER2, TIMER1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE5,-4,1)
ENDIF

IF(PLAYER2,TIMER1 > 2000)
QUICK_OBJECTIVE(6,"This is the enemys last attempt to kill you.",All_PLAYERS)

	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE6,-4,1)
ENDIF

IF_ACTION_POINT(5,PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE4,-3,1)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE1,-1,1)
ENDIF

IF_ACTION_POINT(2,PLAYER0)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE2,-5,1)
ENDIF

IF_ACTION_POINT(6,PLAYER0)
	QUICK_INFORMATION(4,"Keeper, I have a very bad feeling about this. We should make very good use of the new traps... ",All_PLAYERS)

	SET_TIMER(PLAYER3, TIMER1)
ENDIF

IF(PLAYER3,TIMER1 > 5000)
	QUICK_INFORMATION(9,"The Enemy is coming and sending some waves to us. Pahh. We're prepared... ",All_PLAYERS)

	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE1,-3,1)

ENDIF

IF(PLAYER3,TIMER1 > 8000)

	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE2,-3,1)

ENDIF

IF(PLAYER3,TIMER1 > 15000)

	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PRINCE3,-3,1)

ENDIF

SET_TIMER(PLAYER1, TIMER1)

IF(PLAYER1, TIMER1 >= 500)
QUICK_INFORMATION(1,"this map is intended to show various new trapstyles. further changing is very likely. ",All_PLAYERS)
ENDIF

IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
	WIN_GAME
	QUICK_OBJECTIVE(2,"It's done. Excellent work my Master. This is our Realm now.",All_PLAYERS)
ENDIF