function CreateChapter(f)
    local characters = {
        f.Character("Sherlock", "s01c00_new_character_Sherlock_name"),
        f.Character("Swifty", "s01c00_new_character_Swifty_name")
    }
    local locations = {
        f.Location("0008_AbbeyDungeon", {"Scenes/Locations/s01c00_new/0008_AbbeyDungeon"})
    }
    local points = {}
    local notifies = {
        f.ReturningNotificationsKeyPoint(0, {
            f.ReturningNotification("s01c00_keyPoint_0_notification_0_title",
                "s01c00_keyPoint_0_notification_0_desc"),
            f.ReturningNotification("s01c00_keyPoint_0_notification_1_title",
                "s01c00_keyPoint_0_notification_1_desc"),
            f.ReturningNotification("s01c00_keyPoint_0_notification_2_title",
                "s01c00_keyPoint_0_notification_2_desc"),
            f.ReturningNotification("s01c00_keyPoint_0_notification_3_title",
                "s01c00_keyPoint_0_notification_3_desc"),
            f.ReturningNotification("s01c00_keyPoint_0_notification_4_title",
                "s01c00_keyPoint_0_notification_4_desc")
        })
    };

    return f.Chapter(1, 0, "s01c00_new_chapter_title", characters, locations, points, null, notifies)
end

function CreateInvestigation(f)
    local missions = {
        f.Mission(1, "s01c00_new_mission_1", {0}, {f.SimpleAction()}, 1),
        f.Mission(2, "s01c00_new_mission_2", {1}, {f.SimpleAction()}, 1),
        f.Mission(3, "s01c00_new_mission_3", {2}, {f.SimpleAction()}, 1),
        f.Mission(4, "s01c00_new_mission_4", {3}, {f.SimpleAction()}, 1),
        f.Mission(5, "s01c00_new_mission_5", {4}, {f.SimpleAction()}, 1)
    }

    return f.Investigation(4, missions)
end

function PrepareLocation()
    SetupLocation(function()
        SetupAnim('Sherlock', 'LieOnFloor')
        ApplyAnim('Sherlock')
    end)
    ChangeLocation('0008_AbbeyDungeon')
end

function StartInvestigation()
    ShowLocationCaption('s01c00_new_location_0_caption', 's01c00_new_location_0_time')
    ShowChapterTitle()
    SetupAnim('Sherlock', 'SitOnFloor')
    ApplyAnim('Sherlock')
    Play('Sherlock', 'GetUpSit')
    StartDialog()
    Parallel(function()
        SetupAnim('Sherlock', 'HoldingHeadSit', {notLoop=true})
        Say('Sherlock', 'Sufferingly', 's01c00_new_Sherlock_start_investigation_phrase_0')
    end)
    EndDialog()
    ResetAnim('Sherlock')
    SetState('Sherlock', 'Idle')
    Delay(1.2)
    Walk('Sherlock', 'Sherlock_point_1_0_0')
    Play('Sherlock', 'Rand/Clean')
    Play('Sherlock', 'LookAround')
    
    StartDialog()
    Say('Sherlock', 'Bewildered', 's01c00_new_Sherlock_start_investigation_phrase_1')
    EndDialog()
    
    Play('Sherlock', 'BackAndForth')
    
    StartDialog()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c00_new_Sherlock_start_investigation_phrase_2')
    Say('Sherlock', 'Bewildered', 's01c00_new_Sherlock_start_investigation_phrase_3')
    Say('Sherlock', 'Resolute', 's01c00_new_Sherlock_start_investigation_phrase_4')
    SetupAnim('Sherlock', 'HandsToBody', {notLoop=true})
    Say('Sherlock', 'Concentrated', 's01c00_new_Sherlock_start_investigation_phrase_5')
    EndDialog()
    
    PlayLevel(true)
    Play('Sherlock', 'Enlightened')
        
    StartDialog()
    --ActionCompleted()
    SetupAnim('Sherlock', 'TalkToCameraMirror', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c00_new_Sherlock_start_investigation_phrase_6')
    EndDialog()
end

-- Осмотреть решетку
function ApplyMission1Action0()
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_1_0_0')
        CameraTo('camera_point_1_0_0', 1, 1)
    end)
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_1_0_1')
        CameraTo('camera_point_1_0_1', 0.3, 1)
    end)
    Play('Sherlock', 'InspectGrille')
    
    StartDialog()
    Say('Sherlock', 'Concentrated', 's01c00_new_Sherlock_mission_1_0_phrase_0')
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c00_new_Sherlock_mission_1_0_phrase_1')
    EndDialog()
    
    Walk('Sherlock', 'Sherlock_point_1_0_2', 0.75)
    Play('Sherlock', 'EvaluativeView')
    
    StartDialog()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c00_new_Sherlock_mission_1_0_phrase_2')
    SetupAnim('Sherlock', 'GetUpset', {notLoop=true})
    Say('Sherlock', 'Upset', 's01c00_new_Sherlock_mission_1_0_phrase_3')
    EndDialog()
    
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_1_0_3')
        CameraTo('camera_point_1_0_0', 0.5, 1)
    end)
    
    StartDialog()
    ActionCompleted()
    SetupAnim('Sherlock', 'Enlightened', {notLoop=true})
    Say('Sherlock', 'Resolute', 's01c00_new_Sherlock_mission_1_0_phrase_4')
    EndDialog()
