REM ********************************************
REM
REM Siege
REM
REM ********************************************

SET_GENERATE_SPEED(400)
MAX_CREATURES(ALL_PLAYERS,25)
START_MONEY(ALL_PLAYERS,6000)
COMPUTER_PLAYER(PLAYER1,3)

REM blue player and allies
ALLY_PLAYERS(PLAYER0,PLAYER1)

ADD_CREATURE_TO_POOL(DRAGON,30)
ADD_CREATURE_TO_POOL(SORCEROR,30)
ADD_CREATURE_TO_POOL(BILE_DEMON,30)
ADD_CREATURE_TO_POOL(TENTACLE,30)
ADD_CREATURE_TO_POOL(ORC,30)
ADD_CREATURE_TO_POOL(TROLL,30)

CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,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,0)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DESTROY_WALLS,1,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,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)

REM Enemy covering force
CREATE_PARTY(ONE)
    ADD_TO_PARTY(ONE,ARCHER,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,BARBARIAN,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,GIANT,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,SAMURAI,5,500,ATTACK_ENEMIES,0)

REM 2 covering force of the enemy
CREATE_PARTY(TWO)
    ADD_TO_PARTY(TWO,WIZARD,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,DWARFA,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,BARBARIAN,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,THIEF,7,500,ATTACK_ENEMIES,0)

REM 3 covering force of the enemy
CREATE_PARTY(THREE)
    ADD_TO_PARTY(THREE,SAMURAI,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,FAIRY,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,FAIRY,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,MONK,6,500,DEFEND_PARTY,0)

REM 4 covering force of the enemy
CREATE_PARTY(FOUR)
    ADD_TO_PARTY(FOUR,WITCH,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,GIANT,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,BARBARIAN,6,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,THIEF,7,500,ATTACK_ENEMIES,0)

REM 5th covering force of the enemy
CREATE_PARTY(FIVE)
    ADD_TO_PARTY(FIVE,WITCH,8,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,MONK,8,500,DEFEND_PARTY,0)
    ADD_TO_PARTY(FIVE,MONK,8,500,DEFEND_PARTY,0)
    ADD_TO_PARTY(FIVE,ARCHER,8,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,SAMURAI,9,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,AVATAR,9,1000,ATTACK_ENEMIES,0)

REM Start the timer
IF_AVAILABLE(PLAYER0,POWER_DISEASE == 1)
    SET_TIMER(PLAYER0,TIMER0)
ENDIF

REM Relief emergence of enemy troops
IF(PLAYER0,TIMER0 >= 1500)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ONE,-1,DUNGEON_HEART,1,7,50)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,TWO,-2,DUNGEON_HEART,1,7,50)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,THREE,-3,DUNGEON_HEART,1,7,50)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FOUR,-4,DUNGEON_HEART,1,7,50)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FIVE,-5,DUNGEON_HEART,1,10,50)
    SET_FLAG(PLAYER0,FLAG0,1)
ENDIF

REM after 5th party, if the Avatar is dead
IF(PLAYER0,FLAG0 == 1)
    IF(PLAYER_GOOD,AVATAR == 0)
        WIN_GAME
    ENDIF
ENDIF

REM player's DANJONHATO is destroyed - defeat
IF(PLAYER1,DUNGEON_DESTROYED == 1)
    LOSE_GAME
ENDIF
