// Use this for initialization
    void Start()
    {
        _dialogueComponents = GameObject.FindGameObjectWithTag("LevelManager").GetComponent <DialogueCompanyComponent>();

        _inventory = GameObject.FindGameObjectWithTag("Inventory").GetComponent <Inventory>();


        _cuttingBoard = GameObject.Find("CuttingBoard").GetComponent <CuttingBoard>();
        _meatGrinder  = GameObject.Find("MeatGrinder").GetComponent <MeatGrinder>();
        _grater       = GameObject.Find("Grater").GetComponent <Grater>();
        _pan          = GameObject.Find("Pan").GetComponent <Pan>();
        _stove        = GameObject.FindGameObjectWithTag("Stove").GetComponent <Stove>();

        _boxWithMeat  = GameObject.Find("BoxWithMeat").GetComponent <Repository>();
        _boxWithBread = GameObject.Find("BoxWithBread").GetComponent <Repository>();

        _stage = 0;

        _dialogues = new Dictionary <Stage, DialogueInfo>
        {
            {
                Stage.Begining, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan2",

                    NameText     = "Сестренка",
                    DialogueText =
                        "Доброе утро, братик! С сегодняшнего дня эта закусочная твоя, надеюсь ты сможешь о ней позаботиться. Давай попробуем сделать дедушкин сэндвич. Сходи на склад и достань мясо из коробки.",
                    NextBtnText     = "Ок",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForMeat;
                    }
                }
            },
            {
                Stage.WaitForMeat, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan2",

                    NameText        = "Сестренка",
                    DialogueText    = "Сейчас прижарь его на сковороде.",
                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.DropWholeRawMeatInStove;
                    }
                }
            },
            {
                Stage.TakeBreadBeforeMeat, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText        = "Сестренка",
                    DialogueText    = "Это похоже на мясо? Мне кажется это хлеб. Возьми мясо из соседней коробки!",
                    NextBtnText     = "Угу",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForMeat;
                    }
                }
            },
            {
                Stage.DropWholeRawMeatInStove, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = false,
                    IsAnswer1BtnVisible = true,
                    IsAnswer2Visible    = true,
                    IsAnswer3Visible    = true,

                    AvatarPath = "Avatars/tyan2",

                    NameText           = "Сестренка",
                    DialogueText       = "Хорошо, теперь прожарь его до легкой корочки.",
                    Answer1Text        = "A что будет, если я его пережарю?",
                    Answer2Text        = "Как понять, что мясо готово?",
                    Answer3Text        = "Oкей",
                    Answer1BtnCallback = () =>
                    {
                        _stage = Stage.TalkAboutStateOfPreparing;
                        Close();
                    },
                    Answer2BtnCallback = () =>
                    {
                        _stage = Stage.TalkAboutCookingInStove;
                        Close();
                    },
                    Answer3BtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForWholeFriedMeat;
                    }
                }
            },
            {
                Stage.DropWholeRawMeatInAllAnotherPlaces, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText = "Я же сказала, положи мясо на сковороду!",

                    NextBtnText     = "Хорошо, хорошо...",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.DropWholeRawMeatInStove;
                        _meatGrinder.DeleteItem();
                        _cuttingBoard.DeleteItem();
                        _grater.DeleteItem();
                        _pan.DeleteItem();
                        _inventory.AddItem(Item.Name.Meat, Item.StateOfIncision.Whole, Item.StateOfPreparing.Raw, false);
                    }
                }
            },
            {
                Stage.DropWholeRawMeatInGarbage, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText = "Зачем ты выкинул кусок отличной вырезки в мусорку? Ты ебобо?! Иди и возьми новый кусок мяса!",

                    NextBtnText     = "Ой...",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _boxWithMeat.AddtoRepository(1, Item.Name.Meat);
                        _stage = Stage.WaitForMeat;
                    }
                }
            },
            {
                Stage.AgainTalkWhenDropWholeRawMeatInStove, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = false,
                    IsAnswer1BtnVisible = true,
                    IsAnswer2Visible    = true,
                    IsAnswer3Visible    = true,

                    AvatarPath = "Avatars/tyan2",

                    NameText           = "Сестренка",
                    DialogueText       = "Готов жарить мясо?",
                    Answer1Text        = "A что будет, если я его пережарю?",
                    Answer2Text        = "Как понять, что мясо готово?",
                    Answer3Text        = "Дыа",
                    Answer1BtnCallback = () =>
                    {
                        _stage = Stage.TalkAboutStateOfPreparing;
                        Close();
                    },
                    Answer2BtnCallback = () =>
                    {
                        _stage = Stage.TalkAboutCookingInStove;
                        Close();
                    },
                    Answer3BtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForWholeFriedMeat;
                    }
                }
            },
            {
                Stage.TalkAboutStateOfPreparing, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText = "Оно сгорит, глупенький! Что же оно ещё может сделать?!",

                    NextBtnText     = "Ладно, ладно...",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.AgainTalkWhenDropWholeRawMeatInStove;
                    }
                }
            },
            {
                Stage.TalkAboutCookingInStove, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan2",

                    NameText     = "Сестренка",
                    DialogueText = "Все просто! Когда мясо покраснеет, оно будет готово!",

                    NextBtnText     = "Окей",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.AgainTalkWhenDropWholeRawMeatInStove;
                    }
                }
            },

            {
                Stage.CreateBadMeat, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText = "Братик, ты испортил кусок отличного мяса! Постарайся так больше не делать.",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForWholeFriedMeat;
                    }
                }
            },

            {
                Stage.TakeBreadWhenCreateWholeFriedMeat, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText = "Положи этот кусок хлеба, сейчас он тебе ещё не нужен.",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForWholeFriedMeat;
                    }
                }
            },

            {
                Stage.WaitForWholeFriedMeat, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan2",

                    NameText     = "Сестренка",
                    DialogueText = "Отлично, а сейчас достань кусок хлеба из коробки.",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForBread;
                    }
                }
            },

            {
                Stage.TakeMeatBeforeBread, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText = "Я попросила взять тебя кусок хлеба, а ты взял ещё один кусок мяса. Зачем?",

                    NextBtnText     = "Оу...",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForBread;
                    }
                }
            },

            {
                Stage.WaitForBread, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan2",

                    NameText     = "Сестренка",
                    DialogueText = "Теперь просто сделай бутерброд на рабочем столе. Рецепт бутреброда можно посмотреть в книге рецептов. " +
                                   "(Рабочий стол работает по принципу положил в него нужные ингридиенты, нажал, получил продукт. Однако, если положить туда не те продукты, которые требуются, на выходе получишь что - то совсем иное...)",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForSandwich;
                    }
                }
            },

            {
                Stage.DoBadThing, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText =
                        "Не очень то похоже на сэндвич! Открой книгу рецептов, прочти её и попробуй снова! >_>",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForSandwich;
                    }
                }
            },

            {
                Stage.LostAll, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan",

                    NameText     = "Сестренка",
                    DialogueText =
                        "<_< Ты похерил всю еду на кухне! Фиговый из тебя повар, попробуй ещё раз. >_>",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForSandwich;
                    }
                }
            },

            {
                Stage.WaitForSandwich, new DialogueInfo
                {
                    IsChatPanelVisible  = true,
                    IsAvatarVisible     = true,
                    IsNextBtnVisible    = true,
                    IsAnswer1BtnVisible = false,
                    IsAnswer2Visible    = false,
                    IsAnswer3Visible    = false,

                    AvatarPath = "Avatars/tyan2",

                    NameText     = "Сестренка",
                    DialogueText = "Думаю ты справишься с покупателями в первые дни. Главное не забудь читать книгу рецептов в поисках новых рецептов!",

                    NextBtnText     = "Хорошо",
                    NextBtnCallback = () =>
                    {
                        Close();
                        _stage = Stage.WaitForDroppingSandwichToSister;
                    }
                }
            }
        };
    }