REM *********************************************************************
REM
REM Script for Rangex Level - by Rangex :-)        10.01.2004
REM English translation by Mefistotelis
REM *********************************************************************


SET_GENERATE_SPEED(500)
MAX_CREATURES(PLAYER0,15)
MAX_CREATURES(PLAYER1,50)
START_MONEY(PLAYER0,20000)
START_MONEY(PLAYER1,40000)

COMPUTER_PLAYER(PLAYER1,1)

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

CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,VAMPIRE,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,1)
CREATURE_AVAILABLE(PLAYER0,BUG,1,1)
CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER0,FLY,1,1)

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

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

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)

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


CREATE_PARTY(PARTY1)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY1,FLY,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY2)
    ADD_TO_PARTY(PARTY2,KNIGHT,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY2,KNIGHT,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY2,KNIGHT,5,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY3)
    ADD_TO_PARTY(PARTY3,KNIGHT,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY3,KNIGHT,7,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY3,KNIGHT,7,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY4)
    ADD_TO_PARTY(PARTY4,AVATAR,5,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY4,AVATAR,7,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY5)
    ADD_TO_PARTY(PARTY5,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY5,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY5,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY5,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY5,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY5,KNIGHT,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY6)
    ADD_TO_PARTY(PARTY6,HORNY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY6,HORNY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY6,HORNY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY6,HORNY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY6,HORNY,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY6,HORNY,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY7)
    ADD_TO_PARTY(PARTY7,AVATAR,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY7,AVATAR,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(PARTY7,AVATAR,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PARTY8)
    ADD_TO_PARTY(PARTY8,BARBARIAN,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,BARBARIAN,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,BARBARIAN,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,BARBARIAN,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,GIANT,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,GIANT,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,GIANT,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,GIANT,10,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY9)
    ADD_TO_PARTY(PARTY9,FAIRY,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,FAIRY,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,FAIRY,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,FAIRY,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,DARK_MISTRESS,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,DARK_MISTRESS,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,DARK_MISTRESS,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,DARK_MISTRESS,10,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY10)
    ADD_TO_PARTY(PARTY10,SAMURAI,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,SAMURAI,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,SAMURAI,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,MONK,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,MONK,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,MONK,10,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY11)
    ADD_TO_PARTY(PARTY11,KNIGHT,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,KNIGHT,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,KNIGHT,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,SKELETON,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,SKELETON,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,VAMPIRE,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,VAMPIRE,10,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY11,VAMPIRE,10,0,ATTACK_DUNGEON_HEART,0)


IF_ACTION_POINT(1,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY1,2,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY1,3,1)
QUICK_INFORMATION(11,"You've come to a nest of giant bloodthirsty flies! These are certainly mutants, inspired by diabolic magic of Rangex. Do not underestimate the evil-driven power of this opponent! Who knows what else he has up hes sleeve?")
ENDIF

IF_ACTION_POINT(4,PLAYER0)
QUICK_INFORMATION(2,"Be vigilant, Keeper! The most powerful ancient spell, which would be a great strengthen to your army, is kept by mighty guards - paladins of the Order of Shining Blades. Prepare yourself well to deal with them!")
ENDIF

IF_ACTION_POINT(8,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY2,6,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY3,7,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY4,5,1)
ENDIF

IF_ACTION_POINT(9,PLAYER0)
QUICK_INFORMATION(3,"Finally, you managed to find the notorious Nostradamus Library, a place treated great magical power. Look at the ancient artefact capable to double the ranks of your army; but before you use it, try to gather under your flag the largest number of servants. Rumours has it that in the surrounding bastions, heroes are holding 10 prisoners, who released, will be happy to join you.")
ENDIF

IF_ACTION_POINT(10,PLAYER0)
QUICK_INFORMATION(4,"It looks like you managed to find an ancient treasure of dragons. Behind its doors lie considerable wealth, but be aware of eventuality, that their existing owners won't give you a warm welcome.")
ENDIF

IF_ACTION_POINT(11,PLAYER0)
QUICK_INFORMATION(5,"Through the secret corridors of Boastburg, ruined fortress of the Heroes, you succeeded in reaching back of the Rangex's dungeon. You might find an attack from that position as wise and more promising.")
ENDIF

IF_ACTION_POINT(12,PLAYER0)
QUICK_INFORMATION(6,"You have reached the old, decaying stronghold of heroes. Do not venture to the east of this point - there may be still ongoing battle between Rangex and rumps of the good warriors army. You can look for luck digging west.")
ENDIF


IF_ACTION_POINT(18,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY1,18,2)
ENDIF

IF_ACTION_POINT(19,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY5,20,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY6,21,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY7,22,1)
QUICK_OBJECTIVE(8,"Now it is time for the final game! Rangex casts against you his personal guards, composed of the most exquisite warriors of Underground. Do not show mercy - only one keeper is worthy to rule over the world... and it needs to be you!",PLAYER0)
ENDIF

QUICK_OBJECTIVE(1,"Archikeeper Rangex inseparably governs this land. You've thrown challenge to the tremendous power, so you must know that you won't overcome it with conventional methods. Instead, you must resort to deception. Search the surrounding corridors - a powerful magic resides there, able to turn the scale of victory on your side.",PLAYER0)

IF(PLAYER_GOOD,TIMER0 >= 1000)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY8,13,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,16,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY9,15,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY11,14,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,23,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY9,24,1)
ENDIF

IF(PLAYER0,GAME_TURN >= 500)
    QUICK_INFORMATION(13,"This level is not easy. Save the game often to avoid unpleasant surprises.")
ENDIF

IF(PLAYER0,GAME_TURN >= 2500)
QUICK_INFORMATION(7,"Nearby portal does not attract too many servants, and you have only plans of basic rooms and a few spells. This happens when you try to settle on land, already exploited by someone else. However, do not lose hope - there are bastions of heroes in the area that make up the resistance movement against the Rangex. Plunder those, and you will grow in power.")
ENDIF

IF(PLAYER0,GAME_TURN >= 10000)
QUICK_INFORMATION(9,"In the end you have discovered the nature of powerful magic in the west. Its source are magic resources collected in the legendary Library of Nostradamus. Wise step would be to go west and to seize this library, with its treasures; but keep watch - the most powerful Wizards of the Underworld reside in it, and certainly they won't give the treasures by goodness.")
ENDIF


IF(PLAYER1,DUNGEON_DESTROYED == 1)
    MAGIC_AVAILABLE(PLAYER0,POWER_DESTROY_WALLS,1,1)
QUICK_INFORMATION(10,"You have beaten the Rangex's Dungeon Heart, but his spirit has managed to escape on the north, to specially designed hideout. Fortunately you've taken from him a magical ability to break down fortified walls, so now no obstacle is able to stop you. But first, you should take care of the army of heroes whose Rangex have entrapped with his power of mind, and sent against you. They will be here soon - so arrange a defense!")
    SET_TIMER(PLAYER_GOOD,TIMER0)
ENDIF

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
QUICK_OBJECTIVE(12,"Finally, you've defeated your enemy and sent his soul in Nonbeing. Now you are an absolute ruler of the Underground and demons from the deepest circles of hell worship your wickedness, as against you they look as hosts of saints. Congratulations, Master! You mark up canons being Evil! Future generations will read thy name with delight from the papers of history books.",PLAYER0)
    WIN_GAME
ENDIF

IF(PLAYER0,DUNGEON_DESTROYED == 1)
    LOSE_GAME
ENDIF
