rem		LEVELPACK				rem
rem		Undivine Dungeon		rem
rem		04, TEINTETH HOLLOW     rem
rem		by Shinthoras0815		rem

LEVEL_VERSION(1)
SET_GENERATE_SPEED(600)

COMPUTER_PLAYER(PLAYER1, 0)
rem player2 and player3 don't get a dungeon
COMPUTER_PLAYER(PLAYER2, 9)
COMPUTER_PLAYER(PLAYER3, 9)

ALLY_PLAYERS(PLAYER0, PLAYER3, 1)
ALLY_PLAYERS(PLAYER1, PLAYER2, 1)

REM "CHECK FOR QUICK ATTACK", CheckEvery, AttackPercent, CTADuration, MinForAttack, LastCheck
SET_COMPUTER_CHECKS(PLAYER1,"CHECK FOR QUICK ATTACK",1200,90,2000,1,9500)
rem to slow him and 
SET_COMPUTER_CHECKS(PLAYER1, "MOVE CREATURE TO ROOM", 500, 50, 6, 0, 7000)
SET_COMPUTER_CHECKS(PLAYER1, "MOVE CREATURE TO BEST ROOM", 500, 75, 0, 0, 7000)
rem for a lot attacks with bridges at a certain time
SET_COMPUTER_PROCESS(PLAYER1, "ATTACK PLAN 1", 0, 100, 10, 40, 0)
SET_COMPUTER_PROCESS(PLAYER3,"ATTACK SAFE ATTACK",0, 100, 10, 40, 0)
rem but he should convert his prisoners
SET_COMPUTER_CHECKS(PLAYER1, "COMPUTER CHECK IMPRISONMENT", 400, 1, 2, 25, 200)
SET_COMPUTER_EVENT(PLAYER1, "EVENT MOANING PRISONER", 100, 2, 9, 5, 0)


rem slower process time higher, lower click rate
SET_COMPUTER_GLOBALS(PLAYER1, 90, 40, 5, 100, 100, 1)
rem to disable the ai for less log messages
SET_COMPUTER_GLOBALS(PLAYER3, 0, 0, 0, 0, 100, 0)
SET_COMPUTER_GLOBALS(PLAYER2, 0, 0, 0, 0, 100, 0)

rem Player2 need Money for Call-to-Arms
START_MONEY(ALL_PLAYERS, 2500)
IF(PLAYER2, MONEY < 25)
    NEXT_COMMAND_REUSABLE
    ADD_GOLD_TO_PLAYER(PLAYER2, 25)
ENDIF

Rem At some Point the Computer has no more Gold to dig in reach then he get his gems
IF(PLAYER1, TOTAL_GOLD_MINED > 140000)
        SET_DOOR(UNLOCKED,54,6)
ENDIF

MAX_CREATURES(PLAYER0, 10)
MAX_CREATURES(PLAYER1, 70)
MAX_CREATURES(PLAYER3, 0)

Rem this will iniciate the attack on the player later in the game
IF(PLAYER3, TIMER1 <= 2400)
    IF(PLAYER1, TOTAL_CREATURES >= 22)
        NEXT_COMMAND_REUSABLE
        KILL_CREATURE(PLAYER1, ANY_CREATURE, LEAST_EXPERIENCED, 1)
    ENDIF
ENDIF

rem Player1 Creature Pool
ADD_CREATURE_TO_POOL(BILE_DEMON, 5)
ADD_CREATURE_TO_POOL(DEMONSPAWN, 5)
ADD_CREATURE_TO_POOL(DRAGON, 5)
ADD_CREATURE_TO_POOL(HELL_HOUND, 5)
ADD_CREATURE_TO_POOL(WITCH, 5)
rem Player0 Creature Pool
ADD_CREATURE_TO_POOL(TENTACLE, 20)
ADD_CREATURE_TO_POOL(TROLL, 20)


CREATURE_AVAILABLE(PLAYER1, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(PLAYER1, DEMONSPAWN, 1, 1)
CREATURE_AVAILABLE(PLAYER1, DRAGON, 1, 1)
CREATURE_AVAILABLE(PLAYER1, WITCH, 1, 100)
CREATURE_AVAILABLE(PLAYER1, HELL_HOUND, 1, 100)
rem force creature to skip room requirement
CREATURE_AVAILABLE(PLAYER0, TENTACLE, 1, 100)
CREATURE_AVAILABLE(PLAYER0, TROLL, 1, 100)

SET_CREATURE_MAX_LEVEL(PLAYER0, TROLL, 4)
SET_CREATURE_MAX_LEVEL(PLAYER0, TENTACLE, 4)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS, FLOATING_SPIRIT, 9)

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

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HAND, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SLAP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_POSSESS, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_CALL_TO_ARMS, 1, 0)
NEXT_COMMAND_REUSABLE
MAGIC_AVAILABLE(PLAYER2, POWER_CALL_TO_ARMS, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HOLD_AUDIENCE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HEAL_CREATURE, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_PROTECT, 1, 0)

MAGIC_AVAILABLE(PLAYER3, POWER_IMP, 0, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_HAND, 0, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_SLAP, 0, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_POSSESS, 0, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_IMP, 0, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_HAND, 0, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_SLAP, 0, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_POSSESS, 0, 0)

rem for PLAYER1 aviable after knight is killed
IF(PLAYER3, TIMER1 >= 2400)
    MAGIC_AVAILABLE(PLAYER1, POWER_CALL_TO_ARMS, 1, 1) 
    ROOM_AVAILABLE(PLAYER1, BRIDGE, 1, 1)
    MAX_CREATURES(PLAYER1, 21)
    rem player2 can now attack the training garden
    ADD_TO_FLAG(PLAYER2, FLAG5, 1)
ENDIF

TRAP_AVAILABLE(PLAYER0, POISON_GAS, 1, 0)
TRAP_AVAILABLE(PLAYER0, LIGHTNING, 1, 0)
TRAP_AVAILABLE(PLAYER1, WORD_OF_POWER, 1, 0)
TRAP_AVAILABLE(PLAYER0, SLOWVEIL, 1, 0)
TRAP_AVAILABLE(ALL_PLAYERS, CANNON, 1, 0)
DOOR_AVAILABLE(PLAYER0, WOOD, 1, 2)
DOOR_AVAILABLE(PLAYER0, MAGIC, 1, 0)
rem wood door
TUTORIAL_FLASH_BUTTON(58, 1000)