end

-- Выбраться из камеры
function ApplyMission2Action0()
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_2_0_0')
        CameraTo('camera_point_2_0_0', 1, 1)
    end)
    
    StartDialog()
    Say('Sherlock', 'Concentrated', 's01c00_new_Sherlock_mission_2_0_phrase_0')
    EndDialog()
    
    Play('Sherlock', 'LookAround')
    Walk('Sherlock', 'Sherlock_point_2_0_1', 0.75)
    
    StartDialog()
    Say('Sherlock', 'Joyous', 's01c00_new_Sherlock_mission_2_0_phrase_1')
    EndDialog()
    
    Play('Trash', 'CleanUp')
    SetActive('TrashIso', false)
    
    StartDialog()
    Say('Sherlock', 'Interested', 's01c00_new_Sherlock_mission_2_0_phrase_2')
    SetupAnim('Sherlock', 'Enlightened', {notLoop=true})
    Say('Sherlock', 'Confidently', 's01c00_new_Sherlock_mission_2_0_phrase_3')
    EndDialog()
    Walk('Sherlock', 'Sherlock_point_2_0_2', 0.75)
    Parallel(function()
        Play('Sherlock', 'PickUpPlank')
        Sequence(function()
            Delay(2.5)
            SetActive('Beam', false)
            SetActive('BeamInHand', true)
        end)
    end)
    SetupAnim('Sherlock', 'WalkWithPlank')
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_2_0_3')
        CameraTo('camera_point_2_0_1', 0.5, 1)
    end)
    SetupAnim('Sherlock', 'IdleWithPlank')
    ApplyAnim('Sherlock')
    
    
    Play('Sherlock', 'InsertPlank')
    SetActive('Beam_2', true)
    SetActive('BeamInHand', false)
    Delay(1)
    
    StartDialog()
    Say('Sherlock', 'Confidently', 's01c00_new_Sherlock_mission_2_0_phrase_4')
    EndDialog()
    
    Parallel(function()
        Sequence(function()
            Play('Sherlock', 'PushPlankDown')
            ResetAnim('Sherlock')
            SetActive('Beam_2', false)
            SetActive('BeamInHand', true)
        end)
        Parallel(function()
            Play('Grille', 'Break')
            Sequence(function()
                Delay(2.2)
                SetActive('BeamInHand', false)
            end)
        end)
    end)
    
    SetActive("Hinges", true)
    SetActive("GrilleСup", true)
    SetState('Grille', 'Break')
    SetState('GrilleIso', 'Break')
    MoveTo('Grille', 'Grille_point_2_0_0', 0)

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_2_0_4')
        CameraTo('camera_point_2_0_2', 1, 1)
    end)
    
    StartDialog()
    SetupAnim('Sherlock', 'WipesSweat', {notLoop=true})
    Say('Sherlock', 'spec:WipesForeheadSweat', 's01c00_new_Sherlock_mission_2_0_phrase_5')
    SetupAnim('Sherlock', 'Happy', {notLoop=true})
    Say('Sherlock', 'Smile', 's01c00_new_Sherlock_mission_2_0_phrase_6')
    ActionCompleted()
    Say('Sherlock', 'Confidently', 's01c00_new_Sherlock_mission_2_0_phrase_7')
    EndDialog()
end

