rem		LEVELPACK				rem
rem		Undivine Dungeon 1.34	rem
rem		01, MOUNTAINCAL			rem
rem		by Shinthoras0815		rem

LEVEL_VERSION(1)
SET_GENERATE_SPEED(625)
MAX_CREATURES(PLAYER0, 24)
MAX_CREATURES(PLAYER1, 29)

START_MONEY(PLAYER0, 0)
START_MONEY(PLAYER1, 3000000)
START_MONEY(PLAYER3, 0)

COMPUTER_PLAYER(PLAYER1, 0)
COMPUTER_PLAYER(PLAYER3, 9)
ALLY_PLAYERS(PLAYER0, PLAYER3, 1)

CREATURE_ENTRANCE_LEVEL(PLAYER1, 2)

SET_COMPUTER_CHECKS(PLAYER1, "COMPUTER CHECK IMPRISONMENT", 400, 0, 2, 25, 200)
NEXT_COMMAND_REUSABLE
SET_CREATURE_TENDENCIES(PLAYER1, IMPRISON, 0)
SET_COMPUTER_EVENT(PLAYER1, "EVENT ENEMY DOOR", 100, 5, 2500, 2, 10000)

ADD_CREATURE_TO_POOL(SORCEROR, 5)
ADD_CREATURE_TO_POOL(BILE_DEMON, 10)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 15)
ADD_CREATURE_TO_POOL(TROLL, 15)
ADD_CREATURE_TO_POOL(BUG, 15)
ADD_CREATURE_TO_POOL(SPIDER, 15)
ADD_CREATURE_TO_POOL(ORC, 15)
ADD_CREATURE_TO_POOL(DRAGON, 15)
ADD_CREATURE_TO_POOL(VAMPIRE, 1)
ADD_CREATURE_TO_POOL(TENTACLE, 15)
ADD_CREATURE_TO_POOL(HELL_HOUND, 15)
ADD_CREATURE_TO_POOL(DEMONSPAWN, 5)
ADD_CREATURE_TO_POOL(Fly, 5)

CREATURE_AVAILABLE(ALL_PLAYERS, TROLL, 1, 1)
CREATURE_AVAILABLE(PLAYER0, SORCEROR, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, DARK_MISTRESS, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, ORC, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, DRAGON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, SPIDER, 1, 1)
CREATURE_AVAILABLE(PLAYER0, BUG, 1, 1)
CREATURE_AVAILABLE(PLAYER0, TENTACLE, 1, 1)
CREATURE_AVAILABLE(PLAYER1, VAMPIRE, 1, 1)
CREATURE_AVAILABLE(PLAYER1, DEMONSPAWN, 1, 0)
CREATURE_AVAILABLE(ALL_PLAYERS, HELL_HOUND, 1, 1)
CREATURE_AVAILABLE(PLAYER1, Fly, 1, 0)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS, WISP, 9)
SET_CREATURE_MAX_LEVEL(PLAYER1, DEMONSPAWN, 10)

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(PLAYER1, BARRACKS, 2, 0)
ROOM_AVAILABLE(PLAYER1, GUARD_POST, 2, 0)
ROOM_AVAILABLE(PLAYER1, TORTURE, 2, 0)
ROOM_AVAILABLE(PLAYER1, TEMPLE, 0, 0)
ROOM_AVAILABLE(PLAYER1, BRIDGE, 2, 0)
ROOM_AVAILABLE(PLAYER1, WORKSHOP, 2, 0)
ROOM_AVAILABLE(PLAYER1, PRISON, 2, 0)

ROOM_AVAILABLE(PLAYER0, BARRACKS, 3, 0)
ROOM_AVAILABLE(PLAYER0, GUARD_POST, 3, 0)
ROOM_AVAILABLE(PLAYER0, TORTURE, 3, 0)
ROOM_AVAILABLE(PLAYER0, TEMPLE, 3, 0)
ROOM_AVAILABLE(PLAYER0, BRIDGE, 3, 0)
ROOM_AVAILABLE(PLAYER0, WORKSHOP, 3, 0)
ROOM_AVAILABLE(PLAYER0, PRISON, 3, 0)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SLAP, 1, 1)

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

