REM ********************************************
REM			The Causeway
REM                 Script for Level 217
REM			Steve Tupper
REM ********************************************


REM ************************************
REM ********** SETUP COMMANDS **********
REM ************************************
SET_GENERATE_SPEED(2160)
START_MONEY(PLAYER0, 50000)
MAX_CREATURES(PLAYER0, 30)

ROOM_AVAILABLE(PLAYER0, TREASURE,  1, 1)
ROOM_AVAILABLE(PLAYER0, RESEARCH,  1, 1)
ROOM_AVAILABLE(PLAYER0, PRISON,    1, 0)
ROOM_AVAILABLE(PLAYER0, TORTURE,   1, 0)
ROOM_AVAILABLE(PLAYER0, TRAINING,  1, 0)
ROOM_AVAILABLE(PLAYER0, WORKSHOP,  1, 0)
ROOM_AVAILABLE(PLAYER0, SCAVENGER, 1, 0)
ROOM_AVAILABLE(PLAYER0, TEMPLE,    1, 0)
ROOM_AVAILABLE(PLAYER0, GRAVEYARD, 1, 0)
ROOM_AVAILABLE(PLAYER0, BARRACKS,  1, 0)
ROOM_AVAILABLE(PLAYER0, GARDEN,    1, 1)
ROOM_AVAILABLE(PLAYER0, LAIR,      1, 1)
ROOM_AVAILABLE(PLAYER0, BRIDGE,    0, 0)
ROOM_AVAILABLE(PLAYER0, GUARD_POST,1, 0)

MAGIC_AVAILABLE(PLAYER0, POWER_IMP,          1, 1)
MAGIC_AVAILABLE(PLAYER0, POWER_OBEY,         1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_SIGHT,        1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_CALL_TO_ARMS, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_CAVE_IN,      1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_HEAL_CREATURE,1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_HOLD_AUDIENCE,1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_LIGHTNING,    1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_SPEED,        1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_PROTECT,      1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_CONCEAL,      1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_DISEASE,      1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_CHICKEN,      1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_DESTROY_WALLS,1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_ARMAGEDDON,   1, 0)

DOOR_AVAILABLE(PLAYER0, WOOD,  0, 0)
DOOR_AVAILABLE(PLAYER0, BRACED,0, 0)
DOOR_AVAILABLE(PLAYER0, STEEL, 1, 1)
DOOR_AVAILABLE(PLAYER0, MAGIC, 1, 1)

TRAP_AVAILABLE(PLAYER0, BOULDER,      0, 0)
TRAP_AVAILABLE(PLAYER0, ALARM,        0, 0)
TRAP_AVAILABLE(PLAYER0, POISON_GAS,   1, 1)
TRAP_AVAILABLE(PLAYER0, LIGHTNING,    1, 1)
TRAP_AVAILABLE(PLAYER0, WORD_OF_POWER,1, 1)
TRAP_AVAILABLE(PLAYER0, LAVA,         0, 0)

ADD_CREATURE_TO_POOL(TROLL,        5)
ADD_CREATURE_TO_POOL(DEMONSPAWN,   1)
ADD_CREATURE_TO_POOL(FLY,          5)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,10)
ADD_CREATURE_TO_POOL(SORCEROR,     20)
ADD_CREATURE_TO_POOL(BILE_DEMON,   1)
ADD_CREATURE_TO_POOL(ORC,          5)
ADD_CREATURE_TO_POOL(WIZARD,       1)
ADD_CREATURE_TO_POOL(ARCHER,       15)
ADD_CREATURE_TO_POOL(SAMURAI,      5)
ADD_CREATURE_TO_POOL(SKELETON,     1)
ADD_CREATURE_TO_POOL(VAMPIRE,      1)

