Added some new sound files (PlayerLost, PlayerWon, PlayerSubmittedDeck, PlayerLeft).

This commit is contained in:
LevelX2 2013-08-31 19:00:38 +02:00
parent 2b916a5dfb
commit 182839d41a
12 changed files with 73 additions and 22 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -56,7 +56,7 @@
<Component id="tabPane" min="-2" pref="277" max="-2" attributes="0"/> <Component id="tabPane" min="-2" pref="277" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="btnOk" min="-2" max="-2" attributes="0"/> <Component id="btnOk" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="25" max="32767" attributes="0"/> <EmptySpace min="0" pref="29" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@ -155,22 +155,13 @@
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Component id="lblPlayerInfo" min="-2" pref="90" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <Component id="lblDurationMatch" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Component id="lblMatchScore" alignment="0" min="-2" pref="86" max="-2" attributes="0"/>
<Component id="lblPlayerInfo" min="-2" pref="90" max="-2" attributes="0"/> <Component id="lblDurationGame" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="lblDurationMatch" alignment="0" min="-2" pref="101" max="-2" attributes="0"/> <Component id="lblLife" alignment="0" min="-2" pref="71" max="-2" attributes="0"/>
<Component id="lblMatchScore" alignment="0" min="-2" pref="86" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="lblDurationGame" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="lblLife" alignment="0" min="-2" pref="71" max="-2" attributes="0"/>
</Group>
</Group>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">

View file