SET_OBJECT_CONFIGURATION(SCAVENGE_EYE, MaximumSize, 400)
SET_OBJECT_CONFIGURATION(SCAVENGE_EYE, Properties, DESTROYED_ON_ROOM_PLACE)
SET_OBJECT_CONFIGURATION(HEARTFLAME_BLUE, Properties, DESTROYED_ON_ROOM_PLACE)
SET_CREATURE_CONFIGURATION(BILE_DEMON, HurtByLava, 0)
SET_CREATURE_CONFIGURATION(WITCH, HurtByLava, 0)
SET_CREATURE_PROPERTY(WITCH, UNAFFECTED_BY_WIND, 1)
SET_CREATURE_PROPERTY(DRAGON, UNAFFECTED_BY_WIND, 1)
SET_CREATURE_PROPERTY(BILE_DEMON, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(DRAGON, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(WITCH, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(DEMONSPAWN, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(HELL_HOUND, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(FLY, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(TUNNELLER, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(SPIDER, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(TENTACLE, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(TROLL, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(SKELETON, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(GHOST, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(HORNY, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(VAMPIRE, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(SORCEROR, NO_CORPSE_ROTTING, 1)
SET_CREATURE_PROPERTY(BILE_DEMON, NO_CORPSE_ROTTING, 1)

SET_CREATURE_PROPERTY(SKELETON, NO_IMPRISONMENT, 1)

SET_CREATURE_PROPERTY(DRAGON, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(WITCH, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(DEMONSPAWN, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(HELL_HOUND, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(FLY, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(TUNNELLER, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(SPIDER, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(TENTACLE, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(TROLL, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(SKELETON, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(GHOST, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(HORNY, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(VAMPIRE, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(WIZARD, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(BARBARIAN, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(DWARFA, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(ARCHER, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(MONK, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(THIEF, HUMANOID_SKELETON, 0)
SET_CREATURE_PROPERTY(FAIRY, HUMANOID_SKELETON, 0)

NEXT_COMMAND_REUSABLE
LEVEL_UP_CREATURE(PLAYER2, DEMONSPAWN, ANYWHERE, 1)
SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 2)
NEXT_COMMAND_REUSABLE
LEVEL_UP_CREATURE(PLAYER2, HELL_HOUND, ANYWHERE, 1)
SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 1)
NEXT_COMMAND_REUSABLE
LEVEL_UP_CREATURE(PLAYER2, DRAGON, ANYWHERE, 1)
SET_CREATURE_MAX_LEVEL(PLAYER2, DRAGON, 3)
NEXT_COMMAND_REUSABLE
LEVEL_UP_CREATURE(PLAYER2, BILE_DEMON, ANYWHERE, 1)
SET_CREATURE_MAX_LEVEL(PLAYER2, BILE_DEMON, 2)

SET_CREATURE_MAX_LEVEL(ALL_PLAYERS, TROLL, 4)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS, TENTACLE, 4)
SET_CREATURE_MAX_LEVEL(PLAYER0, SKELETON, 4)
SET_CREATURE_MAX_LEVEL(PLAYER1, SKELETON, 4)
SET_CREATURE_MAX_LEVEL(PLAYER_GOOD, SKELETON, 2)
NEXT_COMMAND_REUSABLE
LEVEL_UP_CREATURE(ALL_PLAYERS, SKELETON, ANYWHERE, 1)
SET_CREATURE_MAX_LEVEL(PLAYER1, WITCH, 4)
SET_CREATURE_MAX_LEVEL(PLAYER1, DEMONSPAWN, 4)
SET_CREATURE_MAX_LEVEL(PLAYER1, DRAGON, 4)
SET_CREATURE_MAX_LEVEL(PLAYER1, BILE_DEMON, 4)
SET_CREATURE_MAX_LEVEL(PLAYER1, HELL_HOUND, 4)
CREATURE_ENTRANCE_LEVEL(PLAYER1, 2)
IF(PLAYER0, VAMPIRE == 0)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 4)
ENDIF
IF(PLAYER0, VAMPIRE == 1)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 8)
ENDIF
IF(PLAYER0, VAMPIRE == 2)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 12)
ENDIF
IF(PLAYER0, VAMPIRE == 3)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 16)
ENDIF
IF(PLAYER0, VAMPIRE == 4)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 20)
ENDIF
IF(PLAYER0, VAMPIRE == 5)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 24)
ENDIF
IF(PLAYER0, VAMPIRE == 6)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 36)
ENDIF
IF(PLAYER0, VAMPIRE == 7)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 48)
ENDIF
IF(PLAYER0, VAMPIRE == 8)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 60)
ENDIF
IF(PLAYER0, VAMPIRE == 9)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 72)
ENDIF
IF(PLAYER0, VAMPIRE >= 10)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire, 999)
ENDIF

SET_GAME_RULE(TrapSellValuePercent, 40)
SET_GAME_RULE(DoorSellValuePercent, 40)
SET_GAME_RULE(PrisonSkeletonChance, 0)
SET_CREATURE_TENDENCIES(PLAYER1, FLEE, 1)

SET_TRAP_CONFIGURATION(MONSTEREYE, ModelSize, 1)
SET_TRAP_CONFIGURATION(MONSTEREYE, TriggerType, 1)
SET_TRAP_CONFIGURATION(MONSTEREYE, ActivationType, 1)
SET_TRAP_CONFIGURATION(MONSTEREYE, EffectType, 8)
SET_TRAP_CONFIGURATION(MONSTEREYE, PointerSprites, 0)
SET_TRAP_CONFIGURATION(MONSTEREYE, TimeBetweenShots, 10)
SET_TRAP_CONFIGURATION(MONSTEREYE, SymbolSprites, hidden32 hidden32)

SET_TRAP_CONFIGURATION(MONSTERBOX, Model, Bonepile)
SET_TRAP_CONFIGURATION(MONSTERBOX, ModelSize, 150)
SET_TRAP_CONFIGURATION(MONSTERBOX, SymbolSprites, trap_skullbox64 trap_skullbox32)
SET_TRAP_CONFIGURATION(MONSTERBOX, PointerSprites, tiletr_trap_skullbox)
SET_TRAP_CONFIGURATION(MONSTERBOX, AnimationSpeed, 0)
SET_TRAP_CONFIGURATION(MONSTERBOX, Unanimated, 1)
SET_OBJECT_CONFIGURATION(WRKBOX_MBOX, AnimationID, Bonepile)
SET_OBJECT_CONFIGURATION(WRKBOX_MBOX, MaximumSize, 150)
SET_OBJECT_CONFIGURATION(WRKBOX_MBOX, AnimationSpeed, 0)

CREATE_PARTY(HeroRookie1)
ADD_TO_PARTY(HeroRookie1, WIZARD, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie1, BARBARIAN, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie1, DWARFA, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie1, ARCHER, 1, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(HeroRookie2)
ADD_TO_PARTY(HeroRookie2, MONK, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie2, BARBARIAN, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie2, WIZARD, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie2, THIEF, 1, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(HeroRookie3)
ADD_TO_PARTY(HeroRookie3, FAIRY, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie3, DWARFA, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie3, MONK, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(HeroRookie3, THIEF, 1, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(EvilTraingsDummy1)
ADD_TO_PARTY(EvilTraingsDummy1, FLY, 1, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(EvilTraingsDummy2)
ADD_TO_PARTY(EvilTraingsDummy2, SKELETON, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy2, GHOST, 2, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy2, SKELETON, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy2, SKELETON, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy2, GHOST, 2, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy2, GHOST, 2, 0, ATTACK_ENEMIES, 0)

CREATE_PARTY(EvilTraingsDummy3)
ADD_TO_PARTY(EvilTraingsDummy3, TROLL, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy3, ORC, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy3, TROLL, 1, 0, ATTACK_ENEMIES, 0)
ADD_TO_PARTY(EvilTraingsDummy3, ORC, 1, 0, ATTACK_ENEMIES, 0)


CREATE_PARTY(AtkGrp1)
ADD_TO_PARTY(AtkGrp1, DRAGON, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp1, HELL_HOUND, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp1, DEMONSPAWN, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp1, DEMONSPAWN, 2, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(AtkGrp2)
ADD_TO_PARTY(AtkGrp2, BILE_DEMON, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp1, HELL_HOUND, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp2, BILE_DEMON, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp2, DEMONSPAWN, 2, 0, ATTACK_DUNGEON_HEART, 0)

CREATE_PARTY(AtkGrp3)
ADD_TO_PARTY(AtkGrp3, DRAGON, 3, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp3, HELL_HOUND, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp3, HELL_HOUND, 2, 0, ATTACK_DUNGEON_HEART, 0)
ADD_TO_PARTY(AtkGrp3, DEMONSPAWN, 2, 0, ATTACK_DUNGEON_HEART, 0)

rem Heroes life to die
SET_CREATURE_HEALTH(WIZARD, 500)
SET_CREATURE_HEALTH(BARBARIAN, 1000)
SET_CREATURE_HEALTH(DWARFA, 800)
SET_CREATURE_HEALTH(ARCHER, 500)
SET_CREATURE_HEALTH(THIEF, 500)
SET_CREATURE_HEALTH(FAIRY, 300)
SET_CREATURE_HEALTH(MONK, 700)
SET_CREATURE_STRENGTH(WIZARD, 30)
SET_CREATURE_STRENGTH(BARBARIAN, 50)
SET_CREATURE_STRENGTH(DWARFA, 45)
SET_CREATURE_STRENGTH(ARCHER, 25)
SET_CREATURE_STRENGTH(THIEF, 30)
SET_CREATURE_STRENGTH(FAIRY, 20)
SET_CREATURE_STRENGTH(MONK, 50)

rem Start Objective
rem"
PLAY_MESSAGE(PLAYER0,SOUND,777)
DISPLAY_OBJECTIVE(44,​Player0)

rem "Wisp respawn for player with effect"
IF(PLAYER0, FLOATING_SPIRIT == 0)
    IF(PLAYER1, FLAG2 == 0)
        NEXT_COMMAND_REUSABLE
        PLAY_MESSAGE(PLAYER0, SOUND, 778)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER1, FLAG2, 1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER2, TIMER1)
    ENDIF
    IF(PLAYER2, TIMER1 >= 1000)
        IF(PLAYER1, FLAG2 == 1)
            NEXT_COMMAND_REUSABLE
            CREATE_EFFECTS_LINE(PLAYER0, PLAYER0, 0, 0, 0, 48)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0, FLOATING_SPIRIT, PLAYER0, 1, 1, 0)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER1, FLAG2, 0)
        ENDIF
    ENDIF
ENDIF


rem "Wisp respawn for computer"
IF(PLAYER1, DUNGEON_DESTROYED == 0)
    IF(PLAYER1, FLOATING_SPIRIT == 1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1, TIMER2)
    ENDIF
    IF(PLAYER1, FLOATING_SPIRIT == 0)
        IF(PLAYER1, TIMER2 >= 1000)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER1, FLOATING_SPIRIT, PLAYER1, 1, 1, 0)
        ENDIF
    ENDIF
ENDIF

rem noob hero buff and back teleport
IF(PLAYER2, FLAG2 == 1)
    SET_TIMER(PLAYER3, TIMER0)
    SET_TIMER(PLAYER_GOOD, TIMER2)

    IF(PLAYER_GOOD, TIMER0 >= 2000)
        IF(PLAYER_GOOD, TIMER0 <= 2200)
            NEXT_COMMAND_REUSABLE
            USE_SPELL_ON_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[4], SPELL_TELEPORT, 0)
        ENDIF
    ENDIF

    IF(PLAYER1, FLAG0 != 1)
        IF(PLAYER_GOOD, TIMER2 >= 230)
            IF(PLAYER_GOOD, TIMER2 <= 232)
                NEXT_COMMAND_REUSABLE
                USE_SPELL_ON_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
            ENDIF

            IF(PLAYER_GOOD, TIMER2 >= 233)
                IF(PLAYER_GOOD, TIMER2 <= 235)
                    NEXT_COMMAND_REUSABLE
                    USE_SPELL_ON_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
                ENDIF
            ENDIF
            IF(PLAYER_GOOD, TIMER2 >= 237)
                IF(PLAYER_GOOD, TIMER2 <= 239)
                    NEXT_COMMAND_REUSABLE
                    USE_SPELL_ON_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
                ENDIF
            ENDIF
            IF(PLAYER_GOOD, TIMER2 >= 240)
                IF(PLAYER_GOOD, TIMER2 <= 242)
                    NEXT_COMMAND_REUSABLE
                    USE_SPELL_ON_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
                ENDIF
            ENDIF
            IF(PLAYER_GOOD, TIMER2 >= 250)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER_GOOD, TIMER2)
            ENDIF

            IF(PLAYER3, TIMER0 >= 200)
                IF_CONTROLS(PLAYER3, TOTAL_CREATURES < 6)
                    NEXT_COMMAND_REUSABLE
                    RANDOMISE_FLAG(PLAYER3, FLAG0, 20)
                ENDIF
                IF(PLAYER3, FLAG0 != 0)
                    IF(PLAYER3, FLAG0 > 0)
                        IF(PLAYER3, FLAG0 < 8)
                            NEXT_COMMAND_REUSABLE
                            ADD_PARTY_TO_LEVEL(PLAYER3, EvilTraingsDummy1, 2, 1)
                        ENDIF
                    ENDIF
                    IF(PLAYER3, FLAG0 > 7)
                        IF(PLAYER3, FLAG0 < 14)
                            NEXT_COMMAND_REUSABLE
                            ADD_CREATURE_TO_LEVEL(PLAYER3, TUNNELLER, 2, 1, 1, 0)
                        ENDIF
                    ENDIF
                    IF(PLAYER3, FLAG0 > 13)
                        IF(PLAYER3, FLAG0 < 19)
                            NEXT_COMMAND_REUSABLE
                            ADD_CREATURE_TO_LEVEL(PLAYER3, SPIDER, 2, 1, 1, 0)
                        ENDIF
                    ENDIF
                    IF(PLAYER3, FLAG0 == 20)
                        NEXT_COMMAND_REUSABLE
                        ADD_CREATURE_TO_LEVEL(PLAYER3, SPIDER, 2, 2, 1, 0)
                        NEXT_COMMAND_REUSABLE
                        ADD_CREATURE_TO_LEVEL(PLAYER3, TUNNELLER, 2, 3, 1, 0)
                        NEXT_COMMAND_REUSABLE
                        ADD_PARTY_TO_LEVEL(PLAYER3, EvilTraingsDummy1, 2, 3)
                    ENDIF
                    NEXT_COMMAND_REUSABLE
                    SET_FLAG(PLAYER3, FLAG0, 0)
                ENDIF
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER3, TIMER0)
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2, FLAG2 == 1)
    IF(PLAYER1, FLAG0 != 1)
        IF(PLAYER0, TOTAL_CREATURES >= 4)
            SET_TIMER(PLAYER2, TIMER0)
        ENDIF
        IF(PLAYER2, TIMER0 >= 5000)
            IF_CONTROLS(PLAYER2, TOTAL_CREATURES >= 1)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER2, ANY_CREATURE, ANYWHERE, 4)
            ENDIF
            IF_CONTROLS(PLAYER2, TOTAL_CREATURES == 0)
                IF(PLAYER2, FLAG0 == 0)
                    NEXT_COMMAND_REUSABLE
                    RANDOMISE_FLAG(PLAYER2, FLAG0, 3)
                ENDIF
            ENDIF
        ENDIF
    ENDIF
    IF(PLAYER1, FLAG0 == 1)
        SET_TIMER(PLAYER2, TIMER0)
    ENDIF
    IF(PLAYER2, TIMER0 >= 5000)
        IF_CONTROLS(PLAYER2, TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            KILL_CREATURE(PLAYER2, ANY_CREATURE, ANYWHERE, 4)
        ENDIF
        IF_CONTROLS(PLAYER2, TOTAL_CREATURES == 0)
            IF(PLAYER2, FLAG0 == 0)
                NEXT_COMMAND_REUSABLE
                RANDOMISE_FLAG(PLAYER2, FLAG0, 3)
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2, FLAG2 == 1)
    IF(PLAYER0, TOTAL_CREATURES >= 4)
        SET_TIMER(PLAYER2, TIMER0)
        PLAY_MESSAGE(PLAYER0,SOUND,778)
        DISPLAY_INFORMATION(45,​Player1)
        REVEAL_MAP_LOCATION(PLAYER0,PLAYER1,10)
    ENDIF
    IF(PLAYER2, TIMER0 >= 5000)
        IF_CONTROLS(PLAYER2, TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            KILL_CREATURE(PLAYER2, ANY_CREATURE, ANYWHERE, 4)
        ENDIF
        IF_CONTROLS(PLAYER2, TOTAL_CREATURES == 0)
            IF(PLAYER2, FLAG0 == 0)
                NEXT_COMMAND_REUSABLE
                RANDOMISE_FLAG(PLAYER2, FLAG0, 3)
            ENDIF
        ENDIF
    ENDIF
ENDIF

rem ---------------------------------------PLAYER2------------------------------------------------
rem Player2 get stronger with progress of Player0
IF_SLAB_OWNER(15, 57, PLAYER0)
    ADD_TO_FLAG(PLAYER2, FLAG3, 1)
ENDIF
IF_SLAB_OWNER(40, 64, PLAYER0)
    ADD_TO_FLAG(PLAYER2, FLAG3, 1)
ENDIF
IF_SLAB_OWNER(36, 59, PLAYER0)
    ADD_TO_FLAG(PLAYER2, FLAG3, 1)
ENDIF
IF_SLAB_OWNER(35, 53, PLAYER0)
    ADD_TO_FLAG(PLAYER2, FLAG3, 1)
ENDIF
IF_SLAB_OWNER(17, 57, PLAYER0)
    ADD_TO_FLAG(PLAYER2, FLAG3, 1)
ENDIF
IF(PLAYER2, FLAG3 == 1)
    SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 3)
ENDIF
IF(PLAYER2, FLAG3 == 2)
    SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 3)
ENDIF
IF(PLAYER2, FLAG3 == 3)
    SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 4)
ENDIF
IF(PLAYER2, FLAG3 == 4)
    SET_CREATURE_MAX_LEVEL(PLAYER2, BILE_DEMON, 3)
ENDIF
IF(PLAYER2, FLAG3 == 5)
    SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 4)
ENDIF
IF(PLAYER1, FLAG0 == 1)
    SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 4)
    SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 4)
    SET_CREATURE_MAX_LEVEL(PLAYER2, DRAGON, 4)
    SET_CREATURE_MAX_LEVEL(PLAYER2, BILE_DEMON, 3)
    ADD_TO_PARTY(AtkGrp1,BILE_DEMON,1,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(AtkGrp2,BILE_DEMON,1,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(AtkGrp3,BILE_DEMON,1,0,ATTACK_DUNGEON_HEART,0)
ENDIF
IF(PLAYER0, VAMPIRE == 1)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 5)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, DRAGON, 5)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, WITCH, 5)
    ADD_TO_PARTY(AtkGrp1,WITCH,4,0,STEAL_SPELLS,0)
    ADD_TO_PARTY(AtkGrp2,WITCH,4,0,STEAL_SPELLS,0)
    ADD_TO_PARTY(AtkGrp3,WITCH,4,0,STEAL_SPELLS,0)
ENDIF
IF(PLAYER0, VAMPIRE == 2)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 6)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, BILE_DEMON, 5)
ENDIF
IF(PLAYER0, VAMPIRE == 3)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 6)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, BILE_DEMON, 6)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, WITCH, 6)
ENDIF
IF(PLAYER0, VAMPIRE == 4)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 7)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, DRAGON, 7)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, WITCH, 7)
ENDIF
IF(PLAYER0, VAMPIRE == 5)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, HELL_HOUND, 8)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, DRAGON, 8)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, BILE_DEMON, 8)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, DEMONSPAWN, 8)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_MAX_LEVEL(PLAYER2, WITCH, 8)
ENDIF
IF_AVAILABLE(PLAYER0, POWER_TIME_BOMB == 1)
    ADD_TO_PARTY(AtkGrp1,DRAGON,1,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(AtkGrp2,DRAGON,1,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(AtkGrp3,DRAGON,1,0,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(AtkGrp1,WITCH,6,0,STEAL_SPELLS,0)
    ADD_TO_PARTY(AtkGrp2,WITCH,6,0,STEAL_SPELLS,0)
    ADD_TO_PARTY(AtkGrp3,WITCH,6,0,STEAL_SPELLS,0)
ENDIF

rem player2 start attacks if player0 have more than 5 creatures
IF(PLAYER0, TOTAL_CREATURES > 5)
    SET_FLAG(PLAYER2, FLAG2, 1)
ENDIF

IF(PLAYER0, ENTRANCE > 1)
    PLAY_MESSAGE(PLAYER0,SOUND,777)
    DISPLAY_OBJECTIVE(46,PLAYER0)
ENDIF

rem player2 attackgroup settings

rem player2 is linked with player1
IF(PLAYER1, DUNGEON_DESTROYED == 0)
    IF(PLAYER2, FLAG0 > 0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER2, TIMER0)
    ENDIF
ENDIF
IF(PLAYER2, FLAG0 == 1)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG1, 1)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER2, AtkGrp1, 8, 1)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG0, 0)
ENDIF
IF(PLAYER2, FLAG0 == 2)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG1, 2)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER2, AtkGrp2, 13, 1)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG0, 0)
ENDIF
IF(PLAYER2, FLAG0 == 3)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG1, 3)
    NEXT_COMMAND_REUSABLE
    ADD_PARTY_TO_LEVEL(PLAYER2, AtkGrp3, 16, 1)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER2, FLAG0, 0)
