REM ********************************************
REM
REM Hero control    (Rg[)
REM
REM ********************************************

REM Portal speed
SET_GENERATE_SPEED(400)

REM The maximum number of Creatures
MAX_CREATURES(PLAYER1,30)

REM Keeper's AI characteristic
COMPUTER_PLAYER(PLAYER1,4)

REM Keeper alliance
ALLY_PLAYERS(PLAYER0,PLAYER_GOOD)

REM Start-time money
START_MONEY(PLAYER0,30000)
START_MONEY(PLAYER1,5000)

REM Creachure Pool (Kurichapuru)
ADD_CREATURE_TO_POOL(TROLL,50)
ADD_CREATURE_TO_POOL(DRAGON,50)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,50)
ADD_CREATURE_TO_POOL(BILE_DEMON,50)
ADD_CREATURE_TO_POOL(SPIDER,50)
ADD_CREATURE_TO_POOL(HELL_HOUND,50)
ADD_CREATURE_TO_POOL(TENTACLE,50)
ADD_CREATURE_TO_POOL(ORC,50)

REM Creatures
CREATURE_AVAILABLE(PLAYER1,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER1,DRAGON,1,1)
CREATURE_AVAILABLE(PLAYER1,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(PLAYER1,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER1,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER1,HELL_HOUND,1,1)
CREATURE_AVAILABLE(PLAYER1,TENTACLE,1,1)
CREATURE_AVAILABLE(PLAYER1,ORC,1,1)

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

REM Spells
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DESTROY_WALLS,1,1)

REM Doors and Traps
DOOR_AVAILABLE(PLAYER1,WOOD,1,0)
TRAP_AVAILABLE(PLAYER1,ALARM,1,0)
DOOR_AVAILABLE(PLAYER1,BRACED,1,0)
TRAP_AVAILABLE(PLAYER1,POISON_GAS,1,0)
DOOR_AVAILABLE(PLAYER1,STEEL,1,0)
TRAP_AVAILABLE(PLAYER1,LIGHTNING,1,0)

REM Creature partys
CREATE_PARTY(ONE)
    ADD_TO_PARTY(ONE,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,GIANT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,GIANT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,ARCHER,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,WIZARD,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(TWO)
    ADD_TO_PARTY(TWO,WIZARD,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,SAMURAI,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,WIZARD,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,SAMURAI,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,WITCH,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,MONK,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(THREE)
    ADD_TO_PARTY(THREE,VAMPIRE,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,DARK_MISTRESS,9,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,BILE_DEMON,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,DRAGON,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,TENTACLE,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(THREE,ORC,9,0,ATTACK_ENEMIES,0)

CREATE_PARTY(FOUR)
    ADD_TO_PARTY(FOUR,THIEF,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,DWARFA,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,GIANT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,BARBARIAN,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,SAMURAI,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FOUR,ARCHER,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(FIVE)
    ADD_TO_PARTY(FIVE,MONK,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,WITCH,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,GIANT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,SAMURAI,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,ARCHER,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(FIVE,WITCH,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(SIX)
    ADD_TO_PARTY(SIX,DWARFA,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SIX,KNIGHT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SIX,WIZARD,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SIX,BARBARIAN,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SIX,SAMURAI,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SIX,ARCHER,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(SEVEN)
    ADD_TO_PARTY(SEVEN,WIZARD,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SEVEN,THIEF,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SEVEN,GIANT,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SEVEN,MONK,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SEVEN,ARCHER,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(SEVEN,SAMURAI,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(EIGHT)
    ADD_TO_PARTY(EIGHT,WITCH,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(EIGHT,ARCHER,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(EIGHT,WIZARD,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(EIGHT,SAMURAI,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(EIGHT,BARBARIAN,10,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(EIGHT,AVATAR,10,0,ATTACK_ENEMIES,0)

REM Action point 1
IF_ACTION_POINT(1,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ONE,-1,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF

REM Action point 2
IF_ACTION_POINT(2,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,TWO,-2,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG1,1)
ENDIF

REM Action point 3
IF_ACTION_POINT(3,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,THREE,-3,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG2,1)
ENDIF

REM Action point 4
IF_ACTION_POINT(4,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FOUR,-4,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG3,1)
ENDIF

REM Action point 5
IF_ACTION_POINT(5,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FIVE,-5,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG4,1)
ENDIF

REM Action point 6
IF_ACTION_POINT(6,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SIX,-6,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG5,1)
ENDIF

REM Action point 7
IF_ACTION_POINT(7,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SEVEN,-7,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG6,1)
ENDIF

REM Action point 8
IF_ACTION_POINT(8,PLAYER0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHT,-8,ACTION_POINT,10,9,0)
    SET_FLAG(PLAYER_GOOD,FLAG7,1)
ENDIF

REM Action point 9
IF_ACTION_POINT(9,PLAYER0)
    MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,1)
    MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,1,1)
    DOOR_AVAILABLE(PLAYER0,MAGIC,1,12)
ENDIF

REM Dungeon destroyed - victory
IF(PLAYER1,DUNGEON_DESTROYED == 1)
    WIN_GAME
ENDIF

REM Defeat if all heroes wiped out
IF(PLAYER_GOOD,FLAG0 == 1)
    IF(PLAYER_GOOD,FLAG1 == 1)
        IF(PLAYER_GOOD,FLAG2 == 1)
            IF(PLAYER_GOOD,FLAG3 == 1)
                IF(PLAYER_GOOD,FLAG4 == 1)
                    IF(PLAYER_GOOD,FLAG5 == 1)
                        IF(PLAYER_GOOD,FLAG6 == 1)
                            IF(PLAYER_GOOD,FLAG7 == 1)
                                IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
                                    LOSE_GAME
                                ENDIF
                            ENDIF
                        ENDIF
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF
