diff --git a/android/assets/text/game/robbery/robbery_cs.properties b/android/assets/text/game/robbery/robbery_cs.properties index b156160e8ac443d273530a27c788a6f84d9ce344..1a4bce2df1a05cd7b672342cb6f1fd175004c6b8 100644 --- a/android/assets/text/game/robbery/robbery_cs.properties +++ b/android/assets/text/game/robbery/robbery_cs.properties @@ -5,10 +5,10 @@ game_robbery_victorytext_threestars=S takovouhle ostrahou nepotĹ™ebuje banka ani game_robbery_victorytext_twostar=Tvoje jmĂ©no si uĹľ zaÄŤĂnajà štÄ›betat\ni straky na stĹ™echách. game_robbery_victorytext_onestar=Otázka je, jestli zĹŻstal trezor poloplnĂ˝,\nnebo poloprázdnĂ˝. game_robbery_victorytext_nostar=U lupiÄŤĹŻ jsi rozhodnÄ› nejoblĂbenÄ›jšà hlĂdaÄŤ.\nKdyĹľ budeš trĂ©novat, urÄŤitÄ› se tÄ› budou brzy bát. -game_robbery_victorytext_stats=SprávnÄ› jsi {0} <b>{1}/{2}</b> návštÄ›vnĂkĹŻ. -game_robbery_victorytext_stats_identification=identifikoval/a -game_robbery_victorytext_stats_identification_male=identifikoval -game_robbery_victorytext_stats_identification_female=identifikovala +game_robbery_victorytext_summary=SprávnÄ› jsi {0} [BLACK]{1}/{2}[] návštÄ›vnĂkĹŻ. +game_robbery_victorytext_summary_identification=identifikoval/a +game_robbery_victorytext_summary_identification_male=identifikoval +game_robbery_victorytext_summary_identification_female=identifikovala game_robbery_color_red=ÄŤerven game_robbery_color_green=zelen game_robbery_color_blue=modr diff --git a/android/assets/text/game/robbery/robbery_de.properties b/android/assets/text/game/robbery/robbery_de.properties index 493a1fd0ca97134743ac2fce0586d5825c021b69..acb3e41f0dfadd5c2f495ba7142cb063d25d4731 100644 --- a/android/assets/text/game/robbery/robbery_de.properties +++ b/android/assets/text/game/robbery/robbery_de.properties @@ -5,10 +5,10 @@ game_robbery_victorytext_threestars=Mit einer solchen Wache braucht die Bank nic game_robbery_victorytext_twostar=Deinen Namen pfeifen langsam schon \ndie Elstern von den Dächern. game_robbery_victorytext_onestar=Die Frage ist, ob der Tresor halb voll, \noder halb leer geblieben ist. game_robbery_victorytext_nostar=Du bist bei den Räubern eindeutig der beliebteste Wächter.\nWenn du trainierst, werden sie bald Angst vor dir haben. -game_robbery_victorytext_stats=Du hast {0} Besucher richtig <b>{1}/{2}</b>. -game_robbery_victorytext_stats_identification=identifiziert -game_robbery_victorytext_stats_identification_male=identifiziert -game_robbery_victorytext_stats_identification_female=identifiziert +game_robbery_victorytext_summary=Du hast {0} Besucher richtig [BLACK]{1}/{2}[]. +game_robbery_victorytext_summary_identification=identifiziert +game_robbery_victorytext_summary_identification_male=identifiziert +game_robbery_victorytext_summary_identification_female=identifiziert game_robbery_color_red=rot game_robbery_color_green=grĂĽn game_robbery_color_blue=blau diff --git a/android/assets/text/game/robbery/robbery_sk.properties b/android/assets/text/game/robbery/robbery_sk.properties index 2bf7494fbd56bed6a2450d331b08ca2e2f5d1221..2a0c6da4d83cea142006383050238727495d815a 100644 --- a/android/assets/text/game/robbery/robbery_sk.properties +++ b/android/assets/text/game/robbery/robbery_sk.properties @@ -5,11 +5,11 @@ game_robbery_loadingtext=Na zaÄŤiatku hry si preÄŤĂtaj pravidlo, podÄľa ktorĂ©h game_robbery_victorytext_threestars=S takouto ostrahou nepotrebuje banka ani trezor. game_robbery_victorytext_twostar=Tvoje meno si zaÄŤĂnajĂş štebotaĹĄ aj straky na strechách. game_robbery_victorytext_onestar=Otázka je, ÄŤi ostal trezor poloplnĂ˝ alebo poloprázdnĂ˝. -game_robbery_victorytext_nostar=U lupiÄŤov si rozhodne najobľúbenejšà strážca. Ak budeš trĂ©novaĹĄ, urÄŤite sa ĹĄa budĂş skoro báť. -game_robbery_victorytext_stats=Správne si {0} <b>{1}/{2}</b> návštevnĂkov. -game_robbery_victorytext_stats_identification=identifikoval/a -game_robbery_victorytext_stats_identification_male=identifikoval -game_robbery_victorytext_stats_identification_female=identifikovala +game_robbery_victorytext_nostar=U lupiÄŤov si rozhodne najobľúbenejšà strážca. \nAk budeš trĂ©novaĹĄ, urÄŤite sa ĹĄa budĂş skoro báť. +game_robbery_victorytext_summary=Správne si {0} [BLACK]{1}/{2}[] návštevnĂkov. +game_robbery_victorytext_summary_identification=identifikoval/a +game_robbery_victorytext_summary_identification_male=identifikoval +game_robbery_victorytext_summary_identification_female=identifikovala game_robbery_color_red=ÄŤerven game_robbery_color_green=zelen game_robbery_color_blue=modr diff --git a/core/assets/common/game/_global/stats.png b/core/assets/common/game/_global/stats.png new file mode 100644 index 0000000000000000000000000000000000000000..6653080bd64497e175c050d5daa2eabd0ca4b3a2 Binary files /dev/null and b/core/assets/common/game/_global/stats.png differ diff --git a/core/assets/common/game/_global/time.png b/core/assets/common/game/_global/time.png new file mode 100644 index 0000000000000000000000000000000000000000..d76c55eaca7633c8c565efe4eea6273c02d7b2f5 Binary files /dev/null and b/core/assets/common/game/_global/time.png differ diff --git a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java index 36b41dab973e9dc3d9787bc3d806d57b0920402c..544e8284d81c659ba0e17e334d2d3862bf10bbc0 100644 --- a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java +++ b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java @@ -2,16 +2,20 @@ package cz.nic.tablexia.game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Music; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.Action; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Cell; import com.badlogic.gdx.scenes.scene2d.ui.Dialog; +import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Stack; import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Align; import net.engio.mbassy.listener.Handler; @@ -29,13 +33,13 @@ import cz.nic.tablexia.bus.event.DimmerControlEvent; import cz.nic.tablexia.bus.event.MenuControlEvent; import cz.nic.tablexia.game.common.TablexiaRandom; import cz.nic.tablexia.game.difficulty.GameDifficulty; +import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.ui.TablexiaButton; import cz.nic.tablexia.util.ui.dialog.TwoButtonDialog; -import cz.nic.tablexia.util.ui.dialog.text.DialogTextContent; import static com.badlogic.gdx.scenes.scene2d.actions.Actions.delay; import static com.badlogic.gdx.scenes.scene2d.actions.Actions.run; @@ -95,16 +99,33 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> private static final String GAME_GLOBAL_PATH = "game/_global/"; private static final String GLOBAL_ATLAS_NAME = GAME_GLOBAL_PATH + "_global.atlas"; - private static final String VICTORYSCREEN_SHOW_SOUND = GAME_GLOBAL_PATH + "victoryscreen_show.mp3"; private static final String RATINGSTAR1_SOUND = GAME_GLOBAL_PATH + "victoryscreen_star1.mp3"; private static final String RATINGSTAR2_SOUND = GAME_GLOBAL_PATH + "victoryscreen_star2.mp3"; private static final String RATINGSTAR3_SOUND = GAME_GLOBAL_PATH + "victoryscreen_star3.mp3"; - - public static final String VICTORYSCREEN_RESULTSBANNER = "resultsbanner"; - public static final String VICTORYSCREEN_RATINGSTAR_DISABLED = "ratingstar_disabled"; - public static final String VICTORYSCREEN_RATINGSTAR_ENABLED = "ratingstar_enabled"; - - private static final int VICTORYSCREEN_SHOW_SOUND_DELAY = 2; + private static final String VICTORY_DIALOG_SHOW_SOUND = GAME_GLOBAL_PATH + "victoryscreen_show.mp3"; + + public static final String VICTORY_DIALOG_RESULTSBANNER = "resultsbanner"; + public static final String VICTORY_DIALOG_RATINGSTAR_DISABLED = "ratingstar_disabled"; + public static final String VICTORY_DIALOG_RATINGSTAR_ENABLED = "ratingstar_enabled"; + public static final String VICTORY_DIALOG_SUMMARY_ICON_STATS = "stats"; + public static final String VICTORY_DIALOG_SUMMARY_ICON_TIME = "time"; + private static final String VICTORY_DIALOG_TUTORIAL_TEXT = "victoryscreen_text_tutorial"; + + private static final float VICTORY_DIALOG_BUTTON_TEXT_SCALE = 0.7f; + private static final String VICTORY_DIALOG_BUTTON_TEXT_FONT_TYPE = ApplicationFontManager.APPLICATION_DEFAULT_FONT_BOLD; + private static final Color VICTORY_DIALOG_BUTTON_TEXT_FONT_COLOR = Color.BLACK; + + private static final int VICTORY_DIALOG_SHOW_SOUND_DELAY = 2; + + private static final String VICTORY_DIALOG_TEXT_FONT_TYPE = ApplicationFontManager.APPLICATION_DEFAULT_FONT_REGULAR; + private static final float VICTORY_DIALOG_TEXT_FONT_SCALE = 0.8f; + private static final int VICTORY_DIALOG_TEXT_PADDING_BOTTOM = 25; + private static final int VICTORY_DIALOG_TEXT_PADDING_TOP = 15; + private static final Color VICTORY_DIALOG_TEXT_FONT_COLOR = Color.BLACK; + private static final float VICTORY_DIALOG_SUMMARY_IMAGE_SIZE = 0.7f; + private static final Color VICTORY_DIALOG_SUMMARY_FONT_COLOR = Color.DARK_GRAY; + private static final String VICTORY_DIALOG_SUMMARY_FONT_TYPE = ApplicationFontManager.APPLICATION_DEFAULT_FONT_REGULAR; + private static final float VICTORY_DIALOG_SUMMARY_TEXT_SIZE = 0.7f; public static final String RANDOM_SEED_SCREEN_INFO_LABEL = "Random Seed"; public static final String GAME_DIFFICULTY_SCREEN_INFO_LABEL = "Game Difficulty"; @@ -202,7 +223,7 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> @Override protected final void prepareScreenSoundAssetNames(List<String> soundsFileNames) { prepareGameSoundAssetNames(soundsFileNames); - loadSound(VICTORYSCREEN_SHOW_SOUND); + loadSound(VICTORY_DIALOG_SHOW_SOUND); loadSound(RATINGSTAR1_SOUND); loadSound(RATINGSTAR2_SOUND); loadSound(RATINGSTAR3_SOUND); @@ -335,6 +356,41 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> private final float DIALOG_POSITION_X = (AbstractTablexiaGame.this.getStage().getWidth() / 2) - (DIALOG_WIDTH / 2); private final float DIALOG_POSITION_Y = (TablexiaSettings.getMinWorldHeight() / 2) - (DIALOG_HEIGHT / 2); // TODO fix for floating screen + public enum SummaryImage { + + STATS (VICTORY_DIALOG_SUMMARY_ICON_STATS), + TIME (VICTORY_DIALOG_SUMMARY_ICON_TIME); + + private String imageName; + + SummaryImage(String imageName) { + this.imageName = imageName; + } + + public String getImageName() { + return imageName; + } + } + + public static class SummaryMessage { + + private final SummaryImage summaryImage; + private final String text; + + public SummaryMessage(SummaryImage summaryImage, String text) { + this.summaryImage = summaryImage; + this.text = text; + } + + public SummaryImage getSummaryImage() { + return summaryImage; + } + + public String getText() { + return text; + } + } + private class VictoryDialog extends TwoButtonDialog { public static final int RATINGSTARS_COUNT = 3; @@ -349,13 +405,13 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> private Music victorySpeech; private Table ratingStarTable; - public VictoryDialog(String text) { + public VictoryDialog() { super(DIALOG_POSITION_X, DIALOG_POSITION_Y, DIALOG_WIDTH, DIALOG_HEIGHT, BackGroundType.DIALOG_SQUARE_BORDERLINES, - new DialogTextContent(text), + null, TablexiaButton.ButtonType.BLUE, TablexiaButton.ButtonType.GREEN, ApplicationTextManager.getInstance().getText(ApplicationTextManager.ApplicationTextsAssets.VICTORYSCREEN_BUTTON_CHANGEGAME), @@ -379,7 +435,7 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> @Override protected void prepareContent() { // RESULTS BANNER - Image resultsBanner = new Image(getGameGlobalTextureRegion(VICTORYSCREEN_RESULTSBANNER)); + Image resultsBanner = new Image(getGameGlobalTextureRegion(VICTORY_DIALOG_RESULTSBANNER)); float resultBannerWidth = getWidth() * RESULTSBANNER_WIDTH_RATIO; float resultsBannerSizeRatio = resultBannerWidth / resultsBanner.getWidth(); getContentTable().add(resultsBanner).width(resultBannerWidth).height(resultsBanner.getHeight() * resultsBannerSizeRatio).padTop(getHeight() * RESULTSBANNER_TOPPADDING_RATIO).center().colspan(3); @@ -393,13 +449,61 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> } getContentTable().add(ratingStarTable).center(); getContentTable().row(); + + // MAIN TEXT + String victoryDialogText; + if (getGameDifficulty() == GameDifficulty.TUTORIAL) { + victoryDialogText = ApplicationTextManager.getInstance().getText(VICTORY_DIALOG_TUTORIAL_TEXT); + } else { + String textKey = getTextKeyForGameResult(game.getGameResult()); + victoryDialogText = textKey != null ? getText(textKey) : ""; + } + getContentTable().row(); + Label resultText = new Label(victoryDialogText, new Label.LabelStyle(ApplicationFontManager.getInstance().getFont(VICTORY_DIALOG_TEXT_FONT_TYPE), VICTORY_DIALOG_TEXT_FONT_COLOR)); + resultText.setAlignment(Align.center); + resultText.setFontScale(VICTORY_DIALOG_TEXT_FONT_SCALE); + getContentTable().add(resultText).padBottom(VICTORY_DIALOG_TEXT_PADDING_BOTTOM).padTop(VICTORY_DIALOG_TEXT_PADDING_TOP).center(); + getContentTable().row(); + + // SUMMARY TEXT + HorizontalGroup horizontalGroup = new HorizontalGroup(); + List<SummaryMessage> summaryMessages = getSummaryMessageForGameResult(getGame()); + if (summaryMessages != null) { + for (SummaryMessage summaryMessage : summaryMessages) { + horizontalGroup.addActor(createSummaryGroup(summaryMessage)); + } + } + getContentTable().add(horizontalGroup).padBottom(15).center(); + getContentTable().row(); + super.prepareContent(); } + private HorizontalGroup createSummaryGroup(SummaryMessage summaryMessage) { + HorizontalGroup horizontalGroup = new HorizontalGroup(); + + if (summaryMessage.getSummaryImage() != null) { + Image image = new Image(getGameGlobalTextureRegion(summaryMessage.getSummaryImage().getImageName())); + image.setOrigin(Align.center); + image.setScale(VICTORY_DIALOG_SUMMARY_IMAGE_SIZE); + horizontalGroup.addActor(image); + } + + if (summaryMessage.getText() != null) { + BitmapFont font = ApplicationFontManager.getInstance().getFont(VICTORY_DIALOG_SUMMARY_FONT_TYPE); + font.getData().markupEnabled = true; + Label summaryText = new Label(summaryMessage.getText(), new Label.LabelStyle(font, VICTORY_DIALOG_SUMMARY_FONT_COLOR)); + summaryText.setFontScale(VICTORY_DIALOG_SUMMARY_TEXT_SIZE); + horizontalGroup.addActor(summaryText); + } + + return horizontalGroup; + } + private void createRatingStar(int starNumber, Table ratingStartTable) { Stack ratingStack = new Stack(); - Image ratingStarDisabled = new Image(getGameGlobalTextureRegion(VICTORYSCREEN_RATINGSTAR_DISABLED)); - Image ratingStarEnabled = new Image(getGameGlobalTextureRegion(VICTORYSCREEN_RATINGSTAR_ENABLED)); + Image ratingStarDisabled = new Image(getGameGlobalTextureRegion(VICTORY_DIALOG_RATINGSTAR_DISABLED)); + Image ratingStarEnabled = new Image(getGameGlobalTextureRegion(VICTORY_DIALOG_RATINGSTAR_ENABLED)); ratingStarEnabled.setVisible(false); ratingStarsEnabled[starNumber] = ratingStarEnabled; @@ -418,13 +522,13 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> final GameResult gameResult = game.getGameResult(); // victory dialog sound - getSound(VICTORYSCREEN_SHOW_SOUND, false).play(); + getSound(VICTORY_DIALOG_SHOW_SOUND, false).play(); if (getGameDifficulty() != GameDifficulty.TUTORIAL) { // result speech final String soundNameForGameResult = getSoundNameForGameResult(gameResult); if (soundNameForGameResult != null) { - addAction(sequence(delay(VICTORYSCREEN_SHOW_SOUND_DELAY), run(new Runnable() { + addAction(sequence(delay(VICTORY_DIALOG_SHOW_SOUND_DELAY), run(new Runnable() { @Override public void run() { victorySpeech = getMusic(soundNameForGameResult); @@ -454,6 +558,13 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> return this; } + @Override + public void createButton(TextButton textButton, ClickListener clickListener) { + textButton.getLabel().setStyle(new Label.LabelStyle(ApplicationFontManager.getInstance().getFont(VICTORY_DIALOG_BUTTON_TEXT_FONT_TYPE), VICTORY_DIALOG_BUTTON_TEXT_FONT_COLOR)); + textButton.getLabel().setFontScale(VICTORY_DIALOG_BUTTON_TEXT_SCALE); + super.createButton(textButton, clickListener); + } + @Override public void hide(Action action) { if (victorySpeech != null) { @@ -490,15 +601,7 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> gamePhase = GamePhase.FINISHED; game.endGame(); Log.info(getClass(), "[DB] Ended game: " + game); - - String victoryDialogText; - if (getGameDifficulty() == GameDifficulty.TUTORIAL) { - victoryDialogText = ApplicationTextManager.getInstance().getText("victoryscreen_text_tutorial"); - } else { - String textKey = getTextKeyForGameResult(game.getGameResult()); - victoryDialogText = textKey != null ? getText(textKey) : ""; - } - (new VictoryDialog(victoryDialogText)).show(getStage()); + (new VictoryDialog()).show(getStage()); } public void startNewGame() { @@ -514,6 +617,8 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> }); } + protected abstract List<SummaryMessage> getSummaryMessageForGameResult(Game game); + protected abstract String getTextKeyForGameResult(GameResult gameResult); protected abstract String getSoundNameForGameResult(GameResult gameResult); diff --git a/core/src/cz/nic/tablexia/game/games/in_the_darkness/InTheDarknessGame.java b/core/src/cz/nic/tablexia/game/games/in_the_darkness/InTheDarknessGame.java index b78515503ae86481589fcc5b564c3e2aafb9aa32..3c3d2b343d931bc336b75671307defd6ce2339ee 100644 --- a/core/src/cz/nic/tablexia/game/games/in_the_darkness/InTheDarknessGame.java +++ b/core/src/cz/nic/tablexia/game/games/in_the_darkness/InTheDarknessGame.java @@ -319,6 +319,11 @@ public class InTheDarknessGame extends AbstractTablexiaGame<List<MapWidget>> imp alignScreenContent(); } + @Override + protected List<SummaryMessage> getSummaryMessageForGameResult(Game game) { + return null; + } + @Override protected String getTextKeyForGameResult(GameResult gameResult) { switch (gameResult) { diff --git a/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java b/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java index 55b4c8a0e67fc806dac8ddbe74c4ae7af69fbbcd..86dffda7fb1270e1e70d9d64b59f887f2146cc1a 100644 --- a/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java +++ b/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java @@ -33,6 +33,7 @@ import cz.nic.tablexia.game.games.kidnapping.model.Direction; import cz.nic.tablexia.game.games.kidnapping.model.GameState; import cz.nic.tablexia.game.games.kidnapping.model.Position; import cz.nic.tablexia.game.games.kidnapping.util.DirectionsHelper; +import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.util.Log; /** @@ -193,6 +194,11 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { return 0; } + @Override + protected List<SummaryMessage> getSummaryMessageForGameResult(Game game) { + return null; + } + @Override protected String getTextKeyForGameResult(GameResult gameResult) { return null; diff --git a/core/src/cz/nic/tablexia/game/games/night_watch/NightWatchGame.java b/core/src/cz/nic/tablexia/game/games/night_watch/NightWatchGame.java index 267e21a762039033c55385f5d028db57e5094694..fcee03b6bdeda9d869d06c9a63aa9fedfdf77038 100644 --- a/core/src/cz/nic/tablexia/game/games/night_watch/NightWatchGame.java +++ b/core/src/cz/nic/tablexia/game/games/night_watch/NightWatchGame.java @@ -27,6 +27,7 @@ import cz.nic.tablexia.game.games.night_watch.helper.TextureHelper; import cz.nic.tablexia.game.games.night_watch.solution.GameSolutionGenerator; import cz.nic.tablexia.game.games.night_watch.solution.Solution; import cz.nic.tablexia.game.games.night_watch.subscene.Watch; +import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.Utility; import cz.nic.tablexia.util.ui.TablexiaButton; @@ -194,7 +195,7 @@ public class NightWatchGame extends AbstractTablexiaGame<int[][]> { Action action = new Action() { @Override public boolean act(float delta) { - Log.info(getClass(),"PLAY"); + Log.info(getClass(), "PLAY"); userPlaying = true; enableClickables(true); return true; @@ -345,6 +346,11 @@ public class NightWatchGame extends AbstractTablexiaGame<int[][]> { return new Color(getData()[clickX][clickY]); } + @Override + protected List<SummaryMessage> getSummaryMessageForGameResult(Game game) { + return null; + } + @Override protected String getTextKeyForGameResult(GameResult gameResult) { return null; diff --git a/core/src/cz/nic/tablexia/game/games/pursuit/PursuitGame.java b/core/src/cz/nic/tablexia/game/games/pursuit/PursuitGame.java index d9aaa13055677dafdefbf0e57c5540fb619b00c5..4f217d5e3945ad6552c0b6c9700c6e1c445e7a97 100644 --- a/core/src/cz/nic/tablexia/game/games/pursuit/PursuitGame.java +++ b/core/src/cz/nic/tablexia/game/games/pursuit/PursuitGame.java @@ -8,6 +8,7 @@ import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.utils.Array; +import java.util.List; import java.util.Map; import cz.nic.tablexia.TablexiaSettings; @@ -255,6 +256,11 @@ public class PursuitGame extends AbstractTablexiaGame<int[][]> { finishFlag.setVisible(true); } + @Override + protected List<SummaryMessage> getSummaryMessageForGameResult(Game game) { + return null; + } + @Override protected String getTextKeyForGameResult(GameResult gameResult) { return ResultMapping.getResultTextMappingForGameResult(gameResult).getTextKey(); diff --git a/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java b/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java index 2807054c2d914d4d7a2047d3ae307699d0c4634c..b150a18a2580a051e69a36a83ac08489e81e48e3 100644 --- a/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java +++ b/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java @@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.InputMultiplexer; import com.badlogic.gdx.InputProcessor; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -13,6 +14,7 @@ import cz.nic.tablexia.game.games.robbery.assets.RobberyAssets; import cz.nic.tablexia.game.games.robbery.creature.CreatureFactory; import cz.nic.tablexia.game.games.robbery.rules.GameRule; import cz.nic.tablexia.game.games.robbery.rules.GameRulesDefinition; +import cz.nic.tablexia.model.User; import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.screen.AbstractTablexiaScreen; @@ -69,6 +71,10 @@ public class RobberyGame extends AbstractTablexiaGame<GameRule> { } } + private static final String SUMMARY_TEXT_KEY = "game_robbery_victorytext_summary"; + private static final String SUMMARY_IDENTIFICATION_MALE_TEXT_KEY = "game_robbery_victorytext_summary_identification_male"; + private static final String SUMMARY_IDENTIFICATION_FEMALE_TEXT_KEY = "game_robbery_victorytext_summary_identification_female"; + private static final String SCORE_KEY_PERSON_COUNT = "person_count"; private static final String SCORE_KEY_THIEVES_COUNT = "thieves_count"; private static final String SCORE_KEY_CAUGHT_THIEF = "caught_thief"; @@ -190,6 +196,13 @@ public class RobberyGame extends AbstractTablexiaGame<GameRule> { //////////////////////////// ABSTRACT TABLEXIA GAME + + @Override + protected List<SummaryMessage> getSummaryMessageForGameResult(Game game) { + String identification = game.getUser().getGender() == User.Gender.MALE ? getText(SUMMARY_IDENTIFICATION_MALE_TEXT_KEY) : getText(SUMMARY_IDENTIFICATION_FEMALE_TEXT_KEY); + return Arrays.asList(new SummaryMessage(null, getFormattedText(SUMMARY_TEXT_KEY, identification, game.getGameScore(SCORE_KEY_PERSON_NUMBER, "0"), game.getGameScore(SCORE_KEY_PERSON_COUNT)))); + } + @Override protected String getTextKeyForGameResult(GameResult gameResult) { return ResultMapping.getResultTextMappingForGameResult(gameResult).getTextKey(); diff --git a/core/src/cz/nic/tablexia/game/games/shooting_range/ShootingRangeGame.java b/core/src/cz/nic/tablexia/game/games/shooting_range/ShootingRangeGame.java index 9dd3d41dedce5ba21ecd512f4a9fd13e8ba7af58..bb83ce3e1c656a6c05565ed35292fc3e4686a65d 100644 --- a/core/src/cz/nic/tablexia/game/games/shooting_range/ShootingRangeGame.java +++ b/core/src/cz/nic/tablexia/game/games/shooting_range/ShootingRangeGame.java @@ -30,6 +30,7 @@ import cz.nic.tablexia.game.games.shooting_range.tools.HitEvaluator; import cz.nic.tablexia.game.games.shooting_range.tools.PixelPerfectHitEvaluator; import cz.nic.tablexia.game.games.shooting_range.tools.TargetGenerator; import cz.nic.tablexia.game.games.shooting_range.tools.TargetPositionController; +import cz.nic.tablexia.model.game.Game; /** * Created by lhoracek @@ -273,6 +274,11 @@ public class ShootingRangeGame extends AbstractTablexiaGame<GameState> { score.setPosition(getStage().getWidth() - score.getWidth() - 50, 25); } + @Override + protected List<SummaryMessage> getSummaryMessageForGameResult(Game game) { + return null; + } + @Override protected String getTextKeyForGameResult(GameResult gameResult) { return Properties.RESULT_TEXT[gameResult.getStarCount()]; diff --git a/core/src/cz/nic/tablexia/model/game/Game.java b/core/src/cz/nic/tablexia/model/game/Game.java index fffaf60825e79b3870d6f6f573531459e88f4039..d76836e08d5d7802aa81874a5967ea05d66ff6c6 100644 --- a/core/src/cz/nic/tablexia/model/game/Game.java +++ b/core/src/cz/nic/tablexia/model/game/Game.java @@ -160,6 +160,11 @@ public class Game { }).start(); } + public String getGameScore(String key, String defaultValue) { + String gameScore = getGameScore(key); + return gameScore != null ? gameScore : defaultValue; + } + public String getGameScore(String key) { return gameScoreMap.get(key); } diff --git a/core/src/cz/nic/tablexia/util/ui/TablexiaButton.java b/core/src/cz/nic/tablexia/util/ui/TablexiaButton.java index 059dfef4fdb54428decf18ecda24dd2dd4ed79df..d37e271804cce0ba0043181830639398e6e5d89c 100644 --- a/core/src/cz/nic/tablexia/util/ui/TablexiaButton.java +++ b/core/src/cz/nic/tablexia/util/ui/TablexiaButton.java @@ -73,8 +73,8 @@ public class TablexiaButton extends TextButton { } public TablexiaButton(NinePatchDrawable npdUp, NinePatchDrawable npdDown, NinePatchDrawable npdDis, NinePatchDrawable solarizedBackground, String buttonText) { - super(buttonText, getButtonStyle(npdUp, npdDown, npdDis)); - + super(buttonText, new TextButton.TextButtonStyle(npdUp, npdDown, npdDis, ApplicationFontManager.getInstance().getFont(DEFAULT_BUTTON_TEXT_FONT))); + getStyle().fontColor = DEFAULT_BUTTON_TEXT_COLOR; if (solarizedBackground != null) { solarizedBackgroundImage = new Image(solarizedBackground); solarizedBackgroundImage.setSize(getWidth(), getHeight()); @@ -110,12 +110,6 @@ public class TablexiaButton extends TextButton { } } - private static TextButton.TextButtonStyle getButtonStyle(NinePatchDrawable npdUp, NinePatchDrawable npdDown, NinePatchDrawable npdDis){ - TextButton.TextButtonStyle textButtonStyle = new TextButton.TextButtonStyle(npdUp, npdDown, npdDis, ApplicationFontManager.getInstance().getFont(DEFAULT_BUTTON_TEXT_FONT)); - textButtonStyle.fontColor = DEFAULT_BUTTON_TEXT_COLOR; - return textButtonStyle; - } - public void highliteButton(boolean enable) { if (solarizedBackgroundImage != null) { if (enable) { diff --git a/core/src/cz/nic/tablexia/util/ui/dialog/TextDialog.java b/core/src/cz/nic/tablexia/util/ui/dialog/TextDialog.java index e054caefde8e48cbabaab3616d539ab043f77d73..f329135713ad0e183657386152e711e5cba8c21f 100644 --- a/core/src/cz/nic/tablexia/util/ui/dialog/TextDialog.java +++ b/core/src/cz/nic/tablexia/util/ui/dialog/TextDialog.java @@ -30,11 +30,13 @@ public class TextDialog extends TablexiaDialog { @Override protected void prepareContent() { - if (dialogTextContent.getTitle() != null && !dialogTextContent.getTitle().equals("")) { - addLabel(dialogTextContent.getTitle(), ApplicationFontManager.getInstance().getFont(ApplicationFontManager.APPLICATION_DEFAULT_FONT_BOLD)); - getContentTable().row(); + if (dialogTextContent != null) { + if (dialogTextContent.getTitle() != null && !dialogTextContent.getTitle().equals("")) { + addLabel(dialogTextContent.getTitle(), ApplicationFontManager.getInstance().getFont(ApplicationFontManager.APPLICATION_DEFAULT_FONT_BOLD)); + getContentTable().row(); + } + addLabel(dialogTextContent.getContent(), ApplicationFontManager.getInstance().getFont(ApplicationFontManager.APPLICATION_DEFAULT_FONT_REGULAR)).center().expand().top().fillX(); } - addLabel(dialogTextContent.getContent(), ApplicationFontManager.getInstance().getFont(ApplicationFontManager.APPLICATION_DEFAULT_FONT_REGULAR)).center().expand().top().fillX(); } protected Cell<Label> addLabel(String text, BitmapFont font) {