LEVEL_VERSION(1)

START_MONEY(ALL_PLAYERS,12000)

SET_GENERATE_SPEED(350)

MAX_CREATURES(PLAYER0,25)
MAX_CREATURES(PLAYER1,32)

COMPUTER_PLAYER(PLAYER1,0)

ALLY_PLAYERS(PLAYER1,PLAYER_GOOD,1)

ADD_CREATURE_TO_POOL(DRAGON,4)
ADD_CREATURE_TO_POOL(ORC,5)
ADD_CREATURE_TO_POOL(HELL_HOUND,4)
ADD_CREATURE_TO_POOL(TENTACLE,2)
ADD_CREATURE_TO_POOL(SORCEROR,4)
ADD_CREATURE_TO_POOL(DWARFA,8)
ADD_CREATURE_TO_POOL(FAIRY,7)
ADD_CREATURE_TO_POOL(WIZARD,6)
ADD_CREATURE_TO_POOL(GIANT,7)
ADD_CREATURE_TO_POOL(SAMURAI,4)

CREATURE_AVAILABLE(PLAYER0,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER0,ORC,1,0)
CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER1,DWARFA,1,0)
CREATURE_AVAILABLE(PLAYER1,FAIRY,1,0)
CREATURE_AVAILABLE(PLAYER1,WIZARD,1,0)
CREATURE_AVAILABLE(PLAYER1,GIANT,1,0)
CREATURE_AVAILABLE(PLAYER1,SAMURAI,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,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER1,PRISON,1,0)
ROOM_AVAILABLE(PLAYER1,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER1,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_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_DISEASE,1,0)

TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)

