package com.jpii.navalbattle.util;
import javax.swing.ImageIcon;
import com.jpii.navalbattle.NavalBattle;
import com.jpii.navalbattle.data.RoketGamerData;
import com.roketgamer.achievement.Achievement;
import com.roketgamer.leaderboard.Leaderboard;
public class RoketUtils {
/**
* Quickly submit a <code>Leader-board</code> to the server. Checks if off-line or if game is out-dated.
* @param leaderboard
* @param score
*/
public static void submitLeaderboard(Leaderboard leaderboard, int score) {
if(!NavalBattle.getGameState().isOffline()) {
if(!NavalBattle.getBroadcastService().needsUpdate()) {
leaderboard.submit(score);
NavalBattle.getWindowHandler().getToasterManager().showToaster(
new ImageIcon(RoketUtils.class.getResource("/com/roketgamer/res/logo_100px.png")),
"Submitted score of " + score + " to server");
submitAchievement(RoketGamerData.ACHIEVEMENT_SYNCING_SHIP);
} else {
NavalBattle.getDebugWindow().printWarning("NavalBattle is outdated. Score cannot be submitted.");
}
} else {
NavalBattle.getDebugWindow().printWarning("NavalBattle is offline. Score cannot be submitted.");
}
}
/**
* Quickly submit an <code>Achievement</code> to the server. Checks if off-line or if game is out-dated.
* Also handles duplicate achievements and toast notifications.
* @param achievement
* @param score
*/
public static void submitAchievement(Achievement achievement) {
if(!NavalBattle.getGameState().isOffline()) {
if(!NavalBattle.getBroadcastService().needsUpdate()) {
if(!achievement.hasAchieved()) {
achievement.submit();
NavalBattle.getWindowHandler().getToasterManager().showToaster(
new ImageIcon(RoketUtils.class.getResource("/com/roketgamer/res/logo_100px.png")),
"Achievement Unlocked!\n" + achievement.getName());
SoundUtils.playSound(RoketUtils.class.getResourceAsStream("/com/jpii/navalbattle/res/sfx/achievement.wav"));
NavalBattle.getDebugWindow().printInfo("Achievement \"" + achievement.getName() + "\" submitted.");
} else {
NavalBattle.getDebugWindow().printWarning("Achievement \"" + achievement.getName() + "\" has already been submitted.");
}
} else {
NavalBattle.getDebugWindow().printWarning("NavalBattle is outdated. Acheivement cannot be submitted.");
}
} else {
NavalBattle.getDebugWindow().printWarning("NavalBattle is offline. Achievement cannot be submitted.");
}
}
}