public void Init()
    {
        // Erase the actual deck
        gameDeck = new List <CardData.Settings>();
        // Add all card we got from server
        for (int i = 0; i < cardDownloader.gameDeck.cards.Length; i++)
        {
            CardData.Settings newCard = new CardData.Settings();
            newCard.characterName = cardDownloader.gameDeck.cards [i].person;
//			Debug.Log (newCard.characterName);
            newCard.cardText = cardDownloader.gameDeck.cards [i].title;
//			newCard.cradImage = cardDownloader.gameDeck.cards [i].url_image;

            for (int j = 0; j < cardDownloader.gameDeck.cards[i].answers.Length; j++)
            {
                CardData.Outcome outcome = new CardData.Outcome();
                for (int k = 0; k < cardDownloader.gameDeck.cards[i].answers[j].points.Length; k++)
                {
                    // Store answer's description
                    outcome.description = cardDownloader.gameDeck.cards[i].answers[j].text;
                    // We must manually detect each point type to store
                    //Debug.Log("Value" + cardDownloader.gameDeck.cards [i].answers [j].points [k].value);
                    switch (cardDownloader.gameDeck.cards[i].answers[j].points[k].slug)
                    {
                    case "fun":
                        outcome.fun = cardDownloader.gameDeck.cards [i].answers [j].points [k].value;
                        break;

                    case "love":
                        outcome.love = cardDownloader.gameDeck.cards [i].answers [j].points [k].value;
                        break;

                    case "money":
                        outcome.money = cardDownloader.gameDeck.cards [i].answers [j].points [k].value;
                        break;

                    case "health":
                        outcome.health = cardDownloader.gameDeck.cards [i].answers [j].points [k].value;
                        break;
                    }
                }
                // Add this outcome to the right swipe
                if (cardDownloader.gameDeck.cards [i].answers [j].type.ToLower() == "right")
                {
                    newCard.rightOutcome = outcome;
                }
                else
                {
                    newCard.leftOutcome = outcome;
                }
            }
            // Get the probability data
            CardData.Chances chances = new CardData.Chances();
            newCard.chances = chances;
            //-------------------------------------------
            // Add this card to the list
            gameDeck.Add(newCard);
        }
        InitParameters();
    }
Exemple #2
0
 public void SetCardData(CardData.Settings cardData)
 {
     this.cardData = cardData;
     // If not ran out of cards, set the new data
     if (this.cardData != null)
     {
         this.characterName.text = cardData.characterName.ToUpper();
         this.cardImage.sprite   = Resources.Load <Sprite> (GetCardImagePath(cardData.characterName));
     }
 }
Exemple #3
0
    GameOverReason CheckGameOver(CardMovement card)
    {
        CardData.Settings cardData = card.GetCardData();
        if (cardData == null)
        {
            return(GameOverReason.OutOfCards);
        }
        if (cardManager._yearsPassed > MAX_AGE)
        {
            return(GameOverReason.Aged);
        }

        if (cardManager.loveLevel <= 0)
        {
            return(GameOverReason.NoLove);
        }
        if (cardManager.loveLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullLove);
        }
        if (cardManager.moneyLevel <= 0)
        {
            return(GameOverReason.NoMoney);
        }
        if (cardManager.moneyLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullMoney);
        }
        if (cardManager.healthLevel <= 0)
        {
            return(GameOverReason.NoHealth);
        }
        if (cardManager.healthLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullHealth);
        }
        if (cardManager.familyLevel <= 0)
        {
            return(GameOverReason.NoFun);
        }
        if (cardManager.familyLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullFun);
        }

        return(GameOverReason.Alive);
    }
    private bool CheckChance(CardData.Settings cdata)
    {
        bool answer = false;

        // If there's no chance to manage, it's approved
        if (cdata.chances.ageChanceIncrement == 0f)
        {
            answer = true;
        }
        else
        {
            float chance = cdata.chances.ageChanceBase + (cdata.chances.ageChanceIncrement * (float)_yearsPassed);
            if (Random.Range(0f, 100f) <= chance)
            {
                answer = true;
            }
        }
        // return the check
        return(answer);
    }
    public CardData.Settings PickCard()
    {
        if (gameDeck.Count == 0)
        {
            return(null);
        }
        _activeCard = gameDeck [0];
        gameDeck.RemoveAt(0);
        return(_activeCard);


//		// Pick a card at random from the pool
//		_activeCard = turnPool[Random.Range(0, turnPool.Count)];
//		// Count our uses. If we reach the limit, remove this card from the game
//		if(!_BYPASS_PROBABILTY)
//			_activeCard.chances.currentUsage++;
//		// If set, update the temp GUI
//		if (_SOLO_TEST)
//			DrawCard ();
//		return _activeCard;
    }
Exemple #6
0
    void OnCardSwiped(CardMovement swipedCard)
    {
        CardData.Outcome outcome = swipedCard.GetSwipeOutcome();
        cardManager.ComputeSwipeOutcome(outcome);
        FillParametersDisplay();
        DisplayPlayerData();
        ResetSelectors();

        CardData.Settings card = cardManager.PickCard();

        CardMovement   nextCard   = (swipedCard == cardGOs [0]) ? cardGOs [1] : cardGOs [0];
        GameOverReason overReason = CheckGameOver(nextCard);

        if (overReason == GameOverReason.Alive)
        {
            swipedCard.SetCardData(card);
            DisplayCardData(nextCard);
        }
        else
        {
            GameOver.SetupGameOver(overReason, cardManager._initialAge + cardManager._yearsPassed);
            Scenes.LoadScene(Scenes.GameOver);
        }
    }
 private bool CheckUsage(CardData.Settings cdata)
 {
     return(cdata.chances.maxUse <= 0 || (cdata.chances.maxUse > 0 && cdata.chances.currentUsage < cdata.chances.maxUse));
 }