ENDIF
SET_FLAG(PLAYER2, FLAG5, 1)
rem player2 next attack wave only starts if he has 0 creature aviable again
IF(PLAYER2, FLAG1 == 0)
    IF(PLAYER2, TIMER2 < 4)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER2, TIMER2)
    ENDIF
ENDIF
rem player2 chose the next place to attack
rem more places are aviable if player0 progress
IF(PLAYER2, TIMER2 > 5)
    IF(PLAYER2, TIMER2 < 10)
        IF(PLAYER2, FLAG5 == 1)
            NEXT_COMMAND_REUSABLE
            RANDOMISE_FLAG(PLAYER2, FLAG4, 1)
        ENDIF
        IF(PLAYER2, FLAG5 == 2)
            NEXT_COMMAND_REUSABLE
            RANDOMISE_FLAG(PLAYER2, FLAG4, 2)
        ENDIF
        IF(PLAYER2, FLAG5 == 3)
            NEXT_COMMAND_REUSABLE
            RANDOMISE_FLAG(PLAYER2, FLAG4, 3)
        ENDIF
    ENDIF
ENDIF
rem Player2 led his army with CTA
rem PLAYER2, FLAG1 = Player0 Heart
rem PLAYER2, FLAG2 = Hero Training Garden
rem PLAYER2, FLAG3 = Prison

