diff --git a/core/assets/common/game/runes/common/gfx/background.jpg b/core/assets/common/game/runes/common/gfx/background.jpg deleted file mode 100644 index 1a2cd4e7ce1008d9db274f2df84d7b521fe160ac..0000000000000000000000000000000000000000 Binary files a/core/assets/common/game/runes/common/gfx/background.jpg and /dev/null differ diff --git a/core/assets/common/game/runes/common/gfx/background.png b/core/assets/common/game/runes/common/gfx/background.png new file mode 100644 index 0000000000000000000000000000000000000000..43ad54697e94ca5022bd74b951cc0bac327af1a1 Binary files /dev/null and b/core/assets/common/game/runes/common/gfx/background.png differ diff --git a/core/src/cz/nic/tablexia/game/games/runes/RunesGame.java b/core/src/cz/nic/tablexia/game/games/runes/RunesGame.java index 9057abde025cc1aeb2e54b18e9444826b67cfbb8..0619ff2ff80688881480249baa6357d3176b9d41 100644 --- a/core/src/cz/nic/tablexia/game/games/runes/RunesGame.java +++ b/core/src/cz/nic/tablexia/game/games/runes/RunesGame.java @@ -40,7 +40,6 @@ import cz.nic.tablexia.shared.model.Game; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.Utility; import cz.nic.tablexia.util.ui.TablexiaLabel; -import cz.nic.tablexia.util.ui.actionwidget.Action; import cz.nic.tablexia.util.ui.dialog.components.FixedSpaceContentDialogComponent; import cz.nic.tablexia.util.ui.dialog.components.TablexiaDialogComponentAdapter; import cz.nic.tablexia.util.ui.dialog.components.TextContentDialogComponent; @@ -52,7 +51,7 @@ public class RunesGame extends AbstractTablexiaGame<RunesGameState> { private static final int ONE_SECOND_DELAY = 1; - private static final float SIDEBAR_RELATIVE_WIDTH = 0.17f; + public static final float SIDEBAR_RELATIVE_WIDTH = 0.17f; private static final int SIDEBAR_ITEMS_PAD = 10; private static final float TARGET_PLATE_RELATIVE_HEIGHT = 0.45f; private static final float HEALTHBAR_RELATIVE_HEIGHT = 0.2f; diff --git a/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java b/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java index 0333666f5510eda1b69b7e9a581262a6eed8e789..e7c643bd60eed1917f97b8231cb628c2109b8439 100644 --- a/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java +++ b/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java @@ -14,7 +14,7 @@ import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.game.common.TablexiaRandom; import cz.nic.tablexia.game.common.media.GfxLibrary; import cz.nic.tablexia.game.difficulty.GameDifficulty; -import cz.nic.tablexia.game.games.runes.assets.RuneDefinition; +import cz.nic.tablexia.game.games.runes.RunesGame; import cz.nic.tablexia.game.games.runes.helper.PositionDefinition; import cz.nic.tablexia.game.games.runes.helper.RuneDescription; import cz.nic.tablexia.game.games.runes.model.RunesDifficultyDefinition; @@ -80,10 +80,6 @@ public class RunesHolder extends Group { return false; } - public int getRunesCount() { - return runesCount; - } - public int getWrongRunesCount() { return runesCount - holderTargets.size(); } @@ -135,10 +131,6 @@ public class RunesHolder extends Group { setWidth(getWidth() + actor.getWidth() + runesGroup.getSpace()); } - public void setHolderTargets(List<RuneDescription> runeDescriptions) { - holderTargets = runeDescriptions; - } - /** * Set scale value depending on position (folded holder can be smaller/bigger depending on PositionDefinition values) * @@ -182,11 +174,12 @@ public class RunesHolder extends Group { setTouchable(Touchable.childrenOnly); toFront(); prevX = getX(); + float stageWidth = getStage().getWidth() * (1-RunesGame.SIDEBAR_RELATIVE_WIDTH); float prevMid = prevX + getWidth() * 0.5f * getScaleX(); setScale(UNFOLDED_SCALE); float newX = prevMid - getWidth() * getScaleX() * 0.5f; - if (newX + getWidth() * getScaleX() >= getStage().getWidth() - PAD) { - setX(getStage().getWidth() - PAD - getWidth() * getScaleX()); + if (newX + getWidth() * getScaleX() >= stageWidth - PAD) { + setX(stageWidth - PAD - getWidth() * getScaleX()); } else if (newX <= 0) { setX(PAD); } else { @@ -204,7 +197,7 @@ public class RunesHolder extends Group { prevX = 0; setAlternativeScale(positionDefinition.getScale()); setPosition(positionDefinition.getX() * width, positionDefinition.getY() * height); - maxEntities = positionDefinition.getMaxRunes(); + maxEntities = PositionDefinition.getMaxChildrenCount(gameDifficulty,positionDefinition); } public boolean isFolded() { diff --git a/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java b/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java index c23806bde6b8efc631a0930b49fac02b37f935f6..386df74e77e2bdde890f55a79644454bf8146259 100644 --- a/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java +++ b/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java @@ -14,43 +14,35 @@ import cz.nic.tablexia.game.games.runes.model.RunesGameProperties; */ public enum PositionDefinition { - //x,y, max height, max runes - - POS1(0.22f,0.14f), - POS2(0.22f,0.51f), - POS3(0.22f,0.87f), - POS4(0.58f,0.71f,3), - POS5(0.58f,0.37f,3), - POS6(0.58f,0.01f,3), - POS7(0.04f,0.57f,2), - POS8(0.02f,0.19f,2); + //x,y, max runes, max runes clusters + + POS1(0.24f, 0.14f, 5, 4), + POS2(0.24f, 0.51f, 5, 4), + POS3(0.24f, 0.87f, 5, 4), + POS4(0.62f, 0.71f, 3, 2), + POS5(0.62f, 0.37f, 3, 2), + POS6(0.62f, 0.01f, 3, 2), + POS7(0.01f, 0.57f, 3, 2), + POS8(0.01f, 0.19f, 3, 2); private static final float FOLDED_SCALE = 0.6f; - private static final int MAX_RUNES = 4; public static final PositionDefinition[] MAP_EASY = PositionDefinition.values(); public static final PositionDefinition[] MAP_MEDIUM = PositionDefinition.values(); //was meant to be different for every difficulty public static final PositionDefinition[] MAP_HARD = PositionDefinition.values(); private float x, y, scale; - private int maxRunes; - - PositionDefinition(float x, float y) { - this(x,y,FOLDED_SCALE,MAX_RUNES); - } - - PositionDefinition(float x, float y, float scale) { - this(x,y,scale,MAX_RUNES); - } + private int maxRunes, maxRunesClusters; - PositionDefinition(float x, float y, int maxRunes) { - this(x,y,FOLDED_SCALE,maxRunes); + PositionDefinition(float x, float y, int maxRunes, int maxRunesClusters) { + this(x, y, FOLDED_SCALE, maxRunes, maxRunesClusters); } - PositionDefinition(float x, float y, float scale, int maxRunes) { + PositionDefinition(float x, float y, float scale, int maxRunes, int maxRunesClusters) { this.x = x; this.y = y; this.maxRunes = maxRunes; + this.maxRunesClusters = maxRunesClusters; this.scale = scale; } @@ -71,6 +63,10 @@ public enum PositionDefinition { return y; } + public int getMaxRunesClusters() { + return maxRunesClusters; + } + private static List<PositionDefinition> getMapPositions(GameDifficulty runesDifficulty) { return Arrays.asList(RunesDifficultyDefinition.getRunesDifficultyForGameDifficulty(runesDifficulty).getPositionDefinitions()); } @@ -88,4 +84,9 @@ public enum PositionDefinition { return RunesDifficultyDefinition.getRunesDifficultyForGameDifficulty(gameDifficulty).getGroupsCount()[round]; } + public static int getMaxChildrenCount(GameDifficulty gameDifficulty, PositionDefinition positionDefinition){ + if (gameDifficulty.equals(GameDifficulty.HARD)) return positionDefinition.getMaxRunesClusters(); + else return positionDefinition.getMaxRunes(); + } + } diff --git a/core/src/cz/nic/tablexia/game/games/runes/model/RunesGameProperties.java b/core/src/cz/nic/tablexia/game/games/runes/model/RunesGameProperties.java index 941d024e1e49803766df33a2ca9d1575ebe71bd7..91fcebf851b419eda3981e08600a27ff346029d8 100644 --- a/core/src/cz/nic/tablexia/game/games/runes/model/RunesGameProperties.java +++ b/core/src/cz/nic/tablexia/game/games/runes/model/RunesGameProperties.java @@ -14,30 +14,30 @@ public class RunesGameProperties { public static final int[] CUPS_EASY = {15, 26, 38}; public static final int[] CUPS_MEDIUM = {15, 26, 38}; public static final int[] CUPS_HARD = {15, 26, 38}; - - public static final int[] GROUPS_EASY = {2,2,3,3,3,3,3,3,3,3,3,3}; - public static final int[] GROUPS_MEDIUM = {2,2,3,3,3,3,4,4,4,5,5,5}; - public static final int[] GROUPS_HARD = {2,2,3,3,3,3,4,4,5,5,6,6}; - - public static final int[] RUNES_COUNT = {6,7,8,9,10,11,11,12,13,13,14,15}; - public static final int[] RUNES_TO_FIND = {2,2,3,3,3,3,4,4,4,5,5,6}; //44 + + public static final int[] GROUPS_EASY = {3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6}; + public static final int[] GROUPS_MEDIUM = {3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6}; + public static final int[] GROUPS_HARD = {3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7}; + + public static final int[] RUNES_COUNT = {6, 7, 8, 9, 10, 11, 11, 12, 13, 13, 14, 15}; + public static final int[] RUNES_TO_FIND = {2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6}; //44 public static final String MFX_PATH = "common/sfx/"; - public static final String[] RESULT_SOUNDS = new String[]{ MFX_PATH + "result_0.mp3", + public static final String[] RESULT_SOUNDS = new String[]{MFX_PATH + "result_0.mp3", MFX_PATH + "result_1.mp3", MFX_PATH + "result_2.mp3", MFX_PATH + "result_3.mp3"}; - public static final String[] RESULT_TEXT = new String[]{ "game_runes_result_0", + public static final String[] RESULT_TEXT = new String[]{"game_runes_result_0", "game_runes_result_1", "game_runes_result_2", "game_runes_result_3"}; public static final String RESULT_TEXT_SUMMARY = "game_runes_stats"; - - public static int getGroupCount(GameDifficulty gameDifficulty, int round){ + + public static int getGroupCount(GameDifficulty gameDifficulty, int round) { return RunesDifficultyDefinition.getRunesDifficultyForGameDifficulty(gameDifficulty).getGroupsCount()[round]; } - + }