REM ********************************************
REM
REM             Script for Level 216
REM
REM ********************************************


LEVEL_VERSION(1)

SET_GENERATE_SPEED(400)

SET_TEXTURE(PLAYER_GOOD,15)

MAX_CREATURES(PLAYER0, 20)
MAX_CREATURES(PLAYER1, 20)
MAX_CREATURES(PLAYER2, 20)

COMPUTER_PLAYER(PLAYER1,9)
COMPUTER_PLAYER(PLAYER2,9)

SET_CREATURE_PROPERTY(KNIGHT,LORD,0)

SET_TIMER(PLAYER0,TIMER4)

IF(PLAYER0,TIMER4 >= 8000)
    QUICK_OBJECTIVE(1,"You should hurry soon, your Enemys are about to wake up.")
ENDIF

IF(PLAYER0,TIMER4 >= 12000)
    COMPUTER_PLAYER(PLAYER1,0)
    COMPUTER_PLAYER(PLAYER2,0)
ENDIF

IF(PLAYER0,TIMER4 >= 15000)
    COMPUTER_DIG_TO_LOCATION(PLAYER1,PLAYER1,5)
    COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER1,5)
ENDIF

START_MONEY(PLAYER0, 5000)
START_MONEY(PLAYER1, 15000)
START_MONEY(PLAYER2, 15000)

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

CREATURE_AVAILABLE(ALL_PLAYERS, SORCEROR, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, BILE_DEMON, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, FLY, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, TROLL, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, DARK_MISTRESS, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, SPIDER, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, ORC, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, DRAGON, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS, BUG,1,0)

ROOM_AVAILABLE(ALL_PLAYERS, RESEARCH, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, GARDEN, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, LAIR, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, TRAINING, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, TREASURE, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, WORKSHOP, 1, 1)
ROOM_AVAILABLE(ALL_PLAYERS, BRIDGE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TORTURE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, GUARD_POST, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, PRISON, 3, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TEMPLE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, GRAVEYARD, 1, 0)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HAND, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_OBEY, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SLAP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HEAL_CREATURE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SIGHT, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CALL_TO_ARMS, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_OBEY, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_DESTROY_WALLS, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CAVE_IN, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HOLD_AUDIENCE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_DISEASE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CONCEAL, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_PROTECT, 1, 0)

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


IF(PLAYER1,DUNGEON_DESTROYED== 1)
  CHANGE_SLAB_TYPE(5,5,PATH,MATCH)
ENDIF
IF(PLAYER2,DUNGEON_DESTROYED== 1)
  CHANGE_SLAB_TYPE(70,5,PATH,MATCH)
ENDIF

SET_GAME_RULE(MaxThingsInHand,30)
SET_HAND_RULE(PLAYER0,ANY_CREATURE,RULE1,DENY,DROPPED_TIME_LOWER,60)
REMOVE_SACRIFICE_RECIPE(BILE_DEMON,DARK_MISTRESS,TROLL)


if(player0,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player0,15)
ENDIF
if(player0,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player0,20)
ENDIF
if(player0,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player0,25)
ENDIF
if(player0,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player0,30)
ENDIF
if(player1,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player1,15)
ENDIF
if(player1,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player1,20)
ENDIF
if(player1,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player1,25)
ENDIF
if(player1,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player1,30)
ENDIF
if(player2,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player2,15)
ENDIF
if(player2,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player2,20)
ENDIF
if(player2,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player2,25)
ENDIF
if(player2,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player2,30)
ENDIF

IF(PLAYER0, PRISON >= 1)
    QUICK_OBJECTIVE(110,"You have boldly rescued the Reapers. Now they will serve for your brave needs.")
ENDIF

IF(PLAYER1, PRISON >= 1)
  QUICK_OBJECTIVE(111,"Your opposition rescued the Reapers, they have gained their power and their glory, whose allegiance you do seek.")
ENDIF

IF(PLAYER2, PRISON >= 1)
  QUICK_OBJECTIVE(111,"Your opposition rescued the Reapers, they have gained their power and their glory, whose allegiance you do seek.")
ENDIF

REM START INTRO

SET_TIMER(PLAYER0,TIMER0)

IF(PLAYER0,TIMER0 >= 30)
    SET_POWER_CONFIGURATION(POWER_SIGHT,SoundPlayed,0)
    USE_POWER_AT_LOCATION(PLAYER0,5,POWER_SIGHT,6,1)
ENDIF

IF(PLAYER0,TIMER0 >= 40)
    ZOOM_TO_LOCATION(PLAYER0,5)
ENDIF

IF(PLAYER0,TIMER0 >= 200)
    SET_POWER_CONFIGURATION(POWER_SIGHT,POWER,10,6)
    USE_POWER_AT_LOCATION(PLAYER0,5,POWER_SIGHT,6,1)
ENDIF

IF(PLAYER0,TIMER0 >= 220)
    SET_POWER_CONFIGURATION(POWER_SIGHT,SoundPlayed,51)
    SET_POWER_CONFIGURATION(POWER_SIGHT,POWER,896,6)
ENDIF

IF(PLAYER0,TIMER0 >= 45)
    QUICK_OBJECTIVE(2,"In this realm, there are two other Keepers who are after you. They are sluggish and haven't noticed you yet, but that could change quickly. Hurry up and free the Reapers, or doom is certain.")
ENDIF

RUN_AFTER_VICTORY(1)

IF(PLAYER0, REAPER >= 1)
    QUICK_OBJECTIVE(114,"A victor! Truly you are the most pitiless and cold-blooded mercenary we have beheld. The Gem is yours - if you can finish off your former foes. We shall aid you.")
ENDIF

REM SETTINGS

SET_TIMER(PLAYER0,TIMER2)

IF(PLAYER0,TIMER2 >= 250)
   		IF(PLAYER0,IMP <= 4)
        		NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER0,IMP,PLAYER0,2,1,100)
        		NEXT_COMMAND_REUSABLE
        		SET_TIMER(PLAYER0,TIMER2)
		ENDIF
ENDIF 

IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
    SET_TIMER(PLAYER0,TIMER5)
    QUICK_OBJECTIVE(11,"The captors of the Reapers have noticed their liberation. They are on their way. Prepare yourself before it's too late.")
ENDIF

CREATE_PARTY(LORD)
 ADD_TO_PARTY(LORD,KNIGHT,10,0,ATTACK_DUNGEON_HEART,-350)
 ADD_TO_PARTY(LORD,KNIGHT,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,SAMURAI,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,SAMURAI,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,SAMURAI,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,SAMURAI,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,FAIRY,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,FAIRY,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,MONK,10,0,DEFEND_PARTY,-350)
 ADD_TO_PARTY(LORD,MONK,10,0,DEFEND_PARTY,-350)

SET_FLAG(PLAYER0,FLAG1,1)

IF(PLAYER0,TIMER5 >= 200)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORD,8,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORD,9,1)
ENDIF

IF(PLAYER0,TIMER5 >= 1000)
    QUICK_OBJECTIVE(15,"The king has arrived. We must banish him from this realm, or torture him to join our side in order to conquer this kingdom.")
    ZOOM_TO_LOCATION(PLAYER0,-1)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,AVATAR,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WIZARD,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WIZARD,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,-1,1,10,0,FALL)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,-1,1,10,0,FALL)

    SET_FLAG(PLAYER0,FLAG1,2)
ENDIF

IF(PLAYER0,FLAG1 == 2)
    IF(PLAYER_GOOD,AVATAR == 0)
        WIN_GAME
    ENDIF
ENDIF

HIDE_HERO_GATE(2,1)