rem first he gather them
IF(PLAYER2, FLAG1 == 1)
    IF(PLAYER2, TIMER2 == 10)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 8, POWER_CALL_TO_ARMS, 9, 1)
    ENDIF
ENDIF
IF(PLAYER2, FLAG1 == 2)
    IF(PLAYER2, TIMER2 == 10)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 13, POWER_CALL_TO_ARMS, 9, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(2)
    ENDIF
ENDIF
IF(PLAYER2, FLAG1 == 3)
    IF(PLAYER2, TIMER2 == 10)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 16, POWER_CALL_TO_ARMS, 9, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(3)
    ENDIF
ENDIF
rem then sends them to the chosen location
rem Heart
IF(PLAYER2, FLAG4 == 1)
    IF(PLAYER2, TIMER2 == 40)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, PLAYER0, POWER_CALL_TO_ARMS, 9, 1)
    ENDIF
ENDIF
rem Training
IF(PLAYER2, TIMER2 == 40)
    IF(PLAYER2, FLAG4 == 2)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 2, POWER_CALL_TO_ARMS, 9, 1)
    ENDIF
ENDIF
rem Prison
IF(PLAYER2, TIMER2 == 40)
    IF(PLAYER2, FLAG4 == 3)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 31, POWER_CALL_TO_ARMS, 9, 1)
    ENDIF
ENDIF

rem The attack ends once all creatures are dead or captured
IF(PLAYER2, TIMER2 > 40)
    IF_CONTROLS(PLAYER2, TOTAL_CREATURES < 1)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER2, FLAG1, 0)
        NEXT_COMMAND_REUSABLE
        MAGIC_AVAILABLE(PLAYER2, POWER_CALL_TO_ARMS, 0, 0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER2, TIMER2)
    ENDIF
ENDIF


rem the knight is dead, Player1 awake
SET_TIMER(PLAYER1, TIMER0)
IF(PLAYER1, FLAG0 == 1)
    CREATURE_ENTRANCE_LEVEL(PLAYER1, 3)

    SET_CREATURE_MAX_LEVEL(PLAYER1, WITCH, 10)
    SET_CREATURE_MAX_LEVEL(PLAYER1, DEMONSPAWN, 10)
    SET_CREATURE_MAX_LEVEL(PLAYER1, DRAGON, 8)
    SET_CREATURE_MAX_LEVEL(PLAYER1, BILE_DEMON, 9)
    SET_CREATURE_MAX_LEVEL(PLAYER1, HELL_HOUND, 10)

    SET_TIMER(PLAYER3, TIMER1)
    rem to be sure no more player3 creature run around
    KILL_CREATURE(PLAYER3, ANY_CREATURE, ANYWHERE, 20)
    rem Training Garden Buff go to Player0
    IF(PLAYER_GOOD, TIMER2 >= 230)
        IF(PLAYER_GOOD, TIMER2 <= 232)
            NEXT_COMMAND_REUSABLE
            USE_SPELL_ON_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
        ENDIF
    ENDIF
    IF(PLAYER_GOOD, TIMER2 >= 233)
        IF(PLAYER_GOOD, TIMER2 <= 235)
            NEXT_COMMAND_REUSABLE
            USE_SPELL_ON_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
        ENDIF
    ENDIF
    IF(PLAYER_GOOD, TIMER2 >= 237)
        IF(PLAYER_GOOD, TIMER2 <= 239)
            NEXT_COMMAND_REUSABLE
            USE_SPELL_ON_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
        ENDIF
    ENDIF
    IF(PLAYER_GOOD, TIMER2 >= 240)
        IF(PLAYER_GOOD, TIMER2 <= 242)
            NEXT_COMMAND_REUSABLE
            USE_SPELL_ON_CREATURE(PLAYER0, ANY_CREATURE, AT_ACTION_POINT[4], Spell_SPEED, 1)
        ENDIF
    ENDIF
    IF(PLAYER_GOOD, TIMER2 >= 250)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER_GOOD, TIMER2)
    ENDIF

    rem Creature of Player3 now prefer to go to player0
IF(PLAYER0,ENTRANCE >= 1)
    IF(PLAYER1, TIMER0 >= 600)
        IF_CONTROLS(PLAYER0, VAMPIRE < 5)
            IF_CONTROLS(PLAYER0, TOTAL_CREATURES < 15)
                NEXT_COMMAND_REUSABLE
                RANDOMISE_FLAG(PLAYER3, FLAG0, 3)
            ENDIF
            IF(PLAYER3, FLAG0 != 0)
                IF(PLAYER3, FLAG0 == 1)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER0, FLY, 5, 1, 1, 0)
                ENDIF
                IF(PLAYER3, FLAG0 == 2)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER0, TUNNELLER, 5, 1, 1, 0)
                ENDIF
                IF(PLAYER3, FLAG0 == 3)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER0, SPIDER, 5, 1, 1, 0)
                ENDIF
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER3, FLAG0, 0)
            ENDIF
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER1, TIMER0)
        ENDIF
    ENDIF
ENDIF
    rem make call-to-arms aviable for PLAYER1
    SET_TIMER(PLAYER3, TIMER0)

    SET_TIMER(PLAYER1, TIMER1)
    IF(PLAYER1, TIMER1 >= 1200)
        TUTORIAL_FLASH_BUTTON(18, -1)
        ROOM_AVAILABLE(PLAYER0, BRIDGE, 1, 1)
        DISPLAY_OBJECTIVE(50,PLAYER1)
        PLAY_MESSAGE(PLAYER0,SOUND,777)
    ENDIF
