Deck managemement, snapping cards into partial decks and partial decks into cards, or partial decks into other partial decks. Snapping is great!
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
android {
|
||||
buildToolsVersion "23.0.1"
|
||||
buildToolsVersion '23.0.2'
|
||||
compileSdkVersion 21
|
||||
sourceSets {
|
||||
main {
|
||||
|
||||
@@ -4,7 +4,7 @@ buildscript {
|
||||
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:1.2.3'
|
||||
classpath 'com.android.tools.build:gradle:2.0.0-alpha1'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ public class Card {
|
||||
private boolean faceUp;
|
||||
private boolean decked;
|
||||
private int deckId;
|
||||
private boolean stacked;
|
||||
private int stackid;
|
||||
//private boolean onTable;
|
||||
//private float orientation;
|
||||
|
||||
@@ -62,6 +64,8 @@ public class Card {
|
||||
this.faceUp = false;
|
||||
this.decked = true;
|
||||
this.deckId = 1;
|
||||
this.stacked = false;
|
||||
this.stackid = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -166,4 +170,23 @@ public class Card {
|
||||
public void setDeckId(int deckId) {
|
||||
this.deckId = deckId;
|
||||
}
|
||||
|
||||
public void setStackid(int stackid) {
|
||||
this.stackid = stackid;
|
||||
}
|
||||
|
||||
public void setStacked(boolean stacked) {
|
||||
|
||||
this.stacked = stacked;
|
||||
}
|
||||
|
||||
public int getStackid() {
|
||||
|
||||
return stackid;
|
||||
}
|
||||
|
||||
public boolean isStacked() {
|
||||
|
||||
return stacked;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ public class Deck {
|
||||
private HashMap<Integer,Integer> drawOrder;
|
||||
private int numberOfCards;
|
||||
private int deckCounter;
|
||||
private int stackCounter;
|
||||
|
||||
public Deck(Texture texture) {
|
||||
try {
|
||||
@@ -37,6 +38,7 @@ public class Deck {
|
||||
|
||||
this.numberOfCards = 54;
|
||||
this.deckCounter = 1;
|
||||
this.stackCounter = 0;
|
||||
|
||||
}catch (Exception e)
|
||||
{
|
||||
@@ -190,6 +192,7 @@ public class Deck {
|
||||
|
||||
return cardResult;
|
||||
}
|
||||
|
||||
public Integer getTouchedCardIndex(float x, float y){
|
||||
|
||||
int i = numberOfCards - 1;
|
||||
@@ -204,6 +207,22 @@ public class Deck {
|
||||
}
|
||||
return (Integer)i;
|
||||
}
|
||||
|
||||
public Integer getCardIndex(Card c){
|
||||
int i = numberOfCards - 1;
|
||||
boolean exit = false;
|
||||
|
||||
while (i >= 0 && !exit){
|
||||
if (drawOrder.get(i) == c.getId()) {
|
||||
exit = true;
|
||||
}else{
|
||||
i--;
|
||||
}
|
||||
}
|
||||
return (Integer)i;
|
||||
|
||||
}
|
||||
|
||||
public Card getTouchedCard(float x, float y, int top){
|
||||
|
||||
Card cardResult = null;
|
||||
@@ -221,59 +240,7 @@ public class Deck {
|
||||
return cardResult;
|
||||
}
|
||||
|
||||
private void setCardDrawOrderOnTop(int index){
|
||||
|
||||
int i = index;
|
||||
int next = 0;
|
||||
int replace = drawOrder.get(index);;
|
||||
|
||||
while (i < numberOfCards){
|
||||
if (i < numberOfCards-1) {
|
||||
next = drawOrder.get(i + 1);
|
||||
drawOrder.put(i,next);
|
||||
i++;
|
||||
}else{
|
||||
drawOrder.put(i,replace);
|
||||
i++;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//TODO Make sure it orders the cards up to the top
|
||||
private void setCardDrawOrderOnTopSubDeck(int index, int last){
|
||||
|
||||
int i = index;
|
||||
int next = 0;
|
||||
int replace = drawOrder.get(index);
|
||||
|
||||
while (i < last){
|
||||
if (i < last - 1) {
|
||||
next = drawOrder.get(i + 1);
|
||||
drawOrder.put(i,next);
|
||||
i++;
|
||||
}else{
|
||||
drawOrder.put(i,replace);
|
||||
i++;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setRandomCardDraw(ArrayList<Integer> subDeck){
|
||||
ArrayList<Integer> originalOrder = (ArrayList<Integer>) subDeck.clone();
|
||||
|
||||
Collections.shuffle(subDeck);
|
||||
Integer replace;
|
||||
for (int i = 0; i < originalOrder.size(); i++){
|
||||
replace = drawOrder.get(originalOrder.get(i));
|
||||
drawOrder.put(originalOrder.get(i),drawOrder.get(subDeck.get(i)));
|
||||
drawOrder.put(subDeck.get(i),replace);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void shuffle(float x, float y){
|
||||
//TODO Change this method, the top may not work when cards already unsorted
|
||||
|
||||
ArrayList<Integer> subDeck = new ArrayList<Integer>();
|
||||
Card c;
|
||||
@@ -374,6 +341,7 @@ public class Deck {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Card getTouchedCardDifferentDeck(float x, float y, int deckiId){
|
||||
Card cardResult = null;
|
||||
int i = numberOfCards - 1;
|
||||
@@ -393,8 +361,6 @@ public class Deck {
|
||||
return cardResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void autoDeckCard(float x, float y) {
|
||||
Card c = getTouchedCard(x, y);
|
||||
Card below;
|
||||
@@ -437,6 +403,32 @@ public class Deck {
|
||||
}
|
||||
}
|
||||
|
||||
public void autoStackCard(float x, float y){
|
||||
|
||||
}
|
||||
|
||||
public void toggleFaceUpDeck(Card c, boolean originalDecked, float x, float y){
|
||||
int deckId = c.getDeckId();
|
||||
int i = numberOfCards - 1;
|
||||
int cardDeck;
|
||||
boolean exit = false;
|
||||
Card card;
|
||||
|
||||
if (!originalDecked){
|
||||
c.toggleFaceUp();
|
||||
}
|
||||
else{
|
||||
while (i >= 0 && !exit){
|
||||
card = cards.get(drawOrder.get(i));
|
||||
cardDeck = card.getDeckId();
|
||||
if (cardDeck == deckId) {
|
||||
card.toggleFaceUp();
|
||||
}
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public HashMap<Integer,Integer> getDrawOrder() {
|
||||
return drawOrder;
|
||||
}
|
||||
@@ -452,4 +444,56 @@ public class Deck {
|
||||
public void setDeckCounter(int deckCounter) {
|
||||
this.deckCounter = deckCounter;
|
||||
}
|
||||
|
||||
private void setCardDrawOrderOnTop(int index){
|
||||
|
||||
int i = index;
|
||||
int next = 0;
|
||||
int replace = drawOrder.get(index);;
|
||||
|
||||
while (i < numberOfCards){
|
||||
if (i < numberOfCards-1) {
|
||||
next = drawOrder.get(i + 1);
|
||||
drawOrder.put(i,next);
|
||||
i++;
|
||||
}else{
|
||||
drawOrder.put(i,replace);
|
||||
i++;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setCardDrawOrderOnTopSubDeck(int index, int last){
|
||||
|
||||
int i = index;
|
||||
int next = 0;
|
||||
int replace = drawOrder.get(index);
|
||||
|
||||
while (i < last){
|
||||
if (i < last - 1) {
|
||||
next = drawOrder.get(i + 1);
|
||||
drawOrder.put(i,next);
|
||||
i++;
|
||||
}else{
|
||||
drawOrder.put(i,replace);
|
||||
i++;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setRandomCardDraw(ArrayList<Integer> subDeck){
|
||||
ArrayList<Integer> originalOrder = (ArrayList<Integer>) subDeck.clone();
|
||||
|
||||
Collections.shuffle(subDeck);
|
||||
Integer replace;
|
||||
for (int i = 0; i < originalOrder.size(); i++){
|
||||
replace = drawOrder.get(originalOrder.get(i));
|
||||
drawOrder.put(originalOrder.get(i),drawOrder.get(subDeck.get(i)));
|
||||
drawOrder.put(subDeck.get(i),replace);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -162,15 +162,17 @@ public class VirtuaCardsGameScreen implements Screen, InputProcessor {
|
||||
@Override
|
||||
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||
Card c;
|
||||
boolean decked = false;
|
||||
Gdx.app.error("VirtuaCardsGameScreen", "TouchUp");
|
||||
if (dragCounter > 0) {
|
||||
c = fullDeck.getTouchedDraggedCard(screenX, Gdx.graphics.getHeight() - screenY);
|
||||
if (c != null) {
|
||||
decked = c.isDecked();
|
||||
fullDeck.autoDeckCard(screenX, Gdx.graphics.getHeight() - screenY);
|
||||
|
||||
if (Point.pointListInsideDoubleTouchedDrag(dragBuffer, 75, 150)) { //flip card
|
||||
//fullDeck.getCards().get(52).setFaceUp(true);
|
||||
c.toggleFaceUp();
|
||||
fullDeck.toggleFaceUpDeck(c, decked, screenX, Gdx.graphics.getHeight() - screenY);
|
||||
//c.toggleFaceUp();
|
||||
}
|
||||
|
||||
if (cardCounter > 0){
|
||||
|
||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
||||
#Sat Sep 21 13:08:26 CEST 2013
|
||||
#Thu Dec 10 21:15:17 GMT 2015
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=http\://services.gradle.org/distributions/gradle-2.4-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
|
||||
|
||||
Reference in New Issue
Block a user