コード例 #1
0
ファイル: GamePlay.cs プロジェクト: FAngelo94/Solitario
    /// <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();
        }
    }
コード例 #2
0
 public void SetPositionGoal(PositionGoalCard goal)
 {
     _column       = null;
     _deck         = null;
     FatherCard    = null;
     ChildCard     = null;
     _positionGoal = goal;
 }
コード例 #3
0
 public void SetDeck(Deck deck)
 {
     _positionGoal = null;
     _column       = null;
     FatherCard    = null;
     ChildCard     = null;
     _deck         = deck;
 }
コード例 #4
0
    /// <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);
    }
コード例 #5
0
 /// <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);
 }
コード例 #6
0
    /// <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);
    }
コード例 #7
0
    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);
    }
コード例 #8
0
 public void SetColumn(Column column)
 {
     _deck         = null;
     _positionGoal = null;
     _column       = column;
 }