ENDIF

rem even after you destroy the hero fortress, new newbies will be send in the training garden
SET_FLAG(PLAYER_GOOD, FLAG0, 1)
SET_TIMER(PLAYER_GOOD, TIMER0)
rem till player0 has get 10 Vampires
IF_CONTROLS(PLAYER0, VAMPIRE < 10)
    IF(PLAYER_GOOD, TIMER0 >= 3000)
        NEXT_COMMAND_REUSABLE
        RANDOMISE_FLAG(PLAYER_GOOD, FLAG0, 3)
        IF(PLAYER_GOOD, FLAG0 == 1)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, HeroRookie1, -1, 1)
        ENDIF
        IF(PLAYER_GOOD, FLAG0 == 2)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, HeroRookie2, -1, 1)
        ENDIF
        IF(PLAYER_GOOD, FLAG0 == 3)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD, HeroRookie3, -1, 1)
        ENDIF
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER_GOOD, TIMER0)
    ENDIF
ENDIF


REM -------------------------------PLAYER0 gets a SKELETONSTRAPS for Sacricficed Enemys----------------------------------
rem sacrifice only works if Player0 has taken the Prison and the center
SET_FLAG(PLAYER1, FLAG7, 1)
IF_SLAB_OWNER(48, 52, PLAYER0)
ROOM_AVAILABLE(PLAYER0,TORTURE,1,1)
TUTORIAL_FLASH_BUTTON(17, -1)
DISPLAY_INFORMATION(53,25)
    rem player2 can now attack the prison
    ADD_TO_FLAG(PLAYER2, FLAG5, 1)
    rem if Creatures of Player1,Player2 or Player_good are thrown in the center...
    IF(PLAYER0, FLAG1 == 0)
        IF_ACTION_POINT(6, PLAYER_GOOD)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0, FLAG1, 1)
        ENDIF
    ENDIF
    IF(PLAYER0, FLAG1 == 0)
        IF_ACTION_POINT(6, PLAYER1)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0, FLAG1, 1)
        ENDIF
    ENDIF
    IF(PLAYER0, FLAG1 == 0)
        IF_ACTION_POINT(6, PLAYER2)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0, FLAG1, 1)
        ENDIF
    ENDIF
ENDIF
rem ... start timer for nice effects...
IF(PLAYER0, FLAG1 != 1)
    NEXT_COMMAND_REUSABLE
    SET_TIMER(PLAYER0, TIMER0)
ENDIF
IF(PLAYER0, TIMER0 > 2)
    IF(PLAYER0, TIMER0 < 10)
        NEXT_COMMAND_REUSABLE
        PLAY_MESSAGE(PLAYER0, SOUND, 157)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER1, FLAG7, 0)
    ENDIF
    IF(PLAYER0, TIMER0 > 0)
        IF(PLAYER0, TIMER0 < 10)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(19, 6, 3, 20, 1, 64)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(20, 6, 3, 20, 1, 64)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(21, 6, 3, 20, 1, 64)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(22, 6, 3, 20, 1, 64)
        ENDIF
    ENDIF
        IF(PLAYER0, TIMER0 > 15)
        IF(PLAYER0, TIMER0 < 25)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(19, 6, 3, 20, 1, 64)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(20, 6, 3, 20, 1, 64)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(21, 6, 3, 20, 1, 64)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECTS_LINE(22, 6, 3, 20, 1, 64)
        ENDIF
    ENDIF
    rem~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    rem ... and hold the creature till the end of the ritual...
    IF(PLAYER0, TIMER0 < 45)
        NEXT_COMMAND_REUSABLE
        USE_SPELL_ON_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[6], SPELL_TELEPORT, 0)
        NEXT_COMMAND_REUSABLE
        USE_SPELL_ON_CREATURE(PLAYER1, ANY_CREATURE, AT_ACTION_POINT[6], SPELL_TELEPORT, 0)
        NEXT_COMMAND_REUSABLE
        USE_SPELL_ON_CREATURE(PLAYER2, ANY_CREATURE, AT_ACTION_POINT[6], SPELL_TELEPORT, 0)
    ENDIF
ENDIF
rem ...where the creature is teleported away...
IF(PLAYER0, TIMER0 >= 40)
    NEXT_COMMAND_REUSABLE
    CHANGE_CREATURE_OWNER(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[6], PLAYER3)
    NEXT_COMMAND_REUSABLE
    USE_SPELL_ON_CREATURE(PLAYER3, ANY_CREATURE, AT_ACTION_POINT[6], SPELL_TELEPORT, 0)
ENDIF
IF(PLAYER0, TIMER0 >= 40)
    NEXT_COMMAND_REUSABLE
    CHANGE_CREATURE_OWNER(PLAYER1, ANY_CREATURE, AT_ACTION_POINT[6], PLAYER3)
    NEXT_COMMAND_REUSABLE
    USE_SPELL_ON_CREATURE(PLAYER3, ANY_CREATURE, AT_ACTION_POINT[6], SPELL_TELEPORT, 0)
ENDIF
IF(PLAYER0, TIMER0 >= 40)
    NEXT_COMMAND_REUSABLE
    CHANGE_CREATURE_OWNER(PLAYER2, ANY_CREATURE, AT_ACTION_POINT[6], PLAYER3)
    NEXT_COMMAND_REUSABLE
    USE_SPELL_ON_CREATURE(PLAYER3, ANY_CREATURE, AT_ACTION_POINT[6], SPELL_TELEPORT, 0)
ENDIF
rem ...a lightning appears and the box is generated,....
IF_ACTION_POINT(25, PLAYER3)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0, FLAG1, 0)
    NEXT_COMMAND_REUSABLE
    USE_POWER_AT_LOCATION(PLAYER1, 6, POWER_LIGHTNING, 1, 1)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER1, FLAG7, 1)
    rem "next command exist because, the very first box refuses to appear otherwise..."
    ADD_OBJECT_TO_LEVEL(WRKBOX_MBOX, 26, 0)
    IF(PLAYER0, FLAG1 == 1)
    NEXT_COMMAND_REUSABLE
    ADD_OBJECT_TO_LEVEL(WRKBOX_MBOX, 26, 0)
    ENDIF
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(25)
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(6)
ENDIF
rem ... also  a lot of blood appears
IF(PLAYER1, FLAG7 >= 1)
    IF(PLAYER1, FLAG7 <= 20)
        NEXT_COMMAND_REUSABLE
        CREATE_EFFECT(9, 25)
        NEXT_COMMAND_REUSABLE
        ADD_TO_FLAG(PLAYER1, FLAG7, 1)
    ENDIF
ENDIF
rem now the ritual could used again
IF(PLAYER0, TIMER0 >= 50)
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(6)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0, FLAG1, 0)
ENDIF

rem Creaturs who are teleported back, can go "home"
NEXT_COMMAND_REUSABLE
KILL_CREATURE(PLAYER3, ANY_CREATURE, AT_ACTION_POINT[15], 1)
NEXT_COMMAND_REUSABLE
KILL_CREATURE(PLAYER2, ANY_CREATURE, AT_ACTION_POINT[17], 1)
NEXT_COMMAND_REUSABLE
KILL_CREATURE(PLAYER_GOOD, ANY_CREATURE, AT_ACTION_POINT[1], 4)

rem -----------------------------------------------------------------------------------------------------------------
rem kill the knight to get into the training garrden
IF(PLAYER_GOOD, KNIGHT == 0)
    CHANGE_SLAB_TYPE(15, 67, DIRT)
    CHANGE_SLAB_TYPE(38, 52, PRETTY_PATH)
ENDIF
rem bridge will aviable soon, also attacks of player1
IF_ACTION_POINT(4, PLAYER0)
    DISPLAY_INFORMATION(55, 4)
    SET_FLAG(PLAYER1, FLAG0, 1)
ENDIF

rem ----------------------------------------------"Secrets"----------------------------------------------------------
rem hidden temple will hide your imps
SET_TIMER(PLAYER0, TIMER1)
IF_SLAB_OWNER(8, 23, PLAYER0)
    CHANGE_SLAB_TYPE(9, 23, DIRT)
ENDIF
IF(PLAYER0, TIMER1 >= 800)
    IF_SLAB_OWNER(28, 82, PLAYER0)
        DISPLAY_INFORMATION_WITH_POS(54, 85, 247)
        NEXT_COMMAND_REUSABLE
        Set_FLAG(PLAYER1, FLAG3, 1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0, TIMER1)
    ENDIF
ENDIF
IF(PLAYER1, FLAG3 >= 1)
    NEXT_COMMAND_REUSABLE
    USE_SPELL_ON_CREATURE(PLAYER0, IMP, ANYWHERE, SPELL_INVISIBILITY, 9)
    NEXT_COMMAND_REUSABLE
    ADD_TO_FLAG(PLAYER1, FLAG3, 1)
