REM ********************************************
REM
REM Script for Level 357: Mission Imp-possible
REM
REM ********************************************



REM **********     SETUP COMMANDS     **********

REM ***** Set the computer players going   *****

REM Player		Player Type

COMPUTER_PLAYER(PLAYER1,0)

REM ***** Set the maximum number of        *****
REM ***** creatures each player can have   *****

REM Player		Number of creatures

MAX_CREATURES(PLAYER0,30)
MAX_CREATURES(PLAYER1,20)


REM ***** Set the amount of gold each      *****
REM ***** player starts with               *****

REM Player		Amount of gold

START_MONEY(PLAYER0,1000)
START_MONEY(PLAYER1,10000)




REM **********       SET MAGIC        **********
REM **********     AND CREATURES      **********

REM ***** Setup the creature pool          *****

REM Creature Name	Number of creatures

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


REM ***** Enable each player to recieve    *****
REM ***** creatures from pool              *****

REM Player		Creatures	Can be available	Is now available

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


REM ***** Set the rooms available to each  *****
REM ***** player                           *****

REM Player		Room type	Can be available	Is available

ROOM_AVAILABLE(PLAYER1,TREASURE,1,0)
ROOM_AVAILABLE(PLAYER1,LAIR,1,0)
ROOM_AVAILABLE(PLAYER1,GARDEN,1,0)
ROOM_AVAILABLE(PLAYER1,TRAINING,1,0)
ROOM_AVAILABLE(PLAYER1,RESEARCH,1,0)
ROOM_AVAILABLE(PLAYER1,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER1,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER1,PRISON,1,0)
ROOM_AVAILABLE(PLAYER1,TORTURE,1,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,0)

ROOM_AVAILABLE(PLAYER0,TREASURE,1,0)
ROOM_AVAILABLE(PLAYER0,LAIR,1,0)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,0)
IF(PLAYER0,TRAINING >= 1)
    ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
ENDIF
IF(PLAYER0,RESEARCH >= 1)
    ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
ENDIF
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)
IF(PLAYER0,WORKSHOP >= 1)
    ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,1)
ENDIF
IF(PLAYER0,BARRACKS >= 1)
    ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
ENDIF
IF(PLAYER0,PRISON >= 1)
    ROOM_AVAILABLE(PLAYER0,PRISON,1,1)
ENDIF
IF(PLAYER0,TORTURE >= 1)
    ROOM_AVAILABLE(PLAYER0,TORTURE,1,1)
ENDIF
IF(PLAYER0,TEMPLE >= 1)
    ROOM_AVAILABLE(PLAYER0,TEMPLE,1,1)
ENDIF

REM ***** Set the doors available to each  *****
REM ***** player                           *****

REM Player		Door type		Can be available	Is available

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


REM ***** Set the traps available to each  *****
REM ***** player                           *****

REM Player		Trap type		Can be available	Is available

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


REM ***** Set the spells available to each *****
REM ***** player                           *****

REM Player		Spell type		Can be available	Is available

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

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


REM **********  ADJUST ANY CREATURE   **********
REM ********** OR RESEARCH STATISTICS **********

REM Imps are TOUGH on this level. (Extra Magic spent in their summoning.)

SET_CREATURE_STRENGTH(IMP,70)
SET_CREATURE_HEALTH(IMP,750)
SET_CREATURE_ARMOUR(IMP,150)

REM

REM Player		Research Type	Room or Spell		Research Value

REM RESEARCH(	ALL_PLAYERS,	MAGIC,		POWER_DESTROY_WALLS,	500000)




REM ********** SETUP FLAGS AND TIMERS **********

REM Player		Flag Name	Flag's number (0 or 1)

REM SET_FLAG(	PLAYER0,	FLAG0,		0)


REM ***** Set up TIMERS                    *****

REM Player		Timer Name

REM SET_TIMER(	PLAYER0,	TIMER0)



REM **********     CREATE AND ADD     **********
REM **********  CREATURES TO PARTIES  **********

REM ***** Create any parties               *****

REM Party Name

CREATE_PARTY(GNOMES)
CREATE_PARTY(OVERSHOULDER_BOULDERHOLDER)
CREATE_PARTY(NASTIES)

REM ***** Add creatures to those parties   *****