-- Изучить темницу
function ApplyMission3Action0()
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_3_0_2')
        CameraTo('camera_point_3_0_1', 0.3, 1)
    end)
    Play('Sherlock', 'EvaluativeView')
    Play('Sherlock', 'ListenFor')
    Walk('Sherlock', 'Sherlock_point_3_0_4')
    
    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c00_new_Sherlock_mission_3_0_phrase_0')
    EndDialog()
    
    Walk('Sherlock', 'Sherlock_point_3_0_2')
    Play('Sherlock', 'TryDoor')
    Walk('Sherlock', 'Sherlock_point_3_0_4')
    
    StartDialog()
    SetupAnim('Sherlock', 'InConfusion', {notLoop=true})
    Say('Sherlock', 'Upset', 's01c00_new_Sherlock_mission_3_0_phrase_1')
    EndDialog()
    Play('Sherlock', 'LookAround')
    StartDialog()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Interested', 's01c00_new_Sherlock_mission_3_0_phrase_2')
    EndDialog()
    
    Walk('Sherlock', 'Sherlock_point_3_0_5')
    Play('Sherlock', 'EvaluativeView')
    Parallel(function()
        Play('Sherlock', 'PushShield')
        Sequence(function()
            Delay(.4)
            Play('Shield', 'Open')
        end)
    end)
    Play('Sherlock', 'HappySurprised')
    Walk('Sherlock', 'Sherlock_point_3_0_6')
    
    StartDialog()
    SetupAnim('Sherlock', 'Enlightened', {notLoop=true})
    Say('Sherlock', 'Surprised', 's01c00_new_Sherlock_mission_3_0_phrase_3')
    EndDialog()
    
    Walk('Sherlock', 'Sherlock_point_3_0_5')
    Play('Sherlock', 'ExploreMechanism')
    Walk('Sherlock', 'Sherlock_point_3_0_6')
    
    StartDialog()
    SetupAnim('Sherlock', 'ShakeHead', {notLoop=true})
    Say('Sherlock', 'Serious', 's01c00_new_Sherlock_mission_3_0_phrase_4')
    Say('Sherlock', 'Confidently', 's01c00_new_Sherlock_mission_3_0_phrase_5')
    EndDialog()
    Walk('Sherlock', 'Sherlock_point_3_0_6_1')
    StartDialog()
    Say('Sherlock', 'Interested', 's01c00_new_Sherlock_mission_3_0_phrase_6')
    EndDialog()
        
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_3_0_7')
        CameraTo('camera_point_3_0_2', 0.3, 1)
    end)
    Play('Sherlock', 'LookAround')
    Walk('Sherlock', 'Sherlock_point_3_0_8', 0.75)
    Play('Sherlock', 'EvaluativeView')
    -- Walk('Sherlock', 'Sherlock_point_3_0_9', 0.75)
    -- Play('Sherlock', 'EvaluativeView')
    Walk('Sherlock', 'Sherlock_point_3_0_10')
    Parallel(function()
        Play('Sherlock', 'LoseFooting')
        Sequence(function()
            Delay(.07)
            Play('Digging', 'Crackle')
        end)
    end)
    MoveTo('Sherlock', 'Sherlock_point_3_0_11', 0)
    Walk('Sherlock', 'Sherlock_point_3_0_12')
    
    StartDialog()
    Say('Sherlock', 'Painfully', 's01c00_new_Sherlock_mission_3_0_phrase_7')
    EndDialog()
    
    Walk('Sherlock', 'Sherlock_point_3_0_14')
    Play('Sherlock', 'ExploreHoleInFloor')
    Play('Sherlock', 'Happy')
    
    StartDialog()
    SetupAnim('Sherlock', 'Surprised', {notLoop=true})
    Say('Sherlock', 'Surprised', 's01c00_new_Sherlock_mission_3_0_phrase_8')
    Say('Sherlock', 'Crafty', 's01c00_new_Sherlock_mission_3_0_phrase_9')
    ActionCompleted()
    Say('Sherlock', 'Joyous', 's01c00_new_Sherlock_mission_3_0_phrase_10')
    EndDialog()
end