ENDIF
IF(PLAYER1, FLAG3 == 30)
    NEXT_COMMAND_REUSABLE
    Set_FLAG(PLAYER1, FLAG3, 0)
ENDIF
rem without spellbook there is no armor spell
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_INSTANCE(VAMPIRE, 3, NULL, 3)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_INSTANCE(VAMPIRE, 8, NULL, 7)
rem hidden spellbook will give your vampires a armor spell
IF_AVAILABLE(PLAYER0, POWER_TIME_BOMB == 1)
    DISPLAY_INFORMATION(52,18)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_INSTANCE(VAMPIRE, 3, ARMOUR, 3)
    NEXT_COMMAND_REUSABLE
    SET_CREATURE_INSTANCE(VAMPIRE, 8, REBOUND, 7)
ENDIF

rem hidden chambers
IF_ACTION_POINT(9, PLAYER0)
    CHANGE_SLAB_TYPE(49, 75, DIRT)
ENDIF
IF_ACTION_POINT(10, PLAYER0)
    CHANGE_SLAB_TYPE(38, 75, DIRT)
ENDIF
IF_ACTION_POINT(11, PLAYER0)
    CHANGE_SLAB_TYPE(21, 64, DIRT)
ENDIF
IF_ACTION_POINT(12, PLAYER0)
    IF_SLAB_TYPE(23,57, HARD)
     CHANGE_SLAB_TYPE(23, 57, DIRT)
    ENDIF
ENDIF
rem hidden path
IF_ACTION_POINT(14, PLAYER0)
    CHANGE_SLAB_TYPE(13, 32, DIRT)
    CHANGE_SLAB_TYPE(12, 33, DIRT)
    CHANGE_SLAB_TYPE(12, 34, DIRT)
    CHANGE_SLAB_TYPE(11, 35, DIRT)
ENDIF

rem "Fog of War Setting"

rem Conceal the complete Map for Player