IF(PLAYER0, FLAG1 == 0)
    NEXT_COMMAND_REUSABLE
    MAGIC_AVAILABLE(PLAYER0, POWER_CAVE_IN, 0, 0)
    NEXT_COMMAND_REUSABLE
    MAGIC_AVAILABLE(PLAYER0, POWER_DESTROY_WALLs, 0, 0)
ENDIF


TRAP_AVAILABLE(ALL_PLAYERS, POISON_GAS, 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, LIGHTNING, 1, 0)
TRAP_AVAILABLE(ALL_PLAYERS, WORD_OF_POWER, 1, 0)

CREATE_PARTY(Pinata)
ADD_TO_PARTY(Pinata, FAIRY, 5, 1500, DEFEND_LOCATION, 0)
ADD_TO_PARTY(Pinata, FAIRY, 5, 750, DEFEND_LOCATION, 0)
ADD_TO_PARTY(Pinata, FAIRY, 5, 750, DEFEND_LOCATION, 0)
ADD_TO_PARTY(Pinata, FAIRY, 3, 500, DEFEND_LOCATION, 0)
ADD_TO_PARTY(Pinata, FAIRY, 3, 500, DEFEND_LOCATION, 0)

CREATE_PARTY(Cake)
ADD_TO_PARTY(Cake, SAMURAI, 7, 2500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake, GIANT, 6, 2000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake, GIANT, 6, 2500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake, BARBARIAN, 6, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake, BARBARIAN, 6, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake, KNIGHT, 8, 750, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake, DWARFA, 5, 500, ATTACK_ENEMIES, 0)

CREATE_PARTY(Cake2)
ADD_TO_PARTY(Cake2, SAMURAI, 10, 2500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, GIANT, 10, 2000, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, GIANT, 10, 2500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, BARBARIAN, 10, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, BARBARIAN, 10, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, KNIGHT, 10, 750, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, DWARFA, 10, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Cake2, WIZARD, 10, 500, ATTACK_ENEMIES, 0)

CREATE_PARTY(Fireworks)
ADD_TO_PARTY(Fireworks, WIZARD, 6, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Fireworks, WIZARD, 6, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Fireworks, MONK, 7, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Fireworks, WITCH, 6, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Fireworks, MONK, 6, 100, ATTACK_DUNGEON_HEART, 0)


