public void ChangeMode(Mode mode)
    {
        if (this.mode == mode)
        {
            return;
        }


        lastChange = 0;
        if (mode == Mode.BESTIARY)
        {
            beastiary.ResetCount();
        }
        ability.ChangeGameState(this.mode, mode);
        this.mode = mode;
        weapon.ChangeState(mode);

        switch (mode)
        {
        case Mode.NORMAL:
            Time.timeScale = chosenTime;
            break;

        case Mode.START_GAME:
            start.ChangeState(StarMenu.MenuItemId.Start_Menu);
            Time.timeScale = 0;
            break;

        case Mode.ABILITY:
            ability.Init();
            Time.timeScale = 0;
            break;

        default:
            Time.timeScale = 0;
            break;
        }
    }