CREATURE_AVAILABLE(PLAYER0,TROLL,        1, 1)
CREATURE_AVAILABLE(PLAYER0,FLY,          1, 1)
CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1, 1)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,     1, 1)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,   1, 1)
CREATURE_AVAILABLE(PLAYER0,BUG,          1, 1)
CREATURE_AVAILABLE(PLAYER0,SPIDER,       1, 1)
CREATURE_AVAILABLE(PLAYER0,ORC,          1, 1)
CREATURE_AVAILABLE(PLAYER0,WIZARD,       1, 1)
CREATURE_AVAILABLE(PLAYER0,ARCHER,       1, 1)
CREATURE_AVAILABLE(PLAYER0,SAMURAI,      1, 1)
CREATURE_AVAILABLE(PLAYER0,SKELETON,     1, 1)
CREATURE_AVAILABLE(PLAYER0,VAMPIRE,      1, 1)
CREATURE_AVAILABLE(PLAYER0,HORNY,        1, 0)

CREATE_PARTY(PARTY_MONK)
CREATE_PARTY(PARTY_MERCHANT1)
CREATE_PARTY(PARTY_MERCHANT2)
CREATE_PARTY(PARTY_MERCHANT3)
CREATE_PARTY(PARTY_MERCHANT4)
CREATE_PARTY(PARTY_MERCHANT5)
CREATE_PARTY(PARTY_HEROS1)
CREATE_PARTY(PARTY_HEROS2)

ADD_TO_PARTY(PARTY_MONK, MONK,  1, 10000, DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MONK, THIEF, 1, 100,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MONK, THIEF, 1, 100,   DEFEND_PARTY, 0)

ADD_TO_PARTY(PARTY_MERCHANT1, THIEF,  2, 20000, DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT1, ARCHER, 2, 200,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT1, ARCHER, 2, 200,   DEFEND_PARTY, 0)

ADD_TO_PARTY(PARTY_MERCHANT2, THIEF,     3, 30000, DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT2, BARBARIAN, 2, 300,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT2, BARBARIAN, 2, 300,   DEFEND_PARTY, 0)

ADD_TO_PARTY(PARTY_MERCHANT3, THIEF,   4, 40000, DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT3, SAMURAI, 3, 400,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT3, SAMURAI, 3, 400,   DEFEND_PARTY, 0)

ADD_TO_PARTY(PARTY_MERCHANT4, SAMURAI, 4, 50000, DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT4, KNIGHT,  4, 500,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT4, KNIGHT,  4, 500,   DEFEND_PARTY, 0)

ADD_TO_PARTY(PARTY_MERCHANT5, SAMURAI, 5, 60000, DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT5, GIANT,   5, 600,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT5, WIZARD,  5, 600,   DEFEND_PARTY, 0)
ADD_TO_PARTY(PARTY_MERCHANT5, ARCHER,  6, 600,   DEFEND_PARTY, 0)

ADD_TO_PARTY(PARTY_HEROS1, AVATAR,    10, 100000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS1, KNIGHT,    10, 10000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS1, WIZARD,    10, 1000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS1, THIEF,     10, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS1, SAMURAI,   10, 10, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS1, GIANT,     10, 1, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS1, BARBARIAN, 10, 10, ATTACK_DUNGEON_HEART, 0)

ADD_TO_PARTY(PARTY_HEROS2, ARCHER,    10, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS2, DWARFA,    10, 1000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS2, WITCH,     10, 10000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS2, MONK,      10, 1000, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS2, FAIRY,     10, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS2, ARCHER,    10, 10, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PARTY_HEROS2, ARCHER,    10, 1, ATTACK_DUNGEON_HEART, 0)

SET_FLAG(PLAYER0, FLAG0, 0)

SET_TIMER(PLAYER0, TIMER0)

REM ************************************************
REM ********** CONDITIONS & GAME COMMANDS **********
REM ************************************************

