REM ********************************************
REM Refugees
REM Script for Level 219
REM Steve Tupper
REM ********************************************


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

SET_GENERATE_SPEED(48)
START_MONEY(PLAYER0,500000)
MAX_CREATURES(PLAYER0,190)

ROOM_AVAILABLE(PLAYER0,TREASURE,1,0)
ROOM_AVAILABLE(PLAYER0,RESEARCH,1,0)
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,0,0)
ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,0)
ROOM_AVAILABLE(PLAYER0,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,0)
ROOM_AVAILABLE(PLAYER0,LAIR,1,0)
ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)

MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,0,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,0,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DESTROY_WALLS,0,0)
MAGIC_AVAILABLE(PLAYER0,POWER_ARMAGEDDON,0,0)

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

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

ADD_CREATURE_TO_POOL(WITCH,60)
ADD_CREATURE_TO_POOL(THIEF,60)

CREATURE_AVAILABLE(PLAYER0,WIZARD,1,1)
CREATURE_AVAILABLE(PLAYER0,BARBARIAN,1,1)
CREATURE_AVAILABLE(PLAYER0,ARCHER,1,1)
CREATURE_AVAILABLE(PLAYER0,MONK,1,1)
CREATURE_AVAILABLE(PLAYER0,DWARFA,1,1)
CREATURE_AVAILABLE(PLAYER0,KNIGHT,1,1)
CREATURE_AVAILABLE(PLAYER0,WITCH,1,1)
CREATURE_AVAILABLE(PLAYER0,GIANT,1,1)
CREATURE_AVAILABLE(PLAYER0,THIEF,1,1)
CREATURE_AVAILABLE(PLAYER0,SAMURAI,1,1)

CREATURE_AVAILABLE(PLAYER0,GHOST,0,0)
CREATURE_AVAILABLE(PLAYER0,VAMPIRE,0,0)

SET_CREATURE_MAX_LEVEL(PLAYER0,WITCH,3)
SET_CREATURE_MAX_LEVEL(PLAYER0,THIEF,3)

SET_CREATURE_FEAR(WITCH,200)
SET_CREATURE_FEAR(THIEF,200)

CREATE_PARTY(SCOUT)
CREATE_PARTY(SQUAD)
CREATE_PARTY(ASSASSIN)
CREATE_PARTY(ARMY)
CREATE_PARTY(BEASTS)
CREATE_PARTY(BOSSMAN)

REM *** objective = STEAL_GOLD, STEAL_SPELLS, ATTACK_ENEMIES, ATTACK_DUNGEON_HEART, ATTACK_ROOMS, DEFEND_PARTY ***
    ADD_TO_PARTY(SCOUT,ORC,1,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SCOUT,IMP,10,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SCOUT,ORC,2,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SCOUT,SKELETON,1,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SCOUT,GHOST,1,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SCOUT,BILE_DEMON,1,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SCOUT,ORC,1,400,ATTACK_ENEMIES,0)

    ADD_TO_PARTY(SQUAD,ORC,1,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SQUAD,ORC,1,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SQUAD,SORCEROR,2,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SQUAD,TROLL,3,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SQUAD,ORC,2,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SQUAD,ORC,2,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SQUAD,ORC,3,600,ATTACK_ENEMIES,0)

    ADD_TO_PARTY(ASSASSIN,DARK_MISTRESS,10,5000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSIN,DARK_MISTRESS,5,1000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSIN,DARK_MISTRESS,5,1000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSIN,DARK_MISTRESS,7,1000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSIN,GHOST,10,1000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSIN,VAMPIRE,5,87000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ASSASSIN,GHOST,8,1000,ATTACK_DUNGEON_HEART,0)

    ADD_TO_PARTY(ARMY,SKELETON,8,100,STEAL_GOLD,0)
    ADD_TO_PARTY(ARMY,SORCEROR,8,800,STEAL_SPELLS,0)
    ADD_TO_PARTY(ARMY,SKELETON,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ARMY,ORC,8,100,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ARMY,ORC,8,100,ATTACK_ROOMS,0)
    ADD_TO_PARTY(ARMY,SKELETON,8,100,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ARMY,SKELETON,8,100,ATTACK_ENEMIES,0)

    ADD_TO_PARTY(BEASTS,DRAGON,3,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BEASTS,HELL_HOUND,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BEASTS,DEMONSPAWN,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BEASTS,BUG,9,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BEASTS,SPIDER,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BEASTS,TENTACLE,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(BEASTS,FLY,10,0,ATTACK_ENEMIES,0)

    ADD_TO_PARTY(BOSSMAN,HORNY,10,10000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BOSSMAN,VAMPIRE,10,3000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BOSSMAN,BILE_DEMON,10,1000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BOSSMAN,DARK_MISTRESS,10,1500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BOSSMAN,DARK_MISTRESS,10,1500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BOSSMAN,SORCEROR,10,2000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BOSSMAN,DRAGON,10,0,ATTACK_DUNGEON_HEART,0)

SET_FLAG(PLAYER0,FLAG0,0)
SET_FLAG(PLAYER0,FLAG1,0)


REM ************************************************
REM ********** CONDITIONS & GAME COMMANDS **********
REM ************************************************
NEXT_COMMAND_REUSABLE
IF(PLAYER0,TOTAL_IMPS >= 20)
    NEXT_COMMAND_REUSABLE
    MAGIC_AVAILABLE(PLAYER0,POWER_IMP,0,0)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0,FLAG0,1)