-- Разобрать завал
function ApplyMission4Action0()
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_4_0_0')
        CameraTo('camera_point_4_0_0', .7, 1)
    end)
    Play('Digging', 'CleanUp')
    Play('Sherlock', 'ExploreHoleInFloor')
    Play('Sherlock', 'Thinking')
    SetActive('DiggingIso', false)
    StartDialog()
    SetupAnim('Sherlock', 'GetUpset', {notLoop=true})
    Say('Sherlock', 'Upset', 's01c00_new_Sherlock_mission_4_0_phrase_0')
    SetupAnim('Sherlock', 'ExploreHoleInFloor', {notLoop=true})
    Say('Sherlock', 'Interested', 's01c00_new_Sherlock_mission_4_0_phrase_1',
        nil, nil, nil, nil, true, false) -- isShowCloud = false можно будет убрать как только облачко начнет следовать за головой
    EndDialog()
    
    Walk('Sherlock', 'Sherlock_point_4_0_1')
    Parallel(function()
        Play('Sherlock', 'TakeSpoonFromHole')
        Sequence(function()
            Delay(2.6)
            SetActive('Spoon', true)
        end)
    end)
    --Walk('Sherlock', 'Sherlock_point_4_0_2')
    StartDialog()
    SetupAnim('Sherlock', 'IdleWithSpoon')
    Say('Sherlock', 'spec:JoyfulWithSpoon', 's01c00_new_Sherlock_mission_4_0_phrase_2')
    Parallel(function()
        Play('Sherlock', 'SpoonToPocket')
        Sequence(function()
            Delay(0.7)
            SetActive('Spoon', false)
        end)
    end)
    Say('Sherlock', 'Confidently', 's01c00_new_Sherlock_mission_4_0_phrase_3')
    EndDialog()
    
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_4_0_3')
        CameraTo('camera_point_4_0_1', .5, 1)
    end)
    Parallel(function()
        Play('Sherlock', 'BreakInWithSpoon')
        Sequence(function()
            Delay(1.8)
            SetActive('SpoonLeft', true)
        end)
    end)

    Play('Shield', 'GearsRotation')
    
    Parallel(function()
        Play('Sherlock', 'Balancing')
        Sequence(function()
            ShakeCamera(1, 0.1, 35, false)
            CameraShakeTo('camera_point_4_0_2', 1, 1.4, 0.1, 35)
            Parallel(function()
                ShakeCamera(3.5, 0.1, 35)
                Play('SecretDoorWall', 'WallShake')
                SetActive('SecretWallHiding', false)
                Play('SecretDoor', 'DoorMove')
                SetActive('SpoonLeft', false)
            end)
        end)
    end)
    
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_4_0_4')
        CameraTo('camera_point_4_0_1', 1, 1)
    end)
    
    StartDialog()
    ActionCompleted()
    SetupAnim('Sherlock', 'HappySurprised', {notLoop=true})
    Say('Sherlock', 'Joyous', 's01c00_new_Sherlock_mission_4_0_phrase_4')
    EndDialog()
end

-- На свободу!
function ApplyMission5Action0()
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_5_0_1')
        CameraTo('camera_point_5_0_1', 0.4, 1)
    end)
    
    Play('Sherlock', 'InspectCage')
    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c00_new_Sherlock_mission_5_0_phrase_0')
    ActionCompleted()
    Say('Sherlock', 'Resolute', 's01c00_new_Sherlock_mission_5_0_phrase_1')
    EndDialog()
    
    Parallel(function()
        Sequence(function()
            SetState('Sherlock', 'Sitting')
            Play('Sherlock', 'EnterSecretPassage')
            SetActive('Sherlock', false)
        end)
        Sequence(function()
            Delay(1)
            SetActive('SecretDoorWall', false)
            SetActive('SecretDoorWallOpened', true)
            MoveTo('Sherlock', 'Sherlock_point_5_0_2', 1)
        end)
    end)
    InvestigationCompleted()
end

function ApplyMissionActionBeforeNextChapter()
end


