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; } }
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()); }
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; }