CREATE_PARTY(PartyHard)
ADD_TO_PARTY(PartyHard, KNIGHT, 10, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PartyHard, SAMURAI, 7, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(PartyHard, THIEF, 6, 100, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(PartyHard, DWARFA, 6, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(PartyHard, ARCHER, 6, 500, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(PartyHard, WITCH, 6, 500, ATTACK_ENEMIES, 0)

CREATE_PARTY(Attack)
ADD_TO_PARTY(Attack, DWARFA, 6, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Attack, DWARFA, 6, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Attack, DWARFA, 6, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(Attack, DWARFA, 6, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(Attack2)
ADD_TO_PARTY(Attack2, DWARFA, 5, 100, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Attack2, FAIRY, 5, 100, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(Attack2, THIEF, 5, 250, STEAL_SPELLS, 0)
ADD_TO_PARTY(Attack2, THIEF, 5, 250, STEAL_GOLD, 0)

CREATE_PARTY(SteahltGold)
ADD_TO_PARTY(SteahltGold, THIEF, 8, 0, STEAL_GOLD, 0)
ADD_TO_PARTY(SteahltGold, THIEF, 8, 0, STEAL_GOLD, 0)

CREATE_PARTY(SteahltSpell)
ADD_TO_PARTY(SteahltSpell, THIEF, 8, 0, STEAL_SPELLS, 0)
ADD_TO_PARTY(SteahltSpell, THIEF, 8, 0, STEAL_SPELLS, 0)

CREATE_PARTY(Explorer)
ADD_TO_PARTY(Explorer, IMP, 1, 0, DEFEND_LOCATION, 0)

CREATE_PARTY(NewBegin)
ADD_TO_PARTY(NewBegin, IMP, 10, 0, DEFEND_LOCATION, 0)

CREATE_PARTY(Wisp)
ADD_TO_PARTY(Wisp, WISP, 1, 0, DEFEND_LOCATION, 0)

rem "hide player heart on the beginning"
CONCEAL_MAP_RECT(Player0, 54, 30, 30, 30, 0)
CONCEAL_MAP_RECT(Player0, 223, 55, 12, 12, 1)
rem "start message"
DISPLAY_OBJECTIVE(22, PLAYER3)

ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Pinata, 6, 1)

rem" Speed on Ai"

SET_TIMER(PLAYER1, TIMER0)
IF(PLAYER1, TIMER0 >= 15000)
    IF(PLAYER1, FLAG1 == 0)
        COMPUTER_DIG_TO_LOCATION(PLAYER1, PLAYER1, 8)
    ENDIF
ENDIF

rem "if player reach hero heart, spawn Lord of the Land Party"
rem "do the same if computer reach the heart"

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 0)
    IF_ACTION_POINT(3, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SteahltSpell, 3, 1)
    ENDIF

    IF_ACTION_POINT(5, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Pinata, -2, 1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Cake2, -3, 1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Fireworks, -1, 1)
    ENDIF

    IF_ACTION_POINT(3, PLAYER1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SteahltSpell, 3, 1)
    ENDIF

    IF_ACTION_POINT(5, PLAYER1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Pinata, -2, 1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Cake2, -3, 1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Fireworks, -1, 1)
    ENDIF
ENDIF

rem "If Player found tunnel to old dungeon then show message, set claimed floor behind the tunnel and reveal the tunnel on map"
IF_SLAB_OWNER(18, 43, PLAYER0)
    IF(PLAYER1, FLAG2 == 0)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER1, FLAG2, 1)
        NEXT_COMMAND_REUSABLE
        CHANGE_SLAB_OWNER(18, 48, PLAYER0)
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER0, Explorer, 10, 1)
    PLAY_MESSAGE(PLAYER0, SOUND, 777)
    DISPLAY_INFORMATION(7, 10)
    REVEAL_MAP_LOCATION(PLAYER0, 10, 9)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG2, 0)
ENDIF
IF_SLAB_OWNER(18, 48, PLAYER0)
    IF(PLAYER3, FLAG1 == 0)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER3, FLAG1, 1)
        NEXT_COMMAND_REUSABLE
        CHANGE_SLAB_OWNER(18, 43, PLAYER0)
    ENDIF
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER3, FLAG2, 0)
ENDIF

IF_SLAB_OWNER(18, 48, PLAYER1)
    IF(PLAYER2, FLAG2 == 0)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER2, FLAG2, 1)
        NEXT_COMMAND_REUSABLE
        CHANGE_SLAB_OWNER(18, 43, PLAYER1)
    ENDIF
    ADD_PARTY_TO_LEVEL(PLAYER1, Explorer, 10, 1)
    CHANGE_SLAB_TYPE(18, 49, PATH)
    PLAY_MESSAGE(PLAYER0, SOUND, 785)
    DISPLAY_INFORMATION(23, 10)
    REVEAL_MAP_LOCATION(PLAYER0, 10, 9)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER1, FLAG2, 0)
ENDIF
IF_SLAB_OWNER(18, 43, PLAYER1)
    IF(PLAYER3, FLAG2 == 0)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER3, FLAG2, 1)
        NEXT_COMMAND_REUSABLE
        CHANGE_SLAB_OWNER(18, 48, PLAYER1)
    ENDIF
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER3, FLAG1, 0)
ENDIF
rem "Computer is heavily weakend if PLAYER0 reach the the hidden treasure room OR Player1 are attacking the old dungeon"
IF(PLAYER0, ENTRANCE >= 10)
    NEXT_COMMAND_REUSABLE
    MAX_CREATURES(PLAYER0, 34)