NEXT_COMMAND_REUSABLE
IF(PLAYER0, TIMER0 >= 12000)
   SET_TIMER(PLAYER0, TIMER1)
   SET_TIMER(PLAYER0, TIMER2)
   SET_TIMER(PLAYER0, TIMER3)
   SET_TIMER(PLAYER0, TIMER4)
   SET_TIMER(PLAYER0, TIMER5)
   SET_TIMER(PLAYER0, TIMER6)

   NEXT_COMMAND_REUSABLE
   IF(PLAYER0, FLAG0 == 0)
      NEXT_COMMAND_REUSABLE
      IF(PLAYER0, TIMER1 >= 4700)
         QUICK_INFORMATION(4, "Ah, your first victim, a fat monk accompanied with a body gaurd and laden with gold, an ambush should relieve him of it my lord")
         NEXT_COMMAND_REUSABLE
         ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_MONK, -1, ACTION_POINT, -2, 1, 500)
         NEXT_COMMAND_REUSABLE
         SET_TIMER(PLAYER0, TIMER1)
      ENDIF
      NEXT_COMMAND_REUSABLE
      IF(PLAYER0, TIMER2 >= 9500)
         QUICK_INFORMATION(5, "It seems these snivilling toads can sense your presence and instead of running as fast as their little legs can carry them to the other side, are cowering together in indecision. No matter my Lord, simply makes your task all the easier!")
         NEXT_COMMAND_REUSABLE
         ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_MERCHANT1, -1, ACTION_POINT, -2, 1, 500)
         NEXT_COMMAND_REUSABLE
         SET_TIMER(PLAYER0, TIMER2)
      ENDIF
      NEXT_COMMAND_REUSABLE
      IF(PLAYER0, TIMER3 >= 2000)
         NEXT_COMMAND_REUSABLE
         ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_MERCHANT2, -1, ACTION_POINT, -2, 1, 500)
         NEXT_COMMAND_REUSABLE
         SET_TIMER(PLAYER0, TIMER3)
      ENDIF
      NEXT_COMMAND_REUSABLE
      IF(PLAYER0, TIMER4 >= 32400)
         NEXT_COMMAND_REUSABLE
         ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_MERCHANT3, -1, ACTION_POINT, -2, 1, 500)
         NEXT_COMMAND_REUSABLE
         SET_TIMER(PLAYER0, TIMER4)
      ENDIF
      NEXT_COMMAND_REUSABLE
      IF(PLAYER0, TIMER5 >= 36700)
         NEXT_COMMAND_REUSABLE
         ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_MERCHANT4, -1, ACTION_POINT, -2, 1, 500)
         NEXT_COMMAND_REUSABLE
         SET_TIMER(PLAYER0, TIMER5)
      ENDIF
      NEXT_COMMAND_REUSABLE
      IF(PLAYER0, TIMER6 >= 63800)
         NEXT_COMMAND_REUSABLE
         ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_MERCHANT5, -1, ACTION_POINT, -2, 1, 500)
         NEXT_COMMAND_REUSABLE
         SET_FLAG(PLAYER0, FLAG0, 1)
      ENDIF
   ENDIF
ENDIF

IF_ACTION_POINT(-2, PLAYER0)
   SET_TIMER(PLAYER0, TIMER0)
ENDIF

QUICK_OBJECTIVE(1, "A natural freak of geology made this small area beneath the Bol Bothma Mountains into a perfect place to build two very special Hero Gates. Many hundreds of years ago a team of workers and wizards built the gates and a causeway between them to allow travellers wishing to traverse the thousands of miles of lands above to complete their journeys in a few minutes.", PLAYER0)
IF(PLAYER0, TIMER0 >= 1000)
   QUICK_OBJECTIVE(2, "If you can possess the causeway linking the two gates you will be able to mug and harrass the rich merchants who use it master. Beware of the workers old living quarters though as they will no doubt have been heavily booby trapped to avoid those like you controlling the causeway.", PLAYER0)
ENDIF

REM ************************************************
REM ********** WIN / LOSE GAME CONDITIONS **********
REM ************************************************

IF_ACTION_POINT(1, PLAYER0)
   ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_HEROS1, -2, 1)
   ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY_HEROS2, -1, 1)
   QUICK_INFORMATION(6, "Ah, i wondered when he would show up master, with him out of the way the causeway can be yours for all time!")
   IF(PLAYER_GOOD, TOTAL_CREATURES == 0)
      WIN_GAME
   ENDIF
ENDIF