CONCEAL_MAP_RECT(PLAYER0, 127, 127, 248, 248, 1)
rem -39 2 done
REVEAL_MAP_RECT(PLAYER0, 191, 10, 5, 1)
CONCEAL_MAP_RECT(PLAYER0, 191, 10, 5, 1)
rem -39 2 done
REVEAL_MAP_RECT(PLAYER0, 136, 10, 1, 1)
CONCEAL_MAP_RECT(PLAYER0, 136, 10, 1, 1)
rem -39 2 done
REVEAL_MAP_RECT(PLAYER0, 202, 13, 35, 1)
CONCEAL_MAP_RECT(PLAYER0, 202, 13, 35, 1)
rem -39 2 done
REVEAL_MAP_RECT(PLAYER0, 137, 13, 35, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 13, 35, 1)
rem -39 1 done
REVEAL_MAP_RECT(PLAYER0, 89, 13, 15, 1)
CONCEAL_MAP_RECT(PLAYER0, 89, 13, 15, 1)
rem -38 2 done
REVEAL_MAP_RECT(PLAYER0, 170, 16, 111, 1)
CONCEAL_MAP_RECT(PLAYER0, 170, 16, 111, 1)
rem -38 1 done
REVEAL_MAP_RECT(PLAYER0, 89, 16, 28, 1)
CONCEAL_MAP_RECT(PLAYER0, 89, 16, 28, 1)
rem -37 done
REVEAL_MAP_RECT(PLAYER0, 150, 19, 156, 1)
CONCEAL_MAP_RECT(PLAYER0, 150, 19, 156, 1)
rem -36 done
REVEAL_MAP_RECT(PLAYER0, 149, 22, 168, 1)
CONCEAL_MAP_RECT(PLAYER0, 149, 22, 168, 1)
rem -35 done
REVEAL_MAP_RECT(PLAYER0, 143, 25, 180, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 25, 180, 1)
rem -34 done
REVEAL_MAP_RECT(PLAYER0, 143, 28, 186, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 28, 186, 1)
rem -33 done
REVEAL_MAP_RECT(PLAYER0, 140, 31, 190, 1)
CONCEAL_MAP_RECT(PLAYER0, 140, 31, 190, 1)
rem -32 done
REVEAL_MAP_RECT(PLAYER0, 140, 34, 193, 1)
CONCEAL_MAP_RECT(PLAYER0, 140, 34, 193, 1)
rem -33 done
REVEAL_MAP_RECT(PLAYER0, 140, 37, 193, 1)
CONCEAL_MAP_RECT(PLAYER0, 140, 37, 193, 1)
rem -32 done
REVEAL_MAP_RECT(PLAYER0, 143, 40, 193, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 40, 193, 1)
rem -31 done
REVEAL_MAP_RECT(PLAYER0, 143, 43, 193, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 43, 193, 1)
rem -30 done
REVEAL_MAP_RECT(PLAYER0, 143, 46, 190, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 46, 190, 1)
rem -29 done
REVEAL_MAP_RECT(PLAYER0, 144, 49, 190, 1)
CONCEAL_MAP_RECT(PLAYER0, 144, 49, 190, 1)
rem -28 done
REVEAL_MAP_RECT(PLAYER0, 144, 52, 187, 1)
CONCEAL_MAP_RECT(PLAYER0, 144, 52, 187, 1)
rem -27 done
REVEAL_MAP_RECT(PLAYER0, 144, 55, 185, 1)
CONCEAL_MAP_RECT(PLAYER0, 144, 55, 185, 1)
rem -27 done
REVEAL_MAP_RECT(PLAYER0, 144, 58, 181, 1)
CONCEAL_MAP_RECT(PLAYER0, 144, 58, 181, 1)
rem -26 done
REVEAL_MAP_RECT(PLAYER0, 146, 61, 174, 1)
CONCEAL_MAP_RECT(PLAYER0, 146, 61, 174, 1)
rem -25 done
REVEAL_MAP_RECT(PLAYER0, 146, 64, 172, 1)
CONCEAL_MAP_RECT(PLAYER0, 146, 64, 172, 1)
rem -24 done
REVEAL_MAP_RECT(PLAYER0, 149, 67, 166, 1)
CONCEAL_MAP_RECT(PLAYER0, 149, 67, 166, 1)
rem -23 done
REVEAL_MAP_RECT(PLAYER0, 149, 70, 166, 1)
CONCEAL_MAP_RECT(PLAYER0, 149, 70, 166, 1)
rem -22 done
REVEAL_MAP_RECT(PLAYER0, 149, 73, 166, 1)
CONCEAL_MAP_RECT(PLAYER0, 149, 73, 166, 1)
rem -21 done
REVEAL_MAP_RECT(PLAYER0, 149, 76, 169, 1)
CONCEAL_MAP_RECT(PLAYER0, 149, 76, 169, 1)
rem -20 done
REVEAL_MAP_RECT(PLAYER0, 149, 79, 169, 1)
CONCEAL_MAP_RECT(PLAYER0, 149, 79, 169, 1)
rem -19 done
REVEAL_MAP_RECT(PLAYER0, 146, 82, 172, 1)
CONCEAL_MAP_RECT(PLAYER0, 146, 82, 172, 1)
rem -18 done
REVEAL_MAP_RECT(PLAYER0, 143, 85, 177, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 85, 177, 1)
rem -17 done
REVEAL_MAP_RECT(PLAYER0, 140, 88, 178, 1)
CONCEAL_MAP_RECT(PLAYER0, 140, 88, 178, 1)
rem -16 done
REVEAL_MAP_RECT(PLAYER0, 135, 91, 185, 1)
CONCEAL_MAP_RECT(PLAYER0, 135, 91, 185, 1)
rem -15 done
REVEAL_MAP_RECT(PLAYER0, 130, 94, 178, 1)
CONCEAL_MAP_RECT(PLAYER0, 130, 94, 178, 1)
rem -14 done
REVEAL_MAP_RECT(PLAYER0, 127, 97, 174, 1)
CONCEAL_MAP_RECT(PLAYER0, 127, 97, 174, 1)
rem -13 done
REVEAL_MAP_RECT(PLAYER0, 124, 100, 174, 1)
CONCEAL_MAP_RECT(PLAYER0, 124, 100, 174, 1)
rem -12 done
REVEAL_MAP_RECT(PLAYER0, 121, 103, 174, 1)
CONCEAL_MAP_RECT(PLAYER0, 121, 103, 174, 1)
rem -11 done
REVEAL_MAP_RECT(PLAYER0, 117, 106, 174, 3)
CONCEAL_MAP_RECT(PLAYER0, 117, 106, 174, 3)
rem -10 done
REVEAL_MAP_RECT(PLAYER0, 117, 109, 171, 3)
CONCEAL_MAP_RECT(PLAYER0, 117, 109, 171, 3)
rem -9 done
REVEAL_MAP_RECT(PLAYER0, 114, 112, 169, 3)
CONCEAL_MAP_RECT(PLAYER0, 114, 112, 169, 3)
rem -8 done
REVEAL_MAP_RECT(PLAYER0, 113, 115, 165, 3)
CONCEAL_MAP_RECT(PLAYER0, 113, 115, 165, 3)
rem -7 done
REVEAL_MAP_RECT(PLAYER0, 113, 118, 165, 3)
CONCEAL_MAP_RECT(PLAYER0, 113, 118, 165, 3)
rem -6 done
REVEAL_MAP_RECT(PLAYER0, 119, 121, 175, 3)
CONCEAL_MAP_RECT(PLAYER0, 119, 121, 175, 3)
rem -5 done
REVEAL_MAP_RECT(PLAYER0, 122, 124, 180, 3)
CONCEAL_MAP_RECT(PLAYER0, 122, 124, 180, 3)
rem -4 done
REVEAL_MAP_RECT(PLAYER0, 122, 127, 183, 3)
CONCEAL_MAP_RECT(PLAYER0, 122, 127, 183, 3)
rem -3 done
REVEAL_MAP_RECT(PLAYER0, 125, 130, 191, 1)
CONCEAL_MAP_RECT(PLAYER0, 125, 130, 191, 1)
rem -2 done
REVEAL_MAP_RECT(PLAYER0, 127, 133, 192, 1)
CONCEAL_MAP_RECT(PLAYER0, 127, 133, 192, 1)
rem -1 done
REVEAL_MAP_RECT(PLAYER0, 127, 136, 194, 1)
CONCEAL_MAP_RECT(PLAYER0, 127, 136, 194, 1)
rem 0 done
REVEAL_MAP_RECT(PLAYER0, 125, 139, 197, 1)
CONCEAL_MAP_RECT(PLAYER0, 125, 139, 197, 1)
rem 1 done
REVEAL_MAP_RECT(PLAYER0, 129, 142, 195, 1)
CONCEAL_MAP_RECT(PLAYER0, 129, 142, 195, 1)
rem 2 done
REVEAL_MAP_RECT(PLAYER0, 130, 145, 195, 1)
CONCEAL_MAP_RECT(PLAYER0, 130, 145, 195, 1)
rem 3 done
REVEAL_MAP_RECT(PLAYER0, 132, 149, 195, 1)
CONCEAL_MAP_RECT(PLAYER0, 132, 149, 195, 1)
rem 4 done
REVEAL_MAP_RECT(PLAYER0, 132, 151, 193, 1)
CONCEAL_MAP_RECT(PLAYER0, 132, 151, 193, 1)
rem 5 done
REVEAL_MAP_RECT(PLAYER0, 134, 154, 191, 1)
CONCEAL_MAP_RECT(PLAYER0, 134, 154, 191, 1)
rem 6 done
REVEAL_MAP_RECT(PLAYER0, 135, 157, 187, 1)
CONCEAL_MAP_RECT(PLAYER0, 135, 157, 187, 1)
rem 7 done
REVEAL_MAP_RECT(PLAYER0, 137, 160, 184, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 160, 184, 1)
rem 8 done
REVEAL_MAP_RECT(PLAYER0, 138, 163, 178, 1)
CONCEAL_MAP_RECT(PLAYER0, 138, 163, 178, 1)
rem 9 done
REVEAL_MAP_RECT(PLAYER0, 139, 166, 175, 1)
CONCEAL_MAP_RECT(PLAYER0, 139, 166, 175, 1)
rem 10 done
REVEAL_MAP_RECT(PLAYER0, 143, 169, 166, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 169, 166, 1)
rem 11 done
REVEAL_MAP_RECT(PLAYER0, 143, 172, 169, 1)
CONCEAL_MAP_RECT(PLAYER0, 143, 172, 169, 1)
rem 12 done
REVEAL_MAP_RECT(PLAYER0, 140, 175, 142, 1)
CONCEAL_MAP_RECT(PLAYER0, 140, 175, 142, 1)
rem 13 done
REVEAL_MAP_RECT(PLAYER0, 137, 178, 151, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 178, 151, 1)
rem 14 done
REVEAL_MAP_RECT(PLAYER0, 137, 181, 154, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 181, 154, 1)
rem 15 done
REVEAL_MAP_RECT(PLAYER0, 137, 184, 154, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 184, 154, 1)
rem 16 done
REVEAL_MAP_RECT(PLAYER0, 137, 184, 158, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 184, 158, 1)
rem 17 done
REVEAL_MAP_RECT(PLAYER0, 137, 187, 158, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 187, 158, 1)
rem 18 done
REVEAL_MAP_RECT(PLAYER0, 137, 190, 158, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 190, 158, 1)
rem 19 done
REVEAL_MAP_RECT(PLAYER0, 139, 193, 157, 1)
CONCEAL_MAP_RECT(PLAYER0, 139, 193, 157, 1)
rem 20 done
REVEAL_MAP_RECT(PLAYER0, 139, 196, 151, 1)
CONCEAL_MAP_RECT(PLAYER0, 139, 196, 151, 1)
rem 21 done
REVEAL_MAP_RECT(PLAYER0, 139, 199, 147, 1)
CONCEAL_MAP_RECT(PLAYER0, 139, 199, 147, 1)
rem 22 done
REVEAL_MAP_RECT(PLAYER0, 139, 202, 138, 1)
CONCEAL_MAP_RECT(PLAYER0, 139, 202, 138, 1)
rem 23 done
REVEAL_MAP_RECT(PLAYER0, 140, 205, 137, 1)
CONCEAL_MAP_RECT(PLAYER0, 140, 205, 137, 1)
rem 24 done
REVEAL_MAP_RECT(PLAYER0, 139, 208, 134, 1)
CONCEAL_MAP_RECT(PLAYER0, 139, 208, 134, 1)
rem 25 done
REVEAL_MAP_RECT(PLAYER0, 137, 211, 125, 1)
CONCEAL_MAP_RECT(PLAYER0, 137, 211, 125, 1)
rem 26 done
REVEAL_MAP_RECT(PLAYER0, 131, 214, 119, 1)
CONCEAL_MAP_RECT(PLAYER0, 131, 214, 119, 1)
rem 27 done
REVEAL_MAP_RECT(PLAYER0, 125, 217, 114, 1)
CONCEAL_MAP_RECT(PLAYER0, 125, 217, 114, 1)
rem 28 done
REVEAL_MAP_RECT(PLAYER0, 127, 220, 107, 1)
CONCEAL_MAP_RECT(PLAYER0, 127, 220, 107, 1)
rem 29 done
REVEAL_MAP_RECT(PLAYER0, 130, 223, 96, 1)
CONCEAL_MAP_RECT(PLAYER0, 130, 223, 96, 1)
rem 30 done
REVEAL_MAP_RECT(PLAYER0, 123, 226, 76, 1)
CONCEAL_MAP_RECT(PLAYER0, 123, 226, 76, 1)
rem 31.1 done
REVEAL_MAP_RECT(PLAYER0, 96, 229, 22, 1)
CONCEAL_MAP_RECT(PLAYER0, 96, 229, 22, 1)
rem 31.2 done
REVEAL_MAP_RECT(PLAYER0, 134, 229, 29, 1)
CONCEAL_MAP_RECT(PLAYER0, 134, 229, 29, 1)
rem 32.1 done
REVEAL_MAP_RECT(PLAYER0, 94, 232, 9, 1)
CONCEAL_MAP_RECT(PLAYER0, 94, 232, 9, 1)
rem 32.2 done
REVEAL_MAP_RECT(PLAYER0, 132, 232, 18, 1)
CONCEAL_MAP_RECT(PLAYER0, 132, 232, 18, 1)

rem reveal Entrance
REVEAL_MAP_RECT(PLAYER0, 163, 139, 9, 9)
rem secret PRISON
REVEAL_MAP_RECT(PLAYER0, 138, 157, 44, 23)
CONCEAL_MAP_RECT(PLAYER0, 138, 157, 44, 23, 1)

rem reveal the first secret hero chamber
REVEAL_MAP_RECT(PLAYER0, 225, 178, 27, 6)

IF(PLAYER1, FLAG0 != 1)
    NEXT_COMMAND_REUSABLE
    CONCEAL_MAP_RECT(PLAYER0, 127, 88, 248, 48)
    NEXT_COMMAND_REUSABLE
    CONCEAL_MAP_RECT(PLAYER0, 133, 28, 248, 36)
    NEXT_COMMAND_REUSABLE
    CONCEAL_MAP_RECT(PLAYER0, 70, 55, 110, 18)
    NEXT_COMMAND_REUSABLE
    CONCEAL_MAP_RECT(PLAYER0, 187, 55, 90, 18)
ENDIF

rem reveal important parts of the map