ENDIF
IF(PLAYER0, ENTRANCE <= 9)
    NEXT_COMMAND_REUSABLE
    MAX_CREATURES(PLAYER0, 24)
ENDIF

IF_SLAB_OWNER(7, 78, PLAYER0)
SET_FLAG(PLAYER3, FLAG0, 1)
ENDIF

IF_ACTION_POINT(1,PLAYER1)
SET_FLAG(PLAYER3, FLAG0, 1)
ENDIF

IF(PLAYER0, FLAG1 == 1)
  IF(PLAYER3,FLAG0 == 1)  
        CHANGE_SLAB_TYPE(10, 76, PRETTY_PATH)
        ADD_GOLD_TO_PLAYER(PLAYER1, -5000000)
        CREATURE_ENTRANCE_LEVEL(PLAYER1, 1)
        KILL_CREATURE(PLAYER1, IMP, ANYWHERE, 50)
        MAGIC_AVAILABLE(PLAYER1, POWER_IMP, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_SLAP, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_SPEED, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_SPEED, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_CHICKEN, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_DISEASE, 0, 0)
        MAGIC_AVAILABLE(PLAYER1, POWER_LIGHTNING, 0, 0)
        ROOM_AVAILABLE(PLAYER1, BRIDGE, 0, 0)
        SET_TIMER(PLAYER1, TIMER6)
        MAX_CREATURES(PLAYER1, 16)
        KILL_CREATURE(PLAYER1, DARK_MISTRESS, MOST_EXPERIENCED, 2)
        KILL_CREATURE(PLAYER1, BILE_DEMON, MOST_EXPERIENCED, 3)
        KILL_CREATURE(PLAYER1, ORC, MOST_EXPERIENCED, 1)
        KILL_CREATURE(PLAYER1, DRAGON, MOST_EXPERIENCED, 3)
        CREATURE_AVAILABLE(PLAYER1, VAMPIRE, 0, 0)
    ENDIF
    IF_SLAB_OWNER(7, 78, PLAYER_NEUTRAL)
        IF_CONTROLS(PLAYER1, Fly == 0)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER1, FLY, PLAYER1, 1, 5, 0)
        ENDIF
    ENDIF
ENDIF

rem "IMP respawn for computer"
IF_SLAB_OWNER(7, 78, PLAYER0)
    IF(PLAYER1, IMP < 5)
        IF(PLAYER1, TIMER6 >= 1000)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER1, IMP, PLAYER1, 1, 3, 0)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER1, IMP, PLAYER1, 1, 1, 0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER1, TIMER6)
        ENDIF
    ENDIF
ENDIF
rem "Wisp respawn for player with effect and first time message"

IF(PLAYER0, FLAG1 == 1)
    IF(PLAYER0, WISP == 0)
        IF(PLAYER1, FLAG0 == 0)
            NEXT_COMMAND_REUSABLE
            PLAY_MESSAGE(PLAYER0, SOUND, 778)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER1, FLAG0, 1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2, TIMER0)
        ENDIF
        IF(PLAYER2, TIMER0 >= 300)
            IF(PLAYER1, FLAG0 == 1)
                NEXT_COMMAND_REUSABLE
                CREATE_EFFECTS_LINE(PLAYER0, PLAYER0, 0, 0, 0, 48)
                NEXT_COMMAND_REUSABLE
                ADD_CREATURE_TO_LEVEL(PLAYER0, WISP, PLAYER0, 1, 1, 0)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER1, FLAG0, 0)
                DISPLAY_INFORMATION(3, PLAYER0)
            ENDIF
        ENDIF
    ENDIF
ENDIF

rem "Wisp respawn for computer"
IF(PLAYER1, DUNGEON_DESTROYED == 0)
    IF(PLAYER1, WISP == 1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1, TIMER5)
    ENDIF
    IF(PLAYER1, WISP == 0)
        IF(PLAYER1, TIMER5 >= 500)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER1, WISP, PLAYER1, 1, 1, 0)
        ENDIF
    ENDIF
