Пример #1
0
        public Graveyard()
        {
            // Create container
            _enemyPanel             = new StackPanel();
            _enemyPanel.Orientation = Orientation.Vertical;
            Core.OverlayCanvas.Children.Add(_enemyPanel);
            Canvas.SetTop(_enemyPanel, Settings.Default.EnemyTop);
            Canvas.SetLeft(_enemyPanel, Settings.Default.EnemyLeft);

            // Create container
            _friendlyPanel             = new StackPanel();
            _friendlyPanel.Orientation = Orientation.Vertical;
            Core.OverlayCanvas.Children.Add(_friendlyPanel);
            Canvas.SetTop(_friendlyPanel, Settings.Default.PlayerTop);
            Canvas.SetLeft(_friendlyPanel, Settings.Default.PlayerLeft);

            Input = new InputManager(_friendlyPanel, _enemyPanel);

            Settings.Default.PropertyChanged += SettingsChanged;
            SettingsChanged(null, null);

            // Connect events
            GameEvents.OnGameStart.Add(Reset);
            GameEvents.OnGameEnd.Add(Reset);
            DeckManagerEvents.OnDeckSelected.Add(d => Reset());

            GameEvents.OnPlayerPlayToGraveyard.Add(PlayerGraveyardUpdate);
            GameEvents.OnOpponentPlayToGraveyard.Add(EnemyGraveyardUpdate);

            GameEvents.OnPlayerPlay.Add(c => Anyfin?.UpdateDamage());
            GameEvents.OnOpponentPlay.Add(c => Anyfin?.UpdateDamage());

            GameEvents.OnPlayerHandDiscard.Add(PlayerDiscardUpdate);
            GameEvents.OnPlayerPlay.Add(PlayerPlayUpdate);
        }
Пример #2
0
        public Graveyard()
        {
            // Create container
            _verticalEnemy                 = new StackPanel();
            _verticalEnemy.Orientation     = Orientation.Vertical;
            _verticalEnemy.RenderTransform = new ScaleTransform(
                Config.Instance.OverlayOpponentScaling / 100,
                Config.Instance.OverlayOpponentScaling / 100);
            Core.OverlayCanvas.Children.Add(_verticalEnemy);

            // Stick to the Right of the player panal
            var border = Core.OverlayCanvas.FindName("BorderStackPanelOpponent") as Border;

            DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, typeof(Border))
            .AddValueChanged(border, Layout);
            DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, typeof(Border))
            .AddValueChanged(border, Layout);
            DependencyPropertyDescriptor.FromProperty(StackPanel.ActualWidthProperty, typeof(StackPanel))
            .AddValueChanged(_verticalEnemy, Layout);

            // Create container
            _vertical                 = new StackPanel();
            _vertical.Orientation     = Orientation.Vertical;
            _vertical.RenderTransform = new ScaleTransform(
                Config.Instance.OverlayPlayerScaling / 100,
                Config.Instance.OverlayPlayerScaling / 100);
            Core.OverlayCanvas.Children.Add(_vertical);

            // Stick to the left of the player panal
            border = Core.OverlayCanvas.FindName("BorderStackPanelPlayer") as Border;
            DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, typeof(Border))
            .AddValueChanged(border, Layout);
            DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, typeof(Border))
            .AddValueChanged(border, Layout);
            DependencyPropertyDescriptor.FromProperty(StackPanel.ActualWidthProperty, typeof(StackPanel))
            .AddValueChanged(_vertical, Layout);

            // Connect events
            GameEvents.OnGameStart.Add(Reset);
            GameEvents.OnGameEnd.Add(Reset);
            DeckManagerEvents.OnDeckSelected.Add(d => Reset());
            GameEvents.OnPlayerPlayToGraveyard.Add(Update);

            GameEvents.OnOpponentPlayToGraveyard.Add(c => {
                Anyfin?.Update(c);
                Enemy?.Update(c);
            });
            GameEvents.OnPlayerPlay.Add(c => Anyfin?.UpdateDamage());
            GameEvents.OnOpponentPlay.Add(c => Anyfin?.UpdateDamage());
        }