rem bola 40
REM LEVEL_VERSION(1)
SET_GENERATE_SPEED(600)

COMPUTER_PLAYER(PLAYER1,1)
COMPUTER_PLAYER(PLAYER2,0)

START_MONEY(PLAYER0,15000)
START_MONEY(PLAYER1,5000000)
START_MONEY(PLAYER2,250000)

MAX_CREATURES(PLAYER0,24)
MAX_CREATURES(PLAYER1,50)
MAX_CREATURES(PLAYER2,30)

ADD_CREATURE_TO_POOL(BUG,14)
ADD_CREATURE_TO_POOL(BILE_DEMON,10)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,16)
ADD_CREATURE_TO_POOL(DEMONSPAWN,25)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(FLY,14)
ADD_CREATURE_TO_POOL(ORC,40)
ADD_CREATURE_TO_POOL(SORCEROR,15)
ADD_CREATURE_TO_POOL(SPIDER,21)
ADD_CREATURE_TO_POOL(TROLL,50)

CREATURE_AVAILABLE(PLAYER0,BUG,1,1)
CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER0,FLY,1,1)
CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER0,ORC,1,1)

CREATURE_AVAILABLE(PLAYER1,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER1,DRAGON,1,0)

CREATURE_AVAILABLE(PLAYER2,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER2,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(PLAYER2,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER2,ORC,1,1)
CREATURE_AVAILABLE(PLAYER2,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER2,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER2,TROLL,1,1)

SET_CREATURE_MAX_LEVEL(PLAYER0,THIEF,10)
SET_CREATURE_FEAR(THIEF,255)

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,RESEARCH,1,1)

ROOM_AVAILABLE(PLAYER2,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER2,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER2,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER2,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER2,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER1,PRISON,1,0)

ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,1)
ROOM_AVAILABLE(PLAYER1,TORTURE,1,1)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,1)
ROOM_AVAILABLE(PLAYER1,SCAVENGER,1,1)
ROOM_AVAILABLE(PLAYER1,PRISON,1,1)
ROOM_AVAILABLE(PLAYER1,GRAVEYARD,1,1)
ROOM_AVAILABLE(PLAYER1,GUARD_POST,1,0)

ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER0,TRAINING,1,0)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)

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

DOOR_AVAILABLE(PLAYER1,MAGIC,1,0)

DOOR_AVAILABLE(PLAYER2,WOOD,1,0)
DOOR_AVAILABLE(PLAYER2,BRACED,1,0)

TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)
TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)

TRAP_AVAILABLE(PLAYER1,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER1,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER1,WORD_OF_POWER,1,0)

TRAP_AVAILABLE(PLAYER2,ALARM,1,0)
TRAP_AVAILABLE(PLAYER2,POISON_GAS,1,0)
TRAP_AVAILABLE(PLAYER2,WORD_OF_POWER,1,0)
TRAP_AVAILABLE(PLAYER2,LAVA,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)

MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0)

MAGIC_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_CAVE_IN,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_CHICKEN,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_OBEY,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,1,1)

MAGIC_AVAILABLE(PLAYER2,POWER_HEAL_CREATURE,1,1)
MAGIC_AVAILABLE(PLAYER2,POWER_CAVE_IN,1,1)
MAGIC_AVAILABLE(PLAYER2,POWER_DISEASE,1,1)
MAGIC_AVAILABLE(PLAYER2,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(PLAYER2,POWER_SPEED,1,0)

rem destroy wall spell
SET_FLAG(PLAYER0,FLAG0, 0)
SET_FLAG(PLAYER1,FLAG0, 0)

rem action point 1
SET_FLAG(PLAYER0,FLAG1, 7)

rem : new enemy
SET_FLAG(PLAYER1,FLAG1, 0)

IF(PLAYER0, GAME_TURN > 20)
    DISPLAY_OBJECTIVE(3,PLAYER0)
ENDIF

IF(PLAYER0,TEMPLE>0)
	ROOM_AVAILABLE(PLAYER0,TEMPLE,1,1)
    TUTORIAL_FLASH_BUTTON(12,1200)
ENDIF
IF(PLAYER0,BRIDGE>0)
	ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
    TUTORIAL_FLASH_BUTTON(18,1200)
ENDIF
IF(PLAYER0,GRAVEYARD>0)
	ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,1)
    TUTORIAL_FLASH_BUTTON(15,1200)
