void PlayMessage(MusSpecialMessages msg) { if (txtTraces.InvokeRequired) { txtTraces.BeginInvoke(new PlayMessageDelegate(PlayMessage), new object[] { msg }); } else { switch (msg) { case MusSpecialMessages.Gallina: case MusSpecialMessages.Quejica: Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream($"MusClient.Res.{msg}.wav"); using (System.Media.SoundPlayer player = new System.Media.SoundPlayer(stream)) player.Play(); break; case MusSpecialMessages.Loser: Stream imgStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream($"MusClient.Res.{msg}.png"); picMessageImages.Image = new Bitmap(imgStream); picMessageImages.Visible = true; Task.Delay(3000).ContinueWith(t => { picMessageImages.Visible = false; }, TaskScheduler.FromCurrentSynchronizationContext()); break; } } }
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if ((DateTime.Now - lastTimeSpecialMessage).TotalSeconds > 15) { MusSpecialMessages m = SpecialMessages.GetSpecialMessage(keyData); if (m != MusSpecialMessages.None) { lastTimeSpecialMessage = DateTime.Now; using (MyServiceClient c = new MyServiceClient(generalData.ServerIP)) { c.SendSpecialMessageAsync(generalData.GameName, generalData.TeamName, generalData.UserName, m); } } } return(base.ProcessCmdKey(ref msg, keyData)); }
public static MusSpecialMessages GetSpecialMessage(System.Windows.Forms.Keys letter) { MusSpecialMessages retVal = MusSpecialMessages.None; switch (letter) { case System.Windows.Forms.Keys.G: retVal = MusSpecialMessages.Gallina; break; case System.Windows.Forms.Keys.L: retVal = MusSpecialMessages.Loser; break; case System.Windows.Forms.Keys.Q: retVal = MusSpecialMessages.Quejica; break; } return(retVal); }
public void SendSpecialMessage(string gameName, string teamName, string userName, MusSpecialMessages message) { var game = MusDatabase.Games.FirstOrDefault(x => x.GameName == gameName); AddTrace(game, $"{userName} pide enviar mensaje especial: {message}"); var team = game.Teams.FirstOrDefault(x => x.TeamName == teamName); foreach (var t in game.Teams) { if (t != team) { foreach (var u in t.Users) { u.SpecialMessage = message; } } } }