private void OnGridLayoutUpdated(object sender, object e)
        {
            var point = OverlayPopup.TransformToVisual(null).TransformPoint(new Point(0, 0));

            OverlayGrid.Width  = Window.Current.Bounds.Width;
            OverlayGrid.Height = Window.Current.Bounds.Height;

            double ActualHorizontalOffset = System.Math.Round(this.OverlayPopup.HorizontalOffset, 2);
            double ActualVerticalOffset   = System.Math.Round(this.OverlayPopup.VerticalOffset, 2);

            double NewHorizontalOffset = System.Math.Round((Window.Current.Bounds.Width - OverlayGrid.ActualWidth) / 2 - point.X, 2);
            double NewVerticalOffset   = System.Math.Round((Window.Current.Bounds.Height - OverlayGrid.ActualHeight) / 2 - point.Y, 2);

            if (ActualHorizontalOffset != NewHorizontalOffset || ActualVerticalOffset != NewVerticalOffset)
            {
                this.OverlayPopup.HorizontalOffset = NewHorizontalOffset;
                this.OverlayPopup.VerticalOffset   = NewVerticalOffset;
            }
        }
Exemple #2
0
        private void HandleLost()
        {
            _soundManager.PlayLoose();
            var currentRecord = _settingsRepository.GetOrSetInt(Definitions.SCORE_KEY, 0);

            var scoreTextGameover = $"{_localizedStringsRepository.Get(GameStringsLoader.ScoreStringKey)}:{_score}";

            if (_score > currentRecord)
            {
                _settingsRepository.SetInt(Definitions.SCORE_KEY, _score);
                scoreTextGameover = $"{scoreTextGameover}\nRECORD!";
            }

            _currentGameState     = GameStates.Lost;
            _gameOverOverlayPopup = new OverlayPopup(
                "GAME OVER",
                scoreTextGameover,
                _writingFont,
                _matrixScaleProvider,
                _localizedStringsRepository,
                () => _gameOrchestrator.Replay(),
                () => _gameOrchestrator.SetMenuState());
        }
Exemple #3
0
        public MainScreen()
        {
            RPC.UpdatePresence("Looking for levels", null, new Assets
            {
                LargeImageKey  = "gde",
                LargeImageText = "GD Edit"
            });

            AddRangeInternal(new Drawable[]
            {
                new DrawSizePreservingFillContainer
                {
                    Strategy         = DrawSizePreservationStrategy.Average,
                    RelativeSizeAxes = Axes.Both,
                    Children         = new Drawable[]
                    {
                        toolbar = new Toolbar
                        {
                            RelativeSizeAxes = Axes.X,
                            Size             = new Vector2(1f, 40),
                            Delete           = () => popUp.ToggleVisibility()
                        },
                        new Box
                        {
                            RelativeSizeAxes = Axes.Y,
                            Width            = 260,
                            Colour           = GDEColors.FromHex("111111"),
                            Margin           = new MarginPadding
                            {
                                Top = 40
                            }
                        },
                        levelList = new LevelList
                        {
                            RelativeSizeAxes = Axes.Y,
                            Width            = 260,
                            Padding          = new MarginPadding
                            {
                                Top    = 40,
                                Bottom = 40
                            }
                        },
                        popUp = new OverlayPopup
                        {
                            HeaderText         = "Woah there!",
                            BodyText           = "Are you really sure you want to delete this level?",
                            Button1Text        = "Cancel",
                            Button2Text        = "Confirm",
                            ConfirmButtonColor = GDEColors.FromHex("c6262e"),
                            Origin             = Anchor.Centre,
                            Anchor             = Anchor.Centre,
                            Size          = new Vector2(750, 270),
                            ConfirmAction = () =>
                            {
                                var selectedLevel = levelList.LevelIndex > -1
                                    ? levelList.Cards[levelList.LevelIndex].Level.Value
                                    : null;

                                //if (selectedLevel != null)
                                //database. delete level here

                                levelList.Remove(levelList.Cards[levelList.LevelIndex]);
                            }
                        },
                        loadWarning = new SpriteText
                        {
                            Origin = Anchor.Centre,
                            Anchor = Anchor.Centre,
                            Text   = "Loading please wait",
                            Font   = new FontUsage(size: 60)
                        }
                    }
                }
            });

            toolbar.Level.BindTo(level);
            level.ValueChanged += ChangeLevel;

            levelList.LevelSelected = () =>
            {
                var selectedLevel =
                    levelList.LevelIndex > -1 ? levelList.Cards[levelList.LevelIndex].Level.Value : null;
                level.Value = selectedLevel;
                toolbar.Level.TriggerChange(); // F**k why is this necessary?
                toolbar.Edit = levelList.LevelIndex > -1
                    ? (Action)(() => this.Push(new EditorScreen(levelList.LevelIndex, selectedLevel)))
                    : null;
                popUp.ConfirmAction = () => database.UserLevels.Remove(selectedLevel);
            };

            levelList.CompletedLoading = () => loadWarning.Text = null;
        }