/// <summary> /// Fire a shot from a player. /// </summary> /// <param name="index">Index of the player who took the shot</param> public void FirePlayer(int index) { Player p = this.players[index]; if (p.PlayerActive) { // Resize all sights. float size = (float)this.ActualWidth * 0.05f; float sightsWidth = size * 0.1f; float sightsClose = size * 0.5f; float sightsInnerWidth = size * 0.2f; SightsControl s = new SightsControl { SightsColor = p.Sights.SightsColor, Width = size, Height = size, SightsWidth = 0.0f, SightsClose = sightsClose, SightsInnerWidth = 0.0f }; MainCanvas.Children.Add(s); Canvas.SetLeft(s, p.X - size / 2.0f); Canvas.SetTop(s, p.Y - size / 2.0f); float x = p.X / (float)this.ActualWidth; float y = p.Y / (float)this.ActualHeight; s.FireAnimationStoryBoard.Completed += (snd, arg) => ShotEnded(p, x, y, s); s.Fire(); } }