CREATE_PARTY(A)
ADD_TO_PARTY(A,DWARFA,6,0,ATTACK_ROOMS,0)
ADD_TO_PARTY(A,DWARFA,6,0,ATTACK_ROOMS,0)
ADD_TO_PARTY(A,WIZARD,5,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(A,WIZARD,5,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(A,THIEF,7,0,STEAL_GOLD,0)
ADD_TO_PARTY(A,THIEF,7,0,STEAL_GOLD,0)

CREATE_PARTY(B)
ADD_TO_PARTY(B,BARBARIAN,5,0,ATTACK_ROOMS,0)
ADD_TO_PARTY(B,BARBARIAN,5,0,ATTACK_ROOMS,0)
ADD_TO_PARTY(B,MONK,6,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(B,MONK,6,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(B,FAIRY,6,0,STEAL_SPELLS,0)
ADD_TO_PARTY(B,FAIRY,6,0,STEAL_SPELLS,0)

CREATE_PARTY(C)
ADD_TO_PARTY(C,SAMURAI,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,SAMURAI,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,MONK,8,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,MONK,8,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,WITCH,9,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,WITCH,9,0,ATTACK_ENEMIES,0)

CREATE_PARTY(D)
ADD_TO_PARTY(D,GIANT,10,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,GIANT,10,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,WIZARD,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,WIZARD,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,FAIRY,9,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,FAIRY,9,0,ATTACK_ENEMIES,0)

CREATE_PARTY(E)
ADD_TO_PARTY(E,KNIGHT,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(E,SAMURAI,9,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(E,SAMURAI,9,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(E,SAMURAI,9,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(E,SAMURAI,9,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(E,WIZARD,10,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(E,WIZARD,10,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(E,WIZARD,10,0,ATTACK_ENEMIES,0)

QUICK_OBJECTIVE(1,"Heroes in this realm are very rich. When you are strong enough, attack the hero fortress, grab their treasury away, claim their rooms, and watch out for their paybacks as well. Then defeat both the lord of land and the enemy keeper to win.",PLAYER0)

SET_CREATURE_PROPERTY(VAMPIRE,NO_IMPRISONMENT,1)
SET_CREATURE_PROPERTY(KNIGHT,NO_IMPRISONMENT,1)

QUICK_INFORMATION(2,"Can you free your imprisoned creatures before they starve to death?",6)

SET_FLAG(PLAYER0, FLAG1,0)

IF(PLAYER0,FLAG1!=2)
IF_ACTION_POINT(1,PLAYER0)
	QUICK_INFORMATION(3,"You just triggered an alarm. Heroes will attack soon!",-1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,A,-1,1)
	SET_TIMER(PLAYER0,TIMER1)
ENDIF
ENDIF

IF(PLAYER0,FLAG1!=2)
IF_ACTION_POINT(2,PLAYER0)
	QUICK_INFORMATION(3,"You just triggered an alarm. Heroes will attack soon!",-2)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,1)
	SET_TIMER(PLAYER0,TIMER2)
ENDIF
ENDIF
IF(PLAYER0,FLAG1!=2)
IF_ACTION_POINT(3,PLAYER0)
	QUICK_INFORMATION(4,"You just triggered an alarm. More heroes will attack soon!",-3)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,C,-3,1)
	SET_TIMER(PLAYER0,TIMER3)
ENDIF
ENDIF
IF(PLAYER0,FLAG1!=2)
IF_ACTION_POINT(4,PLAYER0)
	QUICK_INFORMATION(4,"You just triggered an alarm. More heroes will attack soon!",-4)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,D,-4,1)
	SET_TIMER(PLAYER0,TIMER4)
ENDIF
ENDIF
IF_ACTION_POINT(5,PLAYER0)
	QUICK_OBJECTIVE(5,"The lord of the land has come! This strong-willing man will fight to death and will not accept being captured by you! ",5)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,E,PLAYER_GOOD,1)
	SET_FLAG(PLAYER0, FLAG1,1)
ENDIF

IF(PLAYER0,PRISON>=25)
	QUICK_INFORMATION(8,"This prison is full of smell of corpses. Prisoners placed in here have a probability to die before turning into skeletons.",7)
	SET_GAME_RULE(PrisonSkeletonChance,66)
ENDIF

IF(PLAYER0,SKELETON>=10)
	QUICK_INFORMATION(9,"The smell in prison becomes even more serious, making it more likely for prisoners to die before turning into skeletons.",7)
	SET_GAME_RULE(PrisonSkeletonChance,33)
ENDIF

IF(PLAYER0,SKELETON>=15)
	SET_GAME_RULE(PrisonSkeletonChance,0)
ENDIF

IF(PLAYER0,TORTURE>=1)
	QUICK_INFORMATION(10,"The torturers in this torture room are cruel. Victims placed in here have a probability of dying before being converted.",8)
	SET_GAME_RULE(TortureDeathChance,33)
	SET_GAME_RULE(GhostConvertChance,30)
ENDIF

IF(PLAYER0,CREATURES_CONVERTED >=8)
	QUICK_INFORMATION(11,"After working for so long time, the torturers have lost their patience and they are more likely to kill the victims before they are converted.",8)
	SET_GAME_RULE(TortureDeathChance,66)
	SET_GAME_RULE(GhostConvertChance,0)
ENDIF

IF(PLAYER0,CREATURES_CONVERTED >=12)
	SET_GAME_RULE(TortureDeathChance,100)
ENDIF

IF(PLAYER0,GRAVEYARD>=1)
	QUICK_INFORMATION(12,"This abandoned graveyard is not effecient. You will need to collect more corpses to summon vampires in here.",9)
	SET_GAME_RULE(BodiesForVampire,16)
ENDIF

IF(PLAYER0,FLAG1==1)
IF(PLAYER_GOOD,KNIGHT==0)
	QUICK_OBJECTIVE(7,"Seeing their lord being killed, heroes retreated and their attack stopped. However, there is still an enemy keeper in the south!",PLAYER0)
	SET_FLAG(PLAYER0, FLAG1,2)
ENDIF
ENDIF

IF(PLAYER_GOOD,DUNGEON_DESTROYED==1)
	ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,1)
	TUTORIAL_FLASH_BUTTON(18,-1)
	 ALLY_PLAYERS(PLAYER1,PLAYER_GOOD,1)
ENDIF

IF(PLAYER0,FLAG1!=2)
IF(PLAYER0,TIMER1>=4000)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,A,-1,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER1)
ENDIF
ENDIF

IF(PLAYER0,FLAG1!=2)
IF(PLAYER0,TIMER2>=4000)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER2)
ENDIF
ENDIF

IF(PLAYER0,FLAG1!=2)
IF(PLAYER0,TIMER3>=4000)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,C,-3,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER3)
ENDIF
ENDIF

IF(PLAYER0,FLAG1!=2)
IF(PLAYER0,TIMER4>=4000)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,D,-4,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER4)
ENDIF
ENDIF

IF(PLAYER0,FLAG1==2)
IF(PLAYER0,ALL_DUNGEONS_DESTROYED==1)
	QUICK_OBJECTIVE(6,"Both enemies are defeated. Congratulations, you win!",PLAYER0)
	WIN_GAME
ENDIF
ENDIF
