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(); }
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)); } }
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; }
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)); }