ENDIF
NEXT_COMMAND_REUSABLE
IF(PLAYER0,FLAG0 == 1)
    NEXT_COMMAND_REUSABLE
    IF(PLAYER0,TOTAL_IMPS < 15)
        NEXT_COMMAND_REUSABLE
        MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER0,FLAG0,0)
    ENDIF
ENDIF


REM *** if PLAYER? creature sets foot near action pt ***
IF_ACTION_POINT(1,PLAYER0)
    SET_TIMER(PLAYER0,TIMER0)
ENDIF




IF(PLAYER0,TIMER0 >= 8000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,1,1)
    QUICK_INFORMATION(3,"Scouts from the dreaded army to the East. Don't let them find the refugees")
ENDIF
IF(PLAYER0,TIMER0 >= 13000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,1,3)
ENDIF

IF(PLAYER0,TIMER0 >= 17000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SQUAD,1,2)
    QUICK_INFORMATION(4,"The army must be close, squads of evil creatures are beginning to turn up")
ENDIF

IF(PLAYER0,TIMER0 >= 20000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BEASTS,1,3)
    QUICK_INFORMATION(7,"Evil beasts have been set free to roam the land, cheap weapons of the evil general to the east")
ENDIF

IF(PLAYER0,TIMER0 >= 25000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SQUAD,1,3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BEASTS,1,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,1,1)
ENDIF

IF(PLAYER0,TIMER0 >= 30000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ASSASSIN,1,1)
    QUICK_INFORMATION(5,"Assassins! Perhaps your castle is a strategic target")
ENDIF


IF(PLAYER0,TIMER0 >= 38000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ARMY,1,6)
    QUICK_INFORMATION(6,"Ye Gods! an army approaches!")
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SQUAD,1,3)
ENDIF
IF(PLAYER0,TIMER0 >= 43000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BOSSMAN,1,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ARMY,1,1)
QUICK_INFORMATION(8,"Look the general of the army controlling the neighbouring lands has come in person to supervise the capture of your castle, defeat him and the legion of the army that he commands to the east shall be leaderless and will turn to chaos")
    SET_FLAG(PLAYER0,FLAG1,1)
ENDIF

IF(PLAYER0,TOTAL_CREATURES >= 155)
    SET_GENERATE_SPEED(3600)
    CREATURE_AVAILABLE(PLAYER0,WITCH,1,0)
    CREATURE_AVAILABLE(PLAYER0,THIEF,1,0)
QUICK_INFORMATION(9,"That is the last of the refugees to arrive. The straglers bring news of the plight of the barbarians of the Eastern Plains and the dwarves of the Carrass Mountains - it seems their homelands have been consumed by the encroaching evil, i expect you shall see some of their kind fleeing in this direction. They may prove to be valuable allies should some come this way")
    ADD_CREATURE_TO_POOL(WIZARD,1)
    ADD_CREATURE_TO_POOL(ARCHER,5)
    ADD_CREATURE_TO_POOL(MONK,1)
    ADD_CREATURE_TO_POOL(KNIGHT,2)
    ADD_CREATURE_TO_POOL(WITCH,0)
    ADD_CREATURE_TO_POOL(THIEF,0)
    ADD_CREATURE_TO_POOL(SAMURAI,3)
    ADD_CREATURE_TO_POOL(BARBARIAN,3)
    ADD_CREATURE_TO_POOL(DWARFA,2)
    ADD_CREATURE_TO_POOL(GIANT,3)
ENDIF

QUICK_OBJECTIVE(1,"The war to the east is going badly, last week you recieved news of the fall of Severentia, the last bastion of defensive power. If it hadn't been for your victory at the portal last year the war would have already been lost. ",PLAYER0)
IF(PLAYER0,GAME_TURN >= 1000)
QUICK_OBJECTIVE(2,"Now a caravan of refugees, fleeing from evil, comes this way. Their timing could not have been worse, the winter that has gripped the land for an unnatural period has not begun to thaw, these tragic victims will be hungry and tired. You must provide food and shelter for them whilst training your knights for battle with the hoard that must even now be approaching",PLAYER0)
ENDIF


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

REM Thanks to Alex for fixing this next bit for me

IF(PLAYER0,GAME_TURN > 200)
    IF(PLAYER0,THIEF <= 1)
        LOSE_GAME
        QUICK_OBJECTIVE(10,"You have failed to protect the refugees",PLAYER0)
    ENDIF
ENDIF

IF(PLAYER0,GAME_TURN > 200)
    IF(PLAYER0,WITCH <= 1)
        LOSE_GAME
        QUICK_OBJECTIVE(11,"You have failed to protect the refugees",PLAYER0)
    ENDIF
ENDIF


NEXT_COMMAND_REUSABLE
IF(PLAYER0,FLAG1 == 1)
    IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
        WIN_GAME
    ENDIF
ENDIF