REM Party Name	Creature Name	Level 	Gold	Objective	Countdown

    ADD_TO_PARTY(GNOMES,GIANT,5,1000,DEFEND_PARTY,0)
    ADD_TO_PARTY(GNOMES,GIANT,5,1000,DEFEND_PARTY,0)
    ADD_TO_PARTY(GNOMES,DWARFA,8,0,STEAL_GOLD,0)
    ADD_TO_PARTY(GNOMES,DWARFA,9,0,STEAL_GOLD,0)
    ADD_TO_PARTY(GNOMES,DWARFA,10,0,STEAL_GOLD,0)
    ADD_TO_PARTY(GNOMES,DWARFA,10,0,STEAL_GOLD,0)
    ADD_TO_PARTY(GNOMES,THIEF,10,1000,STEAL_SPELLS,0)

    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,VAMPIRE,7,2000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,GHOST,6,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,SKELETON,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,SKELETON,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,GHOST,5,200,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,VAMPIRE,5,200,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(OVERSHOULDER_BOULDERHOLDER,VAMPIRE,3,200,ATTACK_ENEMIES,0)


    ADD_TO_PARTY(NASTIES,VAMPIRE,10,200,DEFEND_PARTY,0)
    ADD_TO_PARTY(NASTIES,BILE_DEMON,10,200,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(NASTIES,BILE_DEMON,10,200,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(NASTIES,BILE_DEMON,10,200,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(NASTIES,BILE_DEMON,10,200,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(NASTIES,BILE_DEMON,10,200,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(NASTIES,BILE_DEMON,10,200,ATTACK_DUNGEON_HEART,0)


REM **********      MAIN SCRIPT       **********


REM **********      IF COMMANDS       **********


REM **********     OBJECTIVES AND     **********
REM **********      INFORMATION       **********

REM ***** Starting objective               *****

REM Objective Number	Objective Text (must be within quotes)																				Player

QUICK_OBJECTIVE(0,"Good Morning Keeper Phelps. Your mission, and you have to accept it, is to destroy the dungeon heart of the rival keeper to the north. Unfortunately, you have only one Imp to play with.",PLAYER0)

IF_ACTION_POINT(1,PLAYER0)
    
    QUICK_INFORMATION(0,"Congratulations. You have discovered the hidden temple of Phu-i. These toys should help you in your mission.")
ENDIF

IF_ACTION_POINT(2,PLAYER0)
    
    QUICK_INFORMATION(1,"Uh oh. You've woken up lord Overshoulder Boulderholder and his undead buddies.")
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,OVERSHOULDER_BOULDERHOLDER,2,1)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
    QUICK_INFORMATION(3,"You'll need to improve your magic powers...even with this super-imp, your prospects are not good. Look for spells and bonuses before tackling the enemy.")
ENDIF

IF_ACTION_POINT(4,PLAYER0)
    
    QUICK_INFORMATION(4,"Oh No! It's the lair of the dread Cthulululululu! He hates being made fun of in silly games, and he's sent four mighty tentacles to teach you a lesson!")
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TENTACLE,4,4,10,2000)
ENDIF

IF_ACTION_POINT(5,PLAYER0)
    QUICK_INFORMATION(5,"There's a sign on this door. It says 'Property of the gnomes of Zurich. Keep out. This means you!'")
ENDIF

IF_ACTION_POINT(6,PLAYER0)
    QUICK_INFORMATION(6,"Look at all that gold! Uh oh...here come the gnomes to defend their loot.")
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GNOMES,6,3)
ENDIF

IF_ACTION_POINT(7,PLAYER0)
    QUICK_INFORMATION(7,"Uh oh...this doesn't look good...Someone's summoned some demons!")
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NASTIES,6,2)
ENDIF

IF_ACTION_POINT(8,PLAYER0)
    QUICK_INFORMATION(8,"You have discovered the temple's hidden library.")
ENDIF

QUICK_INFORMATION(2,"You have invested all your magic power in your imps. They are stronger than they normally would be.")

REM **********      WIN AND LOSE      **********

REM Player		Variable		Comparison	Value

IF(PLAYER1,DUNGEON_DESTROYED == 1)
    
    WIN_GAME
    
ENDIF

IF(PLAYER0,TOTAL_IMPS == 0)
    IF_AVAILABLE(PLAYER0,POWER_IMP == 0)
        LOSE_GAME
    ENDIF
ENDIF
