/// <summary> /// User takes a card from Deck and put it in a empty PositionGoal /// </summary> private void FromDeckToPositionGoal(GameObject card, GameObject newPosition) { Debug.Log("FromDeckToPositionGoal"); Card scriptCard = card.GetComponent <Card>(); PositionGoalCard scriptPosGoal = newPosition.GetComponent <PositionGoalCard>(); if (scriptCard.Value == 1 && scriptPosGoal.Seed.Equals(scriptCard.Seed)) { //Save the state of card before change it Card beforeCardStatus = scriptCard.CopyCardClass(); //Remove the card from the deck and add it to the positionalGoal scriptCard.Deck.RemoveLastCardFromWaste(); newPosition.GetComponent <PositionGoalCard>().AddCard(card); //Set the new position AddNewCardMovement(card, newPosition.transform.position); //Modify score and moves ScoreAndMoves(10); //Save the move Card afterCardStatus = scriptCard.CopyCardClass(); BackManager.instance.SaveMove(card, afterCardStatus, beforeCardStatus, 10); } else { scriptCard.SetOldOriginalPosition(); } }
public void SetPositionGoal(PositionGoalCard goal) { _column = null; _deck = null; FatherCard = null; ChildCard = null; _positionGoal = goal; }
public void SetDeck(Deck deck) { _positionGoal = null; _column = null; FatherCard = null; ChildCard = null; _deck = deck; }
/// <summary> /// Check if there are some card that can be moved from deck to a positionGoal /// </summary> private bool CheckFromDeckToPositionGoal() { Deck scriptDeck = DeckObject.GetComponent <Deck>(); Card scriptCard = scriptDeck.GetActiveCardFromWaste(); if (scriptCard != null) { PositionGoalCard positionGoal = GetExactPositionGoal(scriptCard.Seed); Card lastCard = positionGoal.GetLastCard(); if ((lastCard != null && scriptCard.Value == lastCard.Value + 1) || (lastCard == null && scriptCard.Value == 1)) { helpCardMove = scriptCard; helpFinalPosition = positionGoal.transform.position; return(true); } } return(false); }
/// <summary> /// Check if there are some card that can be moved from column to positionGoal /// </summary> private bool CheckFromColumnToPositionGoal() { foreach (GameObject col in columns) { Column scriptCol = col.GetComponent <Column>(); Card lastCardCol = scriptCol.GetLastCard(); if (lastCardCol != null) { PositionGoalCard positionGoal = GetExactPositionGoal(lastCardCol.Seed); Card lastCardPos = positionGoal.GetLastCard(); if ((lastCardPos != null && lastCardCol.Value == lastCardPos.Value + 1) || (lastCardPos == null && lastCardCol.Value == 1)) { helpCardMove = lastCardCol; helpFinalPosition = positionGoal.transform.position; return(true); } } } return(false); }
/// <summary> /// Check in the entire deck if there are some card that can be moved from deck /// to any place /// </summary> private bool CheckFromDeckToDeck() { Debug.Log("CheckFromDeckToDeck"); Deck scriptDeck = DeckObject.GetComponent <Deck>(); List <GameObject> deckCards = scriptDeck.GetAllCardsFromDeck(); if (deckCards != null) { Debug.Log("deckCards count=" + deckCards.Count); //check if I can put some card in positionGoal foreach (GameObject card in deckCards) { Card scriptCard = card.GetComponent <Card>(); PositionGoalCard positionGoal = GetExactPositionGoal(scriptCard.Seed); Card positionGoalCard = positionGoal.GetComponent <PositionGoalCard>().GetLastCard(); if ((positionGoalCard != null && scriptCard.Value == positionGoalCard.Value + 1) || (positionGoalCard == null && scriptCard.Value == 1)) { return(true); } } //check if I can put some card in column foreach (GameObject card in deckCards) { foreach (GameObject col in columns) { Card scriptCardDeck = card.GetComponent <Card>(); Column scriptCol = col.GetComponent <Column>(); Card lastCardCol = scriptCol.GetLastCard(); if (lastCardCol != null && lastCardCol.Value == scriptCardDeck.Value + 1 && CheckSeedInColumn(lastCardCol.Seed, scriptCardDeck.Seed)) { return(true); } if ((lastCardCol == null && scriptCardDeck.Value == 13)) { return(true); } } } } return(false); }
private PositionGoalCard GetExactPositionGoal(string seed) { PositionGoalCard positionGoal = null; switch (seed) { case "H": positionGoal = PositionGoalObject.transform.Find("PositionHearts").gameObject.GetComponent <PositionGoalCard>(); break; case "D": positionGoal = PositionGoalObject.transform.Find("PositionDiamonds").gameObject.GetComponent <PositionGoalCard>(); break; case "C": positionGoal = PositionGoalObject.transform.Find("PositionClubs").gameObject.GetComponent <PositionGoalCard>(); break; case "S": positionGoal = PositionGoalObject.transform.Find("PositionSpades").gameObject.GetComponent <PositionGoalCard>(); break; } return(positionGoal); }
public void SetColumn(Column column) { _deck = null; _positionGoal = null; _column = column; }