@ -91,9 +91,9 @@ public class GameEndDialog extends MageDialog {
this.txtLife.setText(sb.toString()); this.txtLife.setText(sb.toString());
if (gameEndView.hasWon()) { if (gameEndView.hasWon()) {
AudioManager.playPlayerJoinedTable(); AudioManager.playPlayerWon();
} else { } else {
AudioManager.playButtonCancel(); AudioManager.playPlayerLost();
} }
txtMatchScore.setText(gameEndView.getMatchView().getResult()); txtMatchScore.setText(gameEndView.getMatchView().getResult());

View file

@ -39,6 +39,7 @@ import mage.client.constants.Constants.DeckEditorMode;
import mage.client.draft.DraftPanel; import mage.client.draft.DraftPanel;
import mage.client.game.GamePanel; import mage.client.game.GamePanel;
import mage.client.plugins.impl.Plugins; import mage.client.plugins.impl.Plugins;
import mage.client.util.AudioManager;
import mage.client.util.DeckUtil; import mage.client.util.DeckUtil;
import mage.client.util.GameManager; import mage.client.util.GameManager;
import mage.client.util.object.SaveObjectUtil; import mage.client.util.object.SaveObjectUtil;
@ -112,6 +113,16 @@ public class CallbackClientImpl implements CallbackClient {
ChatMessage message = (ChatMessage) callback.getData(); ChatMessage message = (ChatMessage) callback.getData();
ChatPanel panel = MageFrame.getChat(callback.getObjectId()); ChatPanel panel = MageFrame.getChat(callback.getObjectId());
if (panel != null) { if (panel != null) {
if (message.getSoundToPlay() != null) {
switch (message.getSoundToPlay()) {
case PlayerLeft:
AudioManager.playPlayerLeft();
break;
case PlayerSubmittedDeck:
AudioManager.playPlayerSubmittedDeck();
break;
}
}
if (message.getMessage().equals(Constants.MSG_TIP_HOT_KEYS_CODE) && panel.getConnectedChat() != null) { if (message.getMessage().equals(Constants.MSG_TIP_HOT_KEYS_CODE) && panel.getConnectedChat() != null) {
panel.getConnectedChat().receiveMessage("[Tips] ", "You may use hot keys to play faster: " + "" + panel.getConnectedChat().receiveMessage("[Tips] ", "You may use hot keys to play faster: " + "" +
"\nTurn Mousewheel - Show big image of card your mousepointer hovers over" + "\nTurn Mousewheel - Show big image of card your mousepointer hovers over" +

View file

@ -47,6 +47,10 @@ public class AudioManager {
audioManager.onHover = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnHover.wav"); audioManager.onHover = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnHover.wav");
audioManager.playerJoinedTable = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerJoinedTable.wav"); audioManager.playerJoinedTable = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerJoinedTable.wav");
audioManager.playerSubmittedDeck = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerSubmittedDeck.wav");
audioManager.playerLeft = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerLeft.wav");
audioManager.playerWon = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerWon.wav");
audioManager.playerLost = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerLost.wav");
} }
return audioManager; return audioManager;
} }
@ -123,6 +127,22 @@ public class AudioManager {
checkAndPlayClip(getManager().playerJoinedTable); checkAndPlayClip(getManager().playerJoinedTable);
} }
public static void playPlayerSubmittedDeck() {
checkAndPlayClip(getManager().playerSubmittedDeck);
}
public static void playPlayerLeft() {
checkAndPlayClip(getManager().playerLeft);
}
public static void playPlayerLost() {
checkAndPlayClip(getManager().playerLost);
}
public static void playPlayerWon() {
checkAndPlayClip(getManager().playerWon);
}
private static void checkAndPlayClip(Clip clip) { private static void checkAndPlayClip(Clip clip) {
try { try {
if (clip != null) { if (clip != null) {
@ -186,4 +206,8 @@ public class AudioManager {
private Clip onHover = null; private Clip onHover = null;
private Clip playerJoinedTable = null; private Clip playerJoinedTable = null;
private Clip playerSubmittedDeck = null;
private Clip playerLeft = null;
private Clip playerWon = null;
private Clip playerLost = null;
} }

View file

@ -41,16 +41,26 @@ public class ChatMessage implements Serializable {
private String time; private String time;
private String message; private String message;
private MessageColor color; private MessageColor color;
private SoundToPlay soundToPlay;
public enum MessageColor { public enum MessageColor {
BLACK, RED, GREEN, BLUE, ORANGE; BLACK, RED, GREEN, BLUE, ORANGE;
} }
public enum SoundToPlay {
PlayerLeft, PlayerSubmittedDeck;
}
public ChatMessage(String username, String message, String time, MessageColor color) { public ChatMessage(String username, String message, String time, MessageColor color) {
this(username, message, time, color, null);
}
public ChatMessage(String username, String message, String time, MessageColor color, SoundToPlay soundToPlay) {
this.username = username; this.username = username;
this.message = message; this.message = message;
this.time = time; this.time = time;
this.color = color; this.color = color;
this.soundToPlay = soundToPlay;
} }
public String getMessage() { public String getMessage() {
@ -76,4 +86,9 @@ public class ChatMessage implements Serializable {
public String getTime() { public String getTime() {
return time; return time;
} }
public SoundToPlay getSoundToPlay() {
return soundToPlay;
}
} }

View file

@ -32,6 +32,7 @@ import mage.view.ChatMessage.MessageColor;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import mage.view.ChatMessage.SoundToPlay;
/** /**
* *
@ -75,6 +76,10 @@ public class ChatManager {
chatSessions.get(chatId).broadcast(userName, message, color, withTime); chatSessions.get(chatId).broadcast(userName, message, color, withTime);
} }
public void broadcast(UUID chatId, String userName, String message, MessageColor color, boolean withTime, SoundToPlay soundToPlay) {
chatSessions.get(chatId).broadcast(userName, message, color, withTime, soundToPlay);
}
/** /**
* *
* use mainly for announcing that a user connection was lost or that a user has reconnected * use mainly for announcing that a user connection was lost or that a user has reconnected

View file

@ -37,6 +37,7 @@ import java.util.concurrent.ConcurrentHashMap;
import mage.interfaces.callback.ClientCallback; import mage.interfaces.callback.ClientCallback;
import mage.view.ChatMessage; import mage.view.ChatMessage;
import mage.view.ChatMessage.MessageColor; import mage.view.ChatMessage.MessageColor;
import mage.view.ChatMessage.SoundToPlay;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
/** /**
@ -89,6 +90,10 @@ public class ChatSession {
} }
public void broadcast(String userName, String message, MessageColor color, boolean withTime) { public void broadcast(String userName, String message, MessageColor color, boolean withTime) {
broadcast(userName, message, color, withTime, null);
}
public void broadcast(String userName, String message, MessageColor color, boolean withTime, SoundToPlay soundToPlay) {
if (!message.isEmpty()) { if (!message.isEmpty()) {
Calendar cal = new GregorianCalendar(); Calendar cal = new GregorianCalendar();
final String msg = message; final String msg = message;
@ -98,7 +103,7 @@ public class ChatSession {
for (UUID userId: clients.keySet()) { for (UUID userId: clients.keySet()) {
User user = UserManager.getInstance().getUser(userId); User user = UserManager.getInstance().getUser(userId);
if (user != null) { if (user != null) {
user.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(username, msg, time, color))); user.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(username, msg, time, color, soundToPlay)));
} }
else { else {
kill(userId, User.DisconnectReason.CleaningUp); kill(userId, User.DisconnectReason.CleaningUp);

View file

@ -45,13 +45,13 @@ import mage.game.match.MatchOptions;
import mage.game.tournament.Tournament; import mage.game.tournament.Tournament;
import mage.game.tournament.TournamentPairing; import mage.game.tournament.TournamentPairing;
import mage.game.tournament.TournamentPlayer; import mage.game.tournament.TournamentPlayer;
import mage.players.Player;
import mage.server.ChatManager; import mage.server.ChatManager;
import mage.server.TableManager; import mage.server.TableManager;
import mage.server.UserManager; import mage.server.UserManager;
import mage.server.game.GamesRoomManager; import mage.server.game.GamesRoomManager;
import mage.server.util.ThreadExecutor; import mage.server.util.ThreadExecutor;
import mage.view.ChatMessage.MessageColor; import mage.view.ChatMessage.MessageColor;
import mage.view.ChatMessage.SoundToPlay;
import mage.view.TournamentView; import mage.view.TournamentView;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
@ -240,7 +240,7 @@ public class TournamentController {
TournamentPlayer player = tournament.getPlayer(playerId); TournamentPlayer player = tournament.getPlayer(playerId);
if (player != null && !player.hasQuit()) { if (player != null && !player.hasQuit()) {
tournamentSessions.get(playerId).submitDeck(deck); tournamentSessions.get(playerId).submitDeck(deck);
ChatManager.getInstance().broadcast(chatId, "", player.getPlayer().getName() + " has submitted his tournament deck", MessageColor.BLACK); ChatManager.getInstance().broadcast(chatId, "", player.getPlayer().getName() + " has submitted his tournament deck", MessageColor.BLACK, true, SoundToPlay.PlayerSubmittedDeck);
} }
} }
} }
@ -267,7 +267,7 @@ public class TournamentController {
if (playerId != null) { if (playerId != null) {
TournamentPlayer player = tournament.getPlayer(playerId); TournamentPlayer player = tournament.getPlayer(playerId);
if (player != null) { if (player != null) {
ChatManager.getInstance().broadcast(chatId, "", player.getPlayer().getName() + " has quit the tournament", MessageColor.BLACK); ChatManager.getInstance().broadcast(chatId, "", player.getPlayer().getName() + " has quit the tournament", MessageColor.BLACK, true, SoundToPlay.PlayerLeft);
String info; String info;
if (tournament.isDoneConstructing()) { if (tournament.isDoneConstructing()) {
info = new StringBuilder("during round ").append(tournament.getRounds().size()).toString(); info = new StringBuilder("during round ").append(tournament.getRounds().size()).toString();