ENDIF
IF(PLAYER0,PRISON>0)
	ROOM_AVAILABLE(PLAYER0,PRISON,1,1)
    TUTORIAL_FLASH_BUTTON(11,1200)
ENDIF
IF(PLAYER0,SCAVENGER>0)
	ROOM_AVAILABLE(PLAYER0,SCAVENGER,1,1)
    TUTORIAL_FLASH_BUTTON(14,1200)
ENDIF
IF(PLAYER0,TORTURE>0)
	ROOM_AVAILABLE(PLAYER0,TORTURE,1,1)
    TUTORIAL_FLASH_BUTTON(17,1200)
ENDIF
IF(PLAYER0,BARRACKS>0)
	ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
    TUTORIAL_FLASH_BUTTON(16,1200)
ENDIF
IF(PLAYER1,VAMPIRE>0)
    MAGIC_AVAILABLE(PLAYER1,POWER_DESTROY_WALLS,1,0)
ENDIF
IF_AVAILABLE(PLAYER0,POWER_SIGHT==1)
    TUTORIAL_FLASH_BUTTON(22,1200)
ENDIF
IF_AVAILABLE(PLAYER0,POWER_CAVE_IN==1)
    TUTORIAL_FLASH_BUTTON(24,1200)
ENDIF
IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==1)
    TUTORIAL_FLASH_BUTTON(26,1200)
ENDIF
IF_AVAILABLE(PLAYER0,POWER_SPEED==1)
    TUTORIAL_FLASH_BUTTON(27,1200)
ENDIF
IF_AVAILABLE(PLAYER0,POWER_CHICKEN==1)
    TUTORIAL_FLASH_BUTTON(30,1200)
ENDIF
IF_AVAILABLE(PLAYER1,POWER_DESTROY_WALLS==1)
    SET_FLAG(PLAYER1,FLAG0, 1)
ENDIF
IF_AVAILABLE(PLAYER0,POWER_DESTROY_WALLS==1)
    SET_FLAG(PLAYER0,FLAG0, 1)
    TUTORIAL_FLASH_BUTTON(32,-1)

    rem : turn on rushing
    SET_FLAG(PLAYER1,FLAG1, 1)
ENDIF
IF(PLAYER1,DUNGEON_DESTROYED==1)
    IF(PLAYER1,FLAG0==0)
        rem : pl1 hasnt DW-magic -> pl0 cant steal it
        LOSE_GAME
    ENDIF
    IF(PLAYER2,DUNGEON_DESTROYED==1)
        IF(PLAYER_GOOD,DUNGEON_DESTROYED==1)
            WIN_GAME
        ENDIF
    ENDIF
ENDIF

IF_ACTION_POINT(4,PLAYER0)
    rem : turn of rushing
    SET_FLAG(PLAYER1,FLAG1, 0)

    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,4,11,7,0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GIANT,4,4,9,0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,-3,8,8,0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,-5,11,7,0)
ENDIF


rem : end battle
IF_ACTION_POINT(3,PLAYER0)
    rem : turn on rushing
    SET_FLAG(PLAYER1,FLAG1, 1)
    SET_TIMER(PLAYER_GOOD, TIMER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,KNIGHT,PLAYER_GOOD,1,10,0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,PLAYER_GOOD,10,10,0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,PLAYER_GOOD,10,10,0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GIANT,3,20,10,0)
ENDIF

CREATE_PARTY(PUNISH1)
ADD_TO_PARTY(PUNISH1,BARBARIAN,5,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH1,BARBARIAN,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH1,WIZARD,6,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH1,ARCHER,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH1,ARCHER,6,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PUNISH2)
ADD_TO_PARTY(PUNISH2,DWARFA,5,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH2,DWARFA,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH2,DWARFA,6,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH2,DWARFA,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH2,DWARFA,6,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH2,GIANT,9,0,ATTACK_ENEMIES,0)

