diff --git a/core/src/com/monjaro/gamejam/main/Die.java b/core/src/com/monjaro/gamejam/main/Die.java index 0c98816..f503352 100644 --- a/core/src/com/monjaro/gamejam/main/Die.java +++ b/core/src/com/monjaro/gamejam/main/Die.java @@ -79,6 +79,11 @@ public class Die extends Actor { return getFaceValue() <= 0; } + public void setFace(Face face) { + faces[faceIndex] = face; + face.setTransform(transform); + } + public boolean isSelected() { return selected; } diff --git a/core/src/com/monjaro/gamejam/main/Face.java b/core/src/com/monjaro/gamejam/main/Face.java index f02197a..1013b88 100644 --- a/core/src/com/monjaro/gamejam/main/Face.java +++ b/core/src/com/monjaro/gamejam/main/Face.java @@ -91,6 +91,10 @@ public class Face extends Actor{ transform.setSize(w, h); } + public void setTransform(Transform transform) { + this.transform = transform; + } + public static void setBlankFaceSprite(Texture sprite){ blankFaceSprite = sprite; } @@ -103,10 +107,6 @@ public class Face extends Actor{ return transform; } - public void setTransform(Transform transform) { - this.transform = transform; - } - public Vector2 calculatePipLocation(Vector2 percentages) { double radians = Math.toRadians(transform.rotation); @@ -129,6 +129,7 @@ public class Face extends Actor{ face.setOrigin(face.getWidth()/2, face.getHeight()/2); face.rotate(transform.getRotation()); face.setPosition(transform.x-face.getWidth()/2, transform.y-face.getHeight()/2); + face.draw(batch); for(Pip pip : pips){ diff --git a/core/src/com/monjaro/gamejam/main/Game.java b/core/src/com/monjaro/gamejam/main/Game.java index 4da005a..afdd364 100644 --- a/core/src/com/monjaro/gamejam/main/Game.java +++ b/core/src/com/monjaro/gamejam/main/Game.java @@ -107,13 +107,29 @@ public class Game extends ApplicationAdapter { } } } else { - for (int i = 0; i < dice.size(); i++) { //lock dice, iterating over for each keycode + int shopeIndex = -1; + if (input.isKeyJustPressed(Input.Keys.I)) shopeIndex = 0; + else if (input.isKeyJustPressed(Input.Keys.O)) shopeIndex = 1; + else if (input.isKeyJustPressed(Input.Keys.P)) shopeIndex = 2; + + List selected = getSelectedDice(); + if (selected.size() == 1 && shopeIndex != -1) { + Face face = getShopeIndex(shopeIndex); + + if (face != null) { + Die die = selected.get(0); + die.setFace(face); + removeShopeIndex(shopeIndex); + } + } + + for (int i = 0; i < dice.size(); i++) { //buy for or select dice, iterating over for each keycode int keyCode = Input.Keys.NUM_1 + i; //keycode for the current die, 1, 2...9, 0 on keyboard - if (input.isKeyJustPressed(keyCode)) { //if key corresponding to die has been pressed - Die die = dice.get(i); //die iterator is looking at - die.setSelected(!die.isSelected()); //flip lock state - } + if (!input.isKeyJustPressed(keyCode)) continue; + + Die die = dice.get(i); //die iterator is looking at + die.setSelected(!die.isSelected()); //flip lock state } } } @@ -220,6 +236,10 @@ public class Game extends ApplicationAdapter { } } + public Face getShopeIndex(int index) { + return shope.get(index); + } + public void removeShopeIndex(int index) { shope.remove(index); shope.add(index, null);