ENDIF
rem "if hero hearth activ and computer reach ACTION_POINT 8 then then show message to PLAYER0 (other keeper is here) and start respawning waves of heros, Flag for speed on AI"

SET_TIMER(PLAYER0, TIMER2)
IF(PLAYER_GOOD, DUNGEON_DESTROYED == 0)
    IF_ACTION_POINT(8, ALL_PLAYERS)
        DISPLAY_INFORMATION(5, ALL_PLAYERS)
        PLAY_MESSAGE(PLAYER0, SOUND, 777)
        IF(PLAYER0, TIMER2 >= 6200)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SteahltSpell, PLAYER_GOOD, 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, SteahltGold, PLAYER_GOOD, 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Attack, PLAYER_GOOD, 1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0, TIMER2)
        ENDIF

    ENDIF
ENDIF

rem "Intro"
rem "set timer for intro begin"
rem "show message and set timer"
rem "destroy wall and set timer for hero invasion"
rem "spawn hero's and set timer"
rem "Show wisp message"

SET_TIMER(PLAYER0, TIMER0)

IF(PLAYER0, TIMER0 >= 160)
    PLAY_MESSAGE(PLAYER0, SPEECH, 7)
    DISPLAY_INFORMATION(4, 7)
    SET_TIMER(PLAYER0, TIMER4)
    IF(PLAYER0, TIMER4 >= 80)
        USE_POWER_AT_LOCATION(PLAYER1, 7, POWER_DESTROY_WALLs, 9, 1)
        SET_TIMER(PLAYER0, TIMER0)
        IF(PLAYER0, TIMER0 >= 80)
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Cake, 1, 1)
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, Fireworks, 1, 1)
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PartyHard, 1, 1)
            SET_TIMER(PLAYER0, TIMER0)
            IF(PLAYER0, TIMER0 >= 80)
                DISPLAY_OBJECTIVE(1, PLAYER3)
                PLAY_MESSAGE(PLAYER0, SOUND, 785)
                IF(PLAYER0, FLAG1 == 0)
                    IF(PLAYER_GOOD, TOTAL_CREATURES == 37)
                        QUICK_INFORMATION(1, "Amazing, you made something that not supposed to happen, Congratluation. But you can't win from here anymore, please restart and let the Heroes destroy your Heart", ALL_PLAYERS)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

rem "if Heart destroyed then make effect, kill all creature and change rooms and slabs ownship to neutral, show message"

