LEVEL_VERSION(1)
SET_GENERATE_SPEED(600)
START_MONEY(ALL_PLAYERS,40000)
MAX_CREATURES(PLAYER0,40)
MAX_CREATURES(PLAYER1,35)
MAX_CREATURES(PLAYER2,35)
MAX_CREATURES(PLAYER3,35)

COMPUTER_PLAYER(PLAYER1,16)
COMPUTER_PLAYER(PLAYER2,16)
COMPUTER_PLAYER(PLAYER3,16)

ADD_CREATURE_TO_POOL(FLY,20)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)

CREATURE_AVAILABLE(ALL_PLAYERS,FLY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,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(PLAYER0,BRIDGE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER2,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER3,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER0,TEMPLE,3,0)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,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,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,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_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,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)

TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)


REM middle dungeon break open

IF(PLAYER0,GAME_TURN>=36000)
CHANGE_SLAB_TYPE(38,42,PRETTY_PATH,NONE)
CHANGE_SLAB_TYPE(44,42,PRETTY_PATH,NONE)
CHANGE_SLAB_TYPE(41,45,PRETTY_PATH,NONE)
ENDIF

REM small "church" message
IF_ACTION_POINT(1,PLAYER0)
QUICK_INFORMATION(1,"You found a small hero temple , the monks and prietress guarding it are level 5,however, converted to your side they would be excellent fighters.",1)
ENDIF


CREATE_PARTY(MAGIC)
 ADD_TO_PARTY(MAGIC,WIZARD,7,1500,ATTACK_DUNGEON_HEART,0)
 ADD_TO_PARTY(MAGIC,WITCH,7,1500,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(MAGIC,MONK,7,1500,ATTACK_DUNGEON_HEART,0)
 ADD_TO_PARTY(MAGIC,FAIRY,7,1500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(BRUTE)
 ADD_TO_PARTY(BRUTE,BARBARIAN,7,1500,ATTACK_DUNGEON_HEART,0)
 ADD_TO_PARTY(BRUTE,DWARFA,7,1500,ATTACK_DUNGEON_HEART,0)
 ADD_TO_PARTY(BRUTE,GIANT,7,1500,ATTACK_DUNGEON_HEART,0)
 ADD_TO_PARTY(BRUTE,SAMURAI,7,1500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(KNIGHT)
 ADD_TO_PARTY(KNIGHT,KNIGHT,10,1500,ATTACK_DUNGEON_HEART,0)


IF(PLAYER0,TIMER0>=2450)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BRUTE,-1,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAGIC,-1,1)
ENDIF

IF(PLAYER0,TIMER0>=2500)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BRUTE,-1,2)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAGIC,-1,2)
ENDIF

IF(PLAYER0,TIMER0>=2550)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BRUTE,-1,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BRUTE,-1,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAGIC,-1,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,MAGIC,-1,1)
ENDIF

IF(PLAYER0,TIMER0>=2600)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,KNIGHT,-1,1)
ENDIF

REM winning condition , after defeating the heroes and keepers
IF(PLAYER0,TIMER0>=2650)
 IF_CONTROLS(PLAYER_GOOD,KNIGHT==0)
  ALLY_PLAYERS(RED,GREEN,1)
  ALLY_PLAYERS(RED,YELLOW,1)
  ALLY_PLAYERS(RED,BLUE,1)
  QUICK_OBJECTIVE(2,"Well... now that you have defeated the good of this land, finish the job and betray the last keeper !")
  ADD_TO_FLAG(PLAYER0,FLAG0,1)
 ENDIF
ENDIF



IF(PLAYER0,TEMPLE>=1)
 QUICK_INFORMATION(3,"You found a temple, you can now build it !")
ENDIF

QUICK_OBJECTIVE(4,"In this realm , 3 keepers are already at war with each other , and the only connection point to them is either somes gems seams to the sides of tha map , or a white dungeon in the middle. That middle dungeon will soon be breached by the other keepers. Make sure to get to the gem seams as quickly as possible before others keeper does.",PLAYER0)


IF(PLAYER0,FLAG0==1)
  ALLY_PLAYERS(BLUE,GREEN,3)
  ALLY_PLAYERS(BLUE,YELLOW,3)
  ALLY_PLAYERS(YELLOW,GREEN,3)
  QUICK_OBJECTIVE(5,"As you destroyed a ennemy dungeon, the remaining keepers decided to put their little war apart and ally together and defeat you. Watch out...")
  ENDIF

IF(PLAYER0,FLAG0==2)
 SET_TIMER(PLAYER0,TIMER0)
 QUICK_OBJECTIVE(6,"Well... the last keeper was impressed by your strength demonstration. He finally decided to ally with you. But, the good side did not like that, and will be very soon sending a strong army to finish you, and your new ally.")
  ALLY_PLAYERS(RED,GREEN,3)
  ALLY_PLAYERS(RED,YELLOW,3)
  ALLY_PLAYERS(RED,BLUE,3)
 ENDIF


 IF(PLAYER0,FLAG0==4)
 WIN_GAME
 ENDIF

 IF(PLAYER1,DUNGEON_DESTROYED==1)
 ADD_TO_FLAG(PLAYER0,FLAG0,1)
 ENDIF
  IF(PLAYER2,DUNGEON_DESTROYED==1)
 ADD_TO_FLAG(PLAYER0,FLAG0,1)
 ENDIF
  IF(PLAYER3,DUNGEON_DESTROYED==1)
 ADD_TO_FLAG(PLAYER0,FLAG0,1)
 ENDIF

 if(PLAYER0,GAME_TURN==9000)
 COMPUTER_DIG_TO_LOCATION(BLUE,4,2)
 COMPUTER_DIG_TO_LOCATION(GREEN,5,3)
 
 ENDIF
 
 
 