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