IF(PLAYER0, BOX0_ACTIVATED == 1)
    REVEAL_MAP_RECT(PLAYER0, 59, 175, 22, 3)
    REVEAL_MAP_RECT(PLAYER0, 59, 172, 22, 3)
    REVEAL_MAP_RECT(PLAYER0, 59, 169, 22, 3)
    CHANGE_SLAB_TYPE(23, 57, PRETTY_PATH)
    CHANGE_SLAB_TYPE(73, 59, PRETTY_PATH)
    CHANGE_SLAB_TYPE(53, 78, PRETTY_PATH)
    CHANGE_SLAB_TYPE(38, 78, PRETTY_PATH)
    CHANGE_SLAB_TYPE(21, 67, PRETTY_PATH)
    CHANGE_SLAB_TYPE(21, 57, PRETTY_PATH)
    SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, MaximumSize, 1)
    SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, LightIntensity, 0)
    SET_OBJECT_CONFIGURATION(BARREL, MaximumSize, 1)
    SET_OBJECT_CONFIGURATION(BARREL, LightIntensity, 0)
    CREATE_EFFECT(14, 3)
    CREATE_EFFECTS_LINE(3, 27, 0, 6, 5, -10)
    CREATE_EFFECTS_LINE(3, 23, 0, 6, 5, -10)
    CREATE_EFFECTS_LINE(3, 9, 0, 6, 5, -10)
    CREATE_EFFECTS_LINE(3, 10, 0, 6, 5, -10)
    CREATE_EFFECTS_LINE(3, 29, 0, 6, 5, -10)
    CREATE_EFFECTS_LINE(3, 12, 0, 6, 5, -10)
    CREATE_EFFECTS_LINE(3, 7, 0, 6, 5, -10)
    SET_TRAP_CONFIGURATION(MONSTEREYE, ActivationType, 0)
ENDIF

IF(PLAYER0, BOX0_ACTIVATED == 0)
    IF_ACTION_POINT(23, PLAYER0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 23, POWER_CAVE_IN, 1, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(23)
    ENDIF
    IF_ACTION_POINT(24, PLAYER0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 24, POWER_CAVE_IN, 1, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(24)
    ENDIF
    IF_ACTION_POINT(28, PLAYER0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 28, POWER_CAVE_IN, 1, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(28)
    ENDIF
    IF_ACTION_POINT(29, PLAYER0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 29, POWER_CAVE_IN, 1, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(29)
    ENDIF
    IF_ACTION_POINT(30, PLAYER0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_AT_LOCATION(PLAYER2, 30, POWER_CAVE_IN, 1, 1)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(30)
    ENDIF
ENDIF

rem Rookie garden
IF(PLAYER0, TOTAL_CREATURES >= 5)
    If(PLAYER0, GAME_TURN >= 15000)
         REVEAL_MAP_RECT(PLAYER0, 37, 217, 38, 32)
         PLAY_MESSAGE(PLAYER0,SOUND,777)
         DISPLAY_OBJECTIVE(48,2)
    ENDIF
ENDIF
rem Hero Entrance
IF_SLAB_OWNER(46, 60, PLAYER0)
    SET_FLAG(PLAYER0, FLAG7, 1)
ENDIF
rem Saftysystem
IF_SLAB_OWNER(46, 60, PLAYER0)
    SET_FLAG(PLAYER0, FLAG7, 1)
ENDIF
IF_SLAB_OWNER(23, 57, PLAYER0)
    SET_FLAG(PLAYER0, FLAG7, 1)
ENDIF
IF_SLAB_OWNER(41, 64, PLAYER0)
    SET_FLAG(PLAYER0, FLAG7, 1)
ENDIF
IF_SLAB_OWNER(36, 54, PLAYER0)
    SET_FLAG(PLAYER0, FLAG7, 1)
ENDIF
IF(PLAYER0, FLAG7 == 1)
    REVEAL_MAP_RECT(PLAYER0, 121, 178, 14, 14)
    DISPLAY_INFORMATION(49,3)
    PLAY_MESSAGE(PLAYER0,SOUND,785)
ENDIF

SET_BOX_TOOLTIP_ID(0,47)

SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM, AnimationID, CHAINED_CRYSTAL)
SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM, AnimationSpeed, 125)
SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM, MaximumSize, 375)
SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM, LightUnaffected, 1)
SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM, LightIntensity, 60)
SET_OBJECT_CONFIGURATION(SPECBOX_CUSTOM, LightRadius, 3)

SET_OBJECT_CONFIGURATION(SPELLBOOK_TBMB, AnimationID, 777)

SET_OBJECT_CONFIGURATION(DUMMY1, AnimationID, 800)
SET_OBJECT_CONFIGURATION(DUMMY1, Genre, DECORATION)
SET_OBJECT_CONFIGURATION(DUMMY1, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(DUMMY1, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(DUMMY1, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(DUMMY1, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(DUMMY1, LightRadius, 5)
SET_OBJECT_CONFIGURATION(DUMMY1, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(DUMMY1, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(DUMMY2, AnimationID, 800)
SET_OBJECT_CONFIGURATION(DUMMY2, Genre, DECORATION)
SET_OBJECT_CONFIGURATION(DUMMY2, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(DUMMY2, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(DUMMY2, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(DUMMY2, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(DUMMY2, LightRadius, 5)
SET_OBJECT_CONFIGURATION(DUMMY2, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(DUMMY2, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(DUMMY3, AnimationID, 800)
SET_OBJECT_CONFIGURATION(DUMMY3, Genre, DECORATION)
SET_OBJECT_CONFIGURATION(DUMMY3, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(DUMMY3, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(DUMMY3, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(DUMMY3, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(DUMMY3, LightRadius, 5)
SET_OBJECT_CONFIGURATION(DUMMY3, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(DUMMY3, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(POTION_BLUE, AnimationID, 800)
SET_OBJECT_CONFIGURATION(POTION_BLUE, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(POTION_BLUE, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(POTION_BLUE, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(POTION_BLUE, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(POTION_BLUE, LightRadius, 5)
SET_OBJECT_CONFIGURATION(POTION_BLUE, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(POTION_BLUE, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(POTION_PURPLE, AnimationID, 800)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, LightRadius, 5)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(POTION_PURPLE, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(POTION_GREEN, AnimationID, 800)
SET_OBJECT_CONFIGURATION(POTION_GREEN, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(POTION_GREEN, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(POTION_GREEN, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(POTION_GREEN, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(POTION_GREEN, LightRadius, 5)
SET_OBJECT_CONFIGURATION(POTION_GREEN, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(POTION_GREEN, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(BARREL, AnimationID, 800)
SET_OBJECT_CONFIGURATION(BARREL, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(BARREL, MaximumSize, 100)
SET_OBJECT_CONFIGURATION(BARREL, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(BARREL, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(BARREL, LightRadius, 5)
SET_OBJECT_CONFIGURATION(BARREL, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(BARREL, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, AnimationID, 800)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, AnimationSpeed, 256)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, MaximumSize, 300)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, LightIntensity, 40)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, LightUnaffected, 0)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, LightRadius, 5)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, FallAcceleration, 0)
SET_OBJECT_CONFIGURATION(GUARDFLAG_YELLOW, Properties, DESTROYED_ON_ROOM_PLACE)

SET_OBJECT_CONFIGURATION(DUMMY6, AnimationID, 138)
SET_OBJECT_CONFIGURATION(DUMMY6, AnimationSpeed, 125)
SET_OBJECT_CONFIGURATION(DUMMY6, MaximumSize, 450)
SET_OBJECT_CONFIGURATION(DUMMY6, Properties, DESTROYED_ON_ROOM_PLACE)

SET_TIMER(PLAYER0, TIMER7)
IF(PLAYER0, TIMER7 == 2)
    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 35, 68)
    rem linksoben aussen

    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 39, 72)
    rem rechtsunten aussen
ENDIF
IF(PLAYER0, TIMER7 == 3)
    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 36, 67)
    rem oben links

    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 34, 71)
    rem links unten
ENDIF
IF(PLAYER0, TIMER7 == 4)
    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 40, 71)
    rem rechts unten

    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 38, 73)
    rem unten rechts

    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 34, 69)
    rem links oben

    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 39, 68)
    rem rechtoben aussen
ENDIF
IF(PLAYER0, TIMER7 == 5)
    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 40, 69)
    rem rechts oben

    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 35, 72)
    rem linksunten aussen
ENDIF
IF(PLAYER0, TIMER7 == 7)
    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 36, 73)
    rem unten links
    NEXT_COMMAND_REUSABLE
    CREATE_EFFECT_AT_POS(-56, 38, 67)
    rem oben rechts
    NEXT_COMMAND_REUSABLE
    SET_TIMER(PLAYER0, TIMER7)
ENDIF

IF(PLAYER1, DUNGEON_DESTROYED == 1)
    WIN_GAME
ENDIF