function CreateInteractiveEnvironment(f)
    return f.InteractiveEnvironment(
    {
        CreateInteractiveLocation(f, '0008_AbbeyDungeon', {
            f.InteractiveObject('SherlockIso', {
                SherlockSpeech(f, {
                    {'s01c00_lio_0000_sherlock_0'},
                    {'s01c00_lio_0000_sherlock_1'},
                    {'s01c00_lio_0000_sherlock_2'},
                    {'s01c00_lio_0000_sherlock_3'},
                    {'s01c00_lio_0000_sherlock_4'},
                    {'s01c00_lio_0000_sherlock_5'},
                    {'s01c00_lio_0000_sherlock_6'}}, true),
                SherlockSpeech(f, {
                    {'s01c00_lio_0000_sherlock_7'},
                    {'s01c00_lio_0000_sherlock_8_0', 's01c00_lio_0000_sherlock_8_1'}},
                    true,
                    f.InvestigationRestriction(2, '<=')),
                SherlockSpeech(f, {
                    {'s01c00_lio_0000_sherlock_9'},
                    {'s01c00_lio_0000_sherlock_10'},
                    {'s01c00_lio_0000_sherlock_11'}},
                    true,
                    f.InvestigationRestriction(3, '=')),
                SherlockSpeech(f, {
                    {'s01c00_lio_0000_sherlock_12'},
                    {'s01c00_lio_0000_sherlock_13_0', 's01c00_lio_0000_sherlock_13_1'}},
                    true,
                    f.InvestigationRestriction(4, '>'))
            }),
            f.InteractiveObject('bucket', {
                SherlockWalkAndSpeech(f, 'io_decoration_bucket_point', {
                    {'s01c00_lio_0000_decoration_bucket_0'},
                    {'s01c00_lio_0000_decoration_bucket_1'},
                    {'s01c00_lio_0000_decoration_bucket_2'}})
            }),
            f.InteractiveObject('weight_With_Chain', {
                SherlockWalkAndSpeech(f, 'io_decoration_weight_with_chain_point', {
                    {'s01c00_lio_0000_decoration_weight_with_chain_0'},
                    {'s01c00_lio_0000_decoration_weight_with_chain_1'},
                    {'s01c00_lio_0000_decoration_weight_with_chain_2'}})
            }),
            f.InteractiveObject('TrashIso', {
                SherlockWalkAndSpeech(f, 'io_decoration_trash_point', {
                    {'s01c00_lio_0000_decoration_trash_0'},
                    {'s01c00_lio_0000_decoration_trash_1'},
                    {'s01c00_lio_0000_decoration_trash_2'}},
                    f.InvestigationRestriction(2, '<='))
            }),
            f.InteractiveObject('laticeIso', {
                SherlockWalkAndSpeech(f, 'io_decoration_left_lattice_1_point', {
                    {'s01c00_lio_0000_decoration_lattice_1_0'},
                    {'s01c00_lio_0000_decoration_lattice_1_1'},
                    {'s01c00_lio_0000_decoration_lattice_1_2'}},
                        f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('lattice1Iso', {
                SherlockWalkAndSpeech(f, 'io_decoration_right_lattice_1_point', {
                    {'s01c00_lio_0000_decoration_lattice_1_0'},
                    {'s01c00_lio_0000_decoration_lattice_1_1'},
                    {'s01c00_lio_0000_decoration_lattice_1_2'}},
                        f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('GrilleIso', {
                SherlockWalkAndSpeech(f, 'io_decoration_grille_point', {
                    {'s01c00_lio_0000_decoration_lattice_2_0'},
                    {'s01c00_lio_0000_decoration_lattice_2_1'},
                    {'s01c00_lio_0000_decoration_lattice_2_2'}},
                    f.InvestigationRestriction(2, '<='))
            }),
            f.InteractiveObject('barrel', {
                SherlockWalkAndSpeech(f,  'io_decoration_barrel_point', {
                    {'s01c00_lio_0000_decoration_barrel_0_0',
                     's01c00_lio_0000_decoration_barrel_0_1'},
                    {'s01c00_lio_0000_decoration_barrel_1'},
                    {'s01c00_lio_0000_decoration_barrel_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('ShieldIso', {
                SherlockWalkAndSpeech(f, 'io_decoration_shield_point', {
                    {'s01c00_lio_0000_decoration_shield_0'},
                    {'s01c00_lio_0000_decoration_shield_1'},
                    {'s01c00_lio_0000_decoration_shield_2'}},
                    f.InvestigationRestriction(3, '=')),
                SherlockWalkAndSpeech(f, 'io_decoration_shield_point', {
                    {'s01c00_lio_0000_decoration_shield_3'},
                    {'s01c00_lio_0000_decoration_shield_4'},
                    {'s01c00_lio_0000_decoration_shield_5'}},
                    f.InvestigationRestriction(3, '>'))
            }),
            f.InteractiveObject('Torch_1', {
                SherlockWalkAndSpeech(f, 'io_decoration_torch_1_point', {
                    {'s01c00_lio_0000_decoration_torch_0'},
                    {'s01c00_lio_0000_decoration_torch_1'},
                    {'s01c00_lio_0000_decoration_torch_2'}})
            }),
            f.InteractiveObject('Torch_2Iso', {
                SherlockWalkAndSpeech(f, 'io_decoration_torch_2_point', {
                    {'s01c00_lio_0000_decoration_torch_0'},
                    {'s01c00_lio_0000_decoration_torch_1'},
                    {'s01c00_lio_0000_decoration_torch_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('Torch_3', {
                SherlockWalkAndSpeech(f, 'io_decoration_torch_3_point', {
                    {'s01c00_lio_0000_decoration_torch_0'},
                    {'s01c00_lio_0000_decoration_torch_1'},
                    {'s01c00_lio_0000_decoration_torch_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('Torch_4', {
                SherlockWalkAndSpeech(f, 'io_decoration_torch_4_point', {
                    {'s01c00_lio_0000_decoration_torch_0'},
                    {'s01c00_lio_0000_decoration_torch_1'},
                    {'s01c00_lio_0000_decoration_torch_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('door', {
                SherlockWalkAndSpeech(f, 'io_decoration_door_point', {
                    {'s01c00_lio_0000_decoration_door_0'},
                    {'s01c00_lio_0000_decoration_door_1'},
                    {'s01c00_lio_0000_decoration_door_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('chain', {
                SherlockWalkAndSpeech(f, 'io_decoration_chain_point', {
                    {'s01c00_lio_0000_decoration_chain_0'},
                    {'s01c00_lio_0000_decoration_chain_1'},
                    {'s01c00_lio_0000_decoration_chain_2'}})
            }),
            f.InteractiveObject('shackles', {
                SherlockWalkAndSpeech(f, 'io_decoration_shackles_point', {
                    {'s01c00_lio_0000_decoration_chain_0'},
                    {'s01c00_lio_0000_decoration_chain_1'},
                    {'s01c00_lio_0000_decoration_chain_2'}})
            }),
            f.InteractiveObject('shackles_2', {
                SherlockWalkAndSpeech(f, 'io_decoration_shackles_2_point', {
                    {'s01c00_lio_0000_decoration_chain_0'},
                    {'s01c00_lio_0000_decoration_chain_1'},
                    {'s01c00_lio_0000_decoration_chain_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('shackles_3', {
                SherlockWalkAndSpeech(f, 'io_decoration_shackles_3_point', {
                    {'s01c00_lio_0000_decoration_chain_0'},
                    {'s01c00_lio_0000_decoration_chain_1'},
                    {'s01c00_lio_0000_decoration_chain_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('shackles_4', {
                SherlockWalkAndSpeech(f, 'io_decoration_shackles_4_point', {
                    {'s01c00_lio_0000_decoration_chain_0'},
                    {'s01c00_lio_0000_decoration_chain_1'},
                    {'s01c00_lio_0000_decoration_chain_2'}},
                    f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('DiggingIso', {
                SherlockWalkAndSpeech(f, 'io_decorative_digging_point', {
                    {'s01c00_lio_0000_decoration_digging_0'},
                    {'s01c00_lio_0000_decoration_digging_1'},
                    {'s01c00_lio_0000_decoration_digging_2'}},
                    UnionAll(f,
                        f.InvestigationRestriction(3, '>='),
                        f.InvestigationRestriction(4, '<=')
                    ))
            }),
            f.InteractiveObject('Window_1', {
                SherlockWalkAndSpeech(f, 'io_decoration_window_1_point', {
                    {'s01c00_lio_0000_decoration_window_0'},
                    {'s01c00_lio_0000_decoration_window_1'},
                    {'s01c00_lio_0000_decoration_window_2'}})
            }),
            f.InteractiveObject('Window_2', {
                SherlockWalkAndSpeech(f, 'io_decoration_window_2_point', {
                    {'s01c00_lio_0000_decoration_window_0'},
                    {'s01c00_lio_0000_decoration_window_1'},
                    {'s01c00_lio_0000_decoration_window_2'}},
                        f.InvestigationRestriction(2, '>'))
            }),
            f.InteractiveObject('bench', {
                SherlockWalkAndSpeech(f, 'io_decoration_bench_point', {
                    {'s02c00_lio_0000_decoration_bench_0'},
                    {'s02c00_lio_0000_decoration_bench_1'},
                    {'s02c00_lio_0000_decoration_bench_2'}})
            }),
            f.InteractiveObject('Spider2', {
                SherlockWalkAndSpeech(f, 'io_decoration_spider_2_point', {
                    {'s02c00_lio_0000_decoration_spider_2_0'},
                    {'s02c00_lio_0000_decoration_spider_2_1'},
                    {'s02c00_lio_0000_decoration_spider_2_2'}})
            })
        })
    })
end