REM ********************************************
REM Terror Island
REM Script for Level 214
REM Steve Tupper
REM ********************************************


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


REM ********** Set up player information **********

REM *** Number of turns wait for new creature (max 12 turns per second depending on computer speed) ***
SET_GENERATE_SPEED(100)

REM *** money sart with - duh ***
START_MONEY(PLAYER0,123456)

REM *** remember max of 255 in all dungeons on level at any time ***
MAX_CREATURES(PLAYER0,30)


REM ********** Set up rooms, traps, doors and magic **********

REM *** rooms available to players also ENTRANCE but don't need here ***
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,1,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)

REM *** spells available to players ***
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,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_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0)


REM *** doors available to players ***
DOOR_AVAILABLE(PLAYER0,WOOD,1,4)
DOOR_AVAILABLE(PLAYER0,BRACED,1,2)
DOOR_AVAILABLE(PLAYER0,STEEL,1,1)
DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)

REM *** traps available to players ***
TRAP_AVAILABLE(PLAYER0,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,2)
TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,1)


REM ********** Set up creature information **********

REM *** remember to have enough to cover all players ***
ADD_CREATURE_TO_POOL(DARK_MISTRESS,1)
REM *** normally good creatures ***
ADD_CREATURE_TO_POOL(WIZARD,1)
ADD_CREATURE_TO_POOL(BARBARIAN,5)
ADD_CREATURE_TO_POOL(ARCHER,10)
ADD_CREATURE_TO_POOL(MONK,1)
ADD_CREATURE_TO_POOL(DWARFA,5)
ADD_CREATURE_TO_POOL(KNIGHT,1)
ADD_CREATURE_TO_POOL(WITCH,1)
ADD_CREATURE_TO_POOL(GIANT,5)
ADD_CREATURE_TO_POOL(THIEF,15)
ADD_CREATURE_TO_POOL(SAMURAI,1)
REM *** special types - may not work - if you know that they do then move them up above ***
ADD_CREATURE_TO_POOL(TUNNELLER,1)

REM *** the 1 field must be in here ***
CREATURE_AVAILABLE(PLAYER0,IMP,1,1)
CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,1)
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)
REM *** You may need these for prisons, torture, temples and graveyards also remember sorceror for temple ***
CREATURE_AVAILABLE(PLAYER0,TUNNELLER,1,1)

CREATE_PARTY(ATTACK1)
CREATE_PARTY(ATTACK2)
CREATE_PARTY(ATTACK3)
CREATE_PARTY(ATTACK4)
CREATE_PARTY(ATTACK5)
CREATE_PARTY(ATTACK6)
CREATE_PARTY(ATTACK7)
CREATE_PARTY(ATTACK8)
CREATE_PARTY(ATTACK9)
CREATE_PARTY(ATTACK10)

REM *** objective = STEAL_GOLD, STEAL_SPELLS, ATTACK_ENEMIES, ATTACK_DUNGEON_HEART, ATTACK_ROOMS, DEFEND_PARTY ***
    ADD_TO_PARTY(ATTACK1,DEMONSPAWN,1,100,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ATTACK2,DEMONSPAWN,2,200,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ATTACK3,DEMONSPAWN,3,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ATTACK4,DEMONSPAWN,4,300,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ATTACK5,DEMONSPAWN,5,350,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ATTACK6,DEMONSPAWN,6,400,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ATTACK7,DEMONSPAWN,7,450,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ATTACK8,DEMONSPAWN,8,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ATTACK9,DEMONSPAWN,9,550,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ATTACK10,DEMONSPAWN,10,600,ATTACK_DUNGEON_HEART,0)


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

QUICK_OBJECTIVE(1,"It is night fall. For the past two weeks the villagers of Terror Island have endured a plague of evil demons intent on destroying them and their homes. Their crops, boats, food, and many of their lives have been lost. You have arrived just in time to train these farmers and fishermen into an army, to turn back this plague once and for all.",PLAYER0)

IF(PLAYER0,GAME_TURN > 100)
QUICK_INFORMATION(2,"The villagers have hidden all of their gold in the strongest of their buildings - the village heart, and have locked themselves in their homes. Turn this dying village into a camp and fill it with an efficient army.")
ENDIF

IF(PLAYER0,GAME_TURN > 200)
QUICK_INFORMATION(3,"The village cheif has an old suit of armour, most villagers have weapons of some description and even the kinky monk and his friend may be honed into elite troops. The only thing you lack are impish helpers - maybe if you concentrate you can summon some later.")
ENDIF

REM *** BEGIN THE ONSLAUGHT! ***
IF(PLAYER0,GAME_TURN > 10000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,1,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,5,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,8,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,13,4)
ENDIF

IF(PLAYER0,GAME_TURN > 15000)
    QUICK_INFORMATION(4,"You think you recognise these creatures attacking the village - an old adversary of yours - maybe he is after the village to own for himself!")
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK2,2,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK2,6,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK2,9,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK2,14,4)
ENDIF

IF(PLAYER0,GAME_TURN > 20000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK3,3,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK3,7,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK3,10,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK3,15,4)
ENDIF

IF(PLAYER0,GAME_TURN > 24900)
    QUICK_INFORMATION(5,"At last you've remembered how to summon an imp to help you - your enemy must have been interfering with your magic.")
    MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
    SET_TIMER(PLAYER0,TIMER1)
ENDIF

IF(PLAYER0,TIMER1 > 2000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK4,4,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK4,8,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK4,11,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK4,16,4)
ENDIF


IF(PLAYER0,TIMER1 > 8000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK5,5,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK5,9,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK5,12,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK5,1,4)
ENDIF

IF(PLAYER0,TIMER1 > 14000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK6,6,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK6,10,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK6,13,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK6,2,4)
ENDIF

IF(PLAYER0,TIMER1 > 21000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK7,7,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK7,11,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK7,14,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK7,3,4)
ENDIF

IF(PLAYER0,TIMER1 > 29000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK8,8,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK8,12,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK8,15,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK8,4,4)
ENDIF

IF(PLAYER0,TIMER1 > 36000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK9,9,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK9,13,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK9,16,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK9,5,4)
ENDIF

IF(PLAYER0,TIMER1 > 45000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,10,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,14,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,1,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK1,6,4)
ENDIF

IF(PLAYER0,TIMER1 > 55000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK10,11,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK10,15,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK10,2,4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ATTACK10,7,4)
ENDIF

IF(PLAYER0,TIMER1 > 65000)
    QUICK_INFORMATION(6,"Ah your enemy is here in person - avenge your fallen comrades!")
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DEMONSPAWN,16,1,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SORCEROR,1,1,10,10000)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DEMONSPAWN,2,3,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BILE_DEMON,3,1,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HELL_HOUND,4,3,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,5,1,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SKELETON,6,1,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SPIDER,7,3,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BUG,8,5,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,VAMPIRE,9,1,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TROLL,10,4,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ORC,11,2,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DRAGON,12,1,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,13,3,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TENTACLE,14,2,10,100)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DARK_MISTRESS,15,1,10,100)
ENDIF


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

REM *** Win or lose condition ***
NEXT_COMMAND_REUSABLE
IF(PLAYER0,TIMER1 > 65000)
    IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
        WIN_GAME
    ENDIF
ENDIF