IF(Player3, DUNGEON_DESTROYED == 1)
    CREATE_EFFECTS_LINE(9, 9, 0, 0, 0, 48)
    KILL_CREATURE(Player0, BUG, ANYWHERE, 10)
    KILL_CREATURE(Player0, BILE_DEMON, ANYWHERE, 10)
    KILL_CREATURE(Player0, DRAGON, ANYWHERE, 10)
    KILL_CREATURE(Player0, DARK_MISTRESS, ANYWHERE, 10)
    KILL_CREATURE(Player0, TENTACLE, ANYWHERE, 10)
    KILL_CREATURE(Player0, SORCEROR, ANYWHERE, 10)
    KILL_CREATURE(Player0, ORC, ANYWHERE, 10)
    KILL_CREATURE(Player0, Fly, ANYWHERE, 10)
    KILL_CREATURE(Player0, HELL_HOUND, ANYWHERE, 10)
    KILL_CREATURE(Player0, TROLL, ANYWHERE, 10)
    KILL_CREATURE(Player0, SPIDER, ANYWHERE, 10)
    KILL_CREATURE(Player0, IMP, ANYWHERE, 10)
    KILL_CREATURE(Player0, GHOST, ANYWHERE, 10)

    CHANGE_SLAB_OWNER(15, 56, PLAYER_NEUTRAL, FLOOR)
    CHANGE_SLAB_OWNER(14, 73, PLAYER_NEUTRAL, FLOOR)

    DISPLAY_INFORMATION(6, PLAYER0)
    PLAY_MESSAGE(PLAYER0, SOUND, 787)

    rem "make effect on heart, set it to 1 hp, give imp and wisp, give spell and hand back, give some gold, set flag for wisp respawn"
    IF(Player0, TOTAL_CREATURES == 0)
        SET_TIMER(PLAYER0, TIMER1)
        IF(PLAYER0, TIMER1 >= 200)
            IF_SLAB_OWNER(20, 64, PLAYER0)
                CHANGE_SLAB_TYPE(74, 60, PATH)
            ENDIF
            CREATE_EFFECTS_LINE(PLAYER0, PLAYER0, 0, 0, 0, 48)
            CREATE_EFFECTS_LINE(PLAYER0, PLAYER0, 0, 0, 0, 14)
            ADD_PARTY_TO_LEVEL(PLAYER0, NewBegin, PLAYER0, 1)
            ADD_PARTY_TO_LEVEL(PLAYER0, Wisp, PLAYER0, 1)
            ADD_HEART_HEALTH(PLAYER0, -29990, 1)
            ADD_GOLD_TO_PLAYER(PLAYER0, 5000)
            SET_FLAG(PLAYER0, FLAG1, 1)
            PLAY_MESSAGE(PLAYER0, SOUND, 777)
            DISPLAY_OBJECTIVE(2, PLAYER0)

            rem "reset room and spell avaiability"

            ROOM_AVAILABLE(PLAYER0, BARRACKS, 2, 0)
            ROOM_AVAILABLE(PLAYER0, GUARD_POST, 2, 0)
            ROOM_AVAILABLE(PLAYER0, TORTURE, 2, 0)
            ROOM_AVAILABLE(PLAYER0, TEMPLE, 2, 0)
            ROOM_AVAILABLE(PLAYER0, BRIDGE, 2, 0)
            ROOM_AVAILABLE(PLAYER0, WORKSHOP, 2, 0)
            ROOM_AVAILABLE(PLAYER0, PRISON, 2, 0)

            MAGIC_AVAILABLE(PLAYER0, POWER_HAND, 1, 1)
            MAGIC_AVAILABLE(PLAYER0, POWER_IMP, 1, 1)
            MAGIC_AVAILABLE(PLAYER0, POWER_SIGHT, 1, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_CALL_TO_ARMS, 1, 0)
            IF_AVAILABLE(PLAYER0, POWER_CALL_TO_ARMS == 1)
                TRAP_AVAILABLE(PLAYER0, ALARM, 1, 0)
            ENDIF
            MAGIC_AVAILABLE(PLAYER0, POWER_HEAL_CREATURE, 1, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_PROTECT, 1, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_CHICKEN, 1, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_SPEED, 1, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_HOLD_AUDIENCE, 1, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_DISEASE, 0, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_LIGHTNING, 0, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_OBEY, 0, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_CAVE_IN, 0, 0)
            MAGIC_AVAILABLE(PLAYER0, POWER_ARMAGEDDON, 0, 0)
        ENDIF
    ENDIF
ENDIF

rem " AI shouldn't waste time and money with CTA"

SET_TIMER(PLAYER3, TIMER0)
IF_SLAB_OWNER(7, 78, PLAYER_NEUTRAL)
    IF(PLAYER3, TIMER0 >= 600)
        NEXT_COMMAND_REUSABLE
        MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 0, 0)
        NEXT_COMMAND_REUSABLE
        MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 1, 1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER3, TIMER0)
    ENDIF
ENDIF

IF_ACTION_POINT(19, PLAYER0)
    SET_FLAG(PLAYER0, FLAG4, 1)
ENDIF
IF_ACTION_POINT(20, PLAYER0)
    SET_FLAG(PLAYER0, FLAG4, 1)
