public Credits(MainMenu parent)
        {
            ParentMenu = parent;

            credit = new Label();
            credit.Text = "     Credits \n\nProgrammers \n   Traiko Dinev \n\nGame Designer"+
                "\n   Traiko Dinev \n\nLead Programmer \n   Traiko Dinev";

            back = new Button();
            back.ApplyStylishEffect();
            back.Image = "data/img/bck.bmp";
            back.Text = "Return";
            back.Size.X = 80;
            back.MouseClick += (pos) =>
                {
                    Visible = false;
                };
            Visible = false;

            Initialize();
            ParentMenu.ParentWindow.AddChildren(this, back);

            LogManager.WriteInfo("Created credits menu.");
        }
        public SettingsMenu(MainMenu MenuParent)
        {
            Parent = MenuParent.ParentWindow;
            ParentMenu = MenuParent;
            soundStatus = Properties.Settings.Default.SoundStatus;
            musicStatus = Properties.Settings.Default.MusicStatus;

            mainTimer = new Timer();
            mainTimer.Interval = 10;

            titleLabel = new Label();
            titleLabel.Text = "Settings";
            titleLabel.Location = new Vector(100, -250.5f);

            toggleSoundLabel = new Label();
            toggleSoundLabel.Location = new Vector(130, -220.5f);
            toggleSoundLabel.Text = "Sound: " + (soundStatus ? "On " : "Off");

            toggleSound = new Button();
            toggleSound.Location = new Vector(270, -220.5f);
            toggleSound.ApplyStylishEffect();
            toggleSound.Size = new Vector(70, 20);
            toggleSound.Image = "data/img/bck.bmp";
            toggleSound.Text = "Toggle";
            toggleSound.MouseClick += (pos) =>
                {
                    soundStatus = soundStatus ? false : true;
                    toggleSoundLabel.Text = "Sound: " + (soundStatus ? "On " : "Off");
                };

            saveButton = new Button();
            saveButton.Location = new Vector(200, -30);
            saveButton.Image = "data/img/bck.bmp";
            saveButton.ApplyStylishEffect();
            saveButton.Text = "Save";
            saveButton.MouseClick += (pos) => SaveAndHide();

            toggleMusicLabel = new Label();
            toggleMusicLabel.Location = new Vector(130, -180.5f);
            toggleMusicLabel.Text = "Music: " + (musicStatus ? "On " : "Off");

            toggleMusic = new Button();
            toggleMusic.Location = new Vector(270, -180.5f);
            toggleMusic.ApplyStylishEffect();
            toggleMusic.Size = new Vector(70, 20);
            toggleMusic.Image = "data/img/bck.bmp";
            toggleMusic.Text = "Toggle";
            toggleMusic.MouseClick += (pos) =>
                {
                    musicStatus = musicStatus ? false : true;
                    toggleMusicLabel.Text = "Music: " + (musicStatus ? "On " : "Off");
                };

            deleteSaveGames = new Button();
            deleteSaveGames.Location = new Vector(150, -120.5f);
            deleteSaveGames.ApplyStylishEffect();
            deleteSaveGames.Image = "data/img/bck.bmp";
            deleteSaveGames.Text = "Delete saved games";
            deleteSaveGames.MouseClick += (pos) =>
                {
                    Game.Game.DeleteProgress(false);
                    Game.Game.LoadGame();
                    SaveAndHide();
                };
            deleteSaveGames.Size = new Vector(160, 25);

            Parent.AddChildren(toggleSound, saveButton, toggleMusicLabel, toggleMusic, deleteSaveGames);

            mainTimer.Tick += (o, e) =>
            {
                //lazy delay implementation
                //TODO: maybe fix
                elapsed++;
                if (elapsed < 10)
                    return;

                if (curShift < destShift)
                {
                    curShift += shiftIncr;

                    titleLabel.Location.Y -= curShift;
                    toggleSoundLabel.Location.Y -= curShift;
                    toggleSound.Location.Y -= curShift;
                    saveButton.Location.Y -= curShift;
                    toggleMusicLabel.Location.Y -= curShift;
                    toggleMusic.Location.Y -= curShift;
                    deleteSaveGames.Location.Y -= curShift;

                    return;
                }
                mainTimer.Stop();
            };
        }
        public PlayGameMenu(MainMenu menuParent)
        {
            MenuParent = menuParent;
            Parent = menuParent.ParentWindow;

            resumeGameButton = new Button();
            resumeGameButton.Text = "Resume Game";
            resumeGameButton.Location = new Vector(255, 0);
            resumeGameButton.ApplyStylishEffect();
            resumeGameButton.Size.X -= 10;
            resumeGameButton.Image = "data/img/bck.bmp";

            resumeGameButton.MouseClick += (pos) =>
                {
                    Game.Game.ResumeGame();
                    Hide();
                    MenuParent.HideMenu();
                };

            newGameButton = new Button();
            newGameButton.Text = "New Game";
            newGameButton.Location = new Vector(250, 0);
            newGameButton.ApplyStylishEffect();
            newGameButton.Image = "data/img/bck.bmp";
            newGameButton.MouseClick += (pos) =>
                {
                    Game.Game.NewGame();
                    Hide();
                    MenuParent.HideMenu();
                };

            backButton = new Button();
            backButton.Text = "Back";
            backButton.Location = new Vector(265, 0);
            backButton.ApplyStylishEffect();
            backButton.Image = "data/img/bck.bmp";
            backButton.Size.X -= 30;
            backButton.MouseClick += (pos) => Hide();

            mainTimer = new Timer();
            mainTimer.Interval = 10;
            mainTimer.Tick += (o, e) =>
                {
                    if (curShift < destShift)
                    {
                        curShift += shiftIncr;

                        resumeGameButton.Location.Y -= curShift;
                        newGameButton.Location.Y -= curShift;
                        backButton.Location.Y -= curShift;

                        return;
                    }
                    mainTimer.Stop();
                };

            resumeGameButton.Location.Y = -250.5f;
            newGameButton.Location.Y = -220.5f;
            backButton.Location.Y = -1900.5f;
            Parent.AddChildren(resumeGameButton, newGameButton, backButton);

            canResume = Game.Game.CheckProgress();
            if (!canResume)
            {
                Parent.Children.Remove(resumeGameButton);
                Parent.Children.Add(this);
            }
        }