CREATE_PARTY(PUNISH3)
ADD_TO_PARTY(PUNISH3,BARBARIAN,10,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH3,WITCH,8,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH3,MONK,6,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH3,MONK,7,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(PUNISH3,ARCHER,10,0,ATTACK_ENEMIES,0)


IF(PLAYER_GOOD,DUNGEON_DESTROYED==0)
    IF(PLAYER_GOOD,TOTAL_CREATURES <= 99)
        IF(PLAYER_GOOD,TIMER0 >= 3600)
            ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,-2,36,10,0)
        ENDIF
        IF(PLAYER_GOOD,TIMER0 >= 10800)
            ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,-4,36,10,0)
            ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WIZARD,-4,20,10,0)
            ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-2,40,10,0)
        ENDIF
        IF(PLAYER_GOOD,TIMER0 >= 14800)
            ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,KNIGHT,PLAYER_GOOD,10,10,0)
            ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,AVATAR,PLAYER_GOOD,1,10,0)
        ENDIF

        rem punish player0
        IF(PLAYER1,FLAG1 == 1)
            DISPLAY_OBJECTIVE(4,PLAYER0)
            SET_TIMER(PLAYER1, TIMER1)
            SET_TIMER(PLAYER1, TIMER2)
            SET_TIMER(PLAYER1, TIMER3)
            IF(PLAYER1,TIMER1 >= 1700)
                ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,KNIGHT,-4,1,6,0)
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH3,-4,1)
            ENDIF
            IF(PLAYER1,TIMER1 >= 6000)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH2,-1,2)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1, TIMER1)
            ENDIF
            IF(PLAYER1,TIMER2 >= 9000)
                NEXT_COMMAND_REUSABLE
                ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH1,2,DUNGEON,0,10,0)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1, TIMER2)
            ENDIF
            IF(PLAYER1,TIMER3 >= 12000)
                NEXT_COMMAND_REUSABLE
                ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH3,-4,DUNGEON,0,10,0)
                ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH2,-2,DUNGEON,0,10,0)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1, TIMER3)
            ENDIF
        ENDIF
    ENDIF
ENDIF

rem FEED PLAYER1
CREATE_PARTY(FEED_P1)
ADD_TO_PARTY(FEED_P1,BARBARIAN,1,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(FEED_P1,BARBARIAN,2,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(FEED_P1,WIZARD,1,0,ATTACK_ENEMIES,0)

IF(PLAYER1,TOTAL_CREATURES >= 35)
    CREATURE_AVAILABLE(PLAYER1,DRAGON,1,1)
ENDIF

rem : FEED_P1
IF(PLAYER1,VAMPIRE<=7)
    SET_TIMER(PLAYER1, TIMER0)
    IF(PLAYER1,TIMER0 >= 3600)
        NEXT_COMMAND_REUSABLE
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FEED_P1,5,DUNGEON,1,1,0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1,TIMER0)
    ENDIF
ENDIF


rem CHECK PLAYER2,0
IF(PLAYER2,TOTAL_CREATURES >= 20)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FEED_P1,-2,DUNGEON,2,1,0)
ENDIF
IF(PLAYER0,TOTAL_CREATURES >= 20)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,FEED_P1,-1,DUNGEON,0,1,0)
ENDIF


rem gem guard
IF_ACTION_POINT(1,PLAYER0)
    SET_FLAG(PLAYER0,FLAG1, 0)
ENDIF
IF_ACTION_POINT(1,PLAYER2)
    SET_FLAG(PLAYER0,FLAG1, 2)
ENDIF
IF(PLAYER0,FLAG1<7)
    IF(PLAYER2,DUNGEON_DESTROYED==0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FEED_P1,1,2)
    ENDIF
    IF(PLAYER2,DUNGEON_DESTROYED==1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH2,1,2)
    ENDIF
    IF(PLAYER1,DUNGEON_DESTROYED==1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH1,1,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PUNISH2,1,1)
    ENDIF
ENDIF