ENDIF
IF(PLAYER0, FLAG4 == 0)
    NEXT_COMMAND_REUSABLE
    CONCEAL_MAP_RECT(PLAYER0, 182, 232, 124, 27, 0)
    IF_ACTION_POINT(18, PLAYER0)
        NEXT_COMMAND_REUSABLE
        KILL_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[18], 2)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(18)
    ENDIF
ENDIF



IF(PLAYER0, FLAG1 == 0)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(18, 48, DIRT)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(19, 48, DIRT)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(17, 48, DIRT)
    NEXT_COMMAND_REUSABLE
    CHANGE_SLAB_TYPE(18, 49, TORCH_WALL)
ENDIF
IF(PLAYER0, FLAG1 >= 1)
    rem "Exploit protection"
    CHANGE_SLAB_TYPE(18, 48, PRETTY_PATH)
    CHANGE_SLAB_TYPE(18, 49, DIRT)
    CHANGE_SLAB_TYPE(10, 76, PRETTY_PATH)
    IF(PLAYER0, FLAG4 == 0)
        IF(PLAYER0, TIMER7 >= 80)
            IF_ACTION_POINT(16, PLAYER0)
                IF(PLAYER0, FLAG3 == 0)
                    NEXT_COMMAND_REUSABLE
                    SET_FLAG(PLAYER0, FLAG3, 1)
                    NEXT_COMMAND_REUSABLE
                    SET_TIMER(PLAYER0, TIMER3)
                ENDIF
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[16], 8)
                NEXT_COMMAND_REUSABLE
                RESET_ACTION_POINT(16)
            ENDIF
            IF_ACTION_POINT(17, PLAYER0)
                IF(PLAYER0, FLAG3 == 0)
                    NEXT_COMMAND_REUSABLE
                    SET_FLAG(PLAYER0, FLAG3, 1)
                    NEXT_COMMAND_REUSABLE
                    SET_TIMER(PLAYER0, TIMER3)
                ENDIF
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[17], 8)
                NEXT_COMMAND_REUSABLE
                RESET_ACTION_POINT(17)
            ENDIF
            IF(PLAYER0, FLAG3 == 1)
                NEXT_COMMAND_REUSABLE
                PLAY_MESSAGE(PLAYER0, SOUND, 785)
                NEXT_COMMAND_REUSABLE
                DISPLAY_INFORMATION(194, ALL_PLAYERS)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER0, FLAG3, 2)
            ENDIF
            IF(PLAYER0, FLAG3 >= 2)
                IF(PLAYER0, TIMER3 >= 1000)
                    NEXT_COMMAND_REUSABLE
                    SET_FLAG(PLAYER0, FLAG3, 0)
                ENDIF
            ENDIF
        ENDIF
    ENDIF
    rem "Heroes are healed if Player come back"
    SET_TIMER(PLAYER0, TIMER7)
    IF(PLAYER0, TIMER7 >= 1200)
        IF(PLAYER0, FLAG7 <= 20)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER_GOOD, SACRIFICED[ORC], 1)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER_GOOD, SACRIFICED[SPIDER], 1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0, TIMER5)
            NEXT_COMMAND_REUSABLE
            ADD_TO_FLAG(PLAYER0, FLAG7, 1)
        ENDIF
    ENDIF
ENDIF

rem " Scripts running also after finishing the game"
RUN_AFTER_VICTORY(1)

IF(PLAYER0, ALL_DUNGEONS_DESTROYED == 1)
    IF(PLAYER_GOOD, TOTAL_CREATURES_LEFT == 0)
        SET_TIMER(PLAYER0, TIMER6)
        PLAY_MESSAGE(PLAYER0, SOUND, 777)
        WIN_GAME
    ENDIF
ENDIF

IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
    CHANGE_SLAB_TYPE(74, 60, PATH)
ENDIF
IF_ACTION_POINT(21, PLAYER0)
    CHANGE_SLAB_TYPE(74, 60, PATH)
ENDIF

IF(PLAYER0, TIMER6 >= 300)
    PLAY_MESSAGE(PLAYER0, SOUND, 777)
    DISPLAY_INFORMATION(11, PLAYER0)
ENDIF
