public void setup(LootReward _reward, int _order, EndGameReportInterface _endGameInterface) { reward = _reward; order = _order; endGameInterface = _endGameInterface; isActive = true; doingAnimation = false; waitBasePos = GameObject.Find("lootWaitPos").transform.position; centerPos = GameObject.Find("lootCenterPos").transform.position; skipAnimationFlag = false; }
private LootReward getRewardFromLootCard(Card_Loot lootCard) { LootReward reward = new LootReward(); int level = (int)Mathf.Max(lootCard.level, 1); reward.baseMoney = level + 1; int numCardsAtLevel = 2; int numCardPairsAtLowerLevel = 2; //every reward needs to include at least one movement card bool hasMovementCard = false; List <string> cardsThisLevel = CardManager.instance.getIDListAtLevel(level); List <string> cardsLowerLevel = CardManager.instance.getIDListAtLevel((int)Mathf.Max(1, level - 1)); int numLowerLevelCardsPerGroup = 2; if (level <= 1) { numLowerLevelCardsPerGroup = 1; } for (int i = 0; i < numCardPairsAtLowerLevel; i++) { Card[] cards = new Card[numLowerLevelCardsPerGroup]; for (int j = 0; j < numLowerLevelCardsPerGroup; j++) { int idNum = (int)Random.Range(0, cardsLowerLevel.Count); string idName = cardsLowerLevel [idNum]; //cardsLowerLevel.RemoveAt (idNum); //no duplicate cards in the same pack //maybe this is OK for lower level packs Card card = CardManager.instance.getCardFromIdName(idName); card.setup(null, null); cards [j] = card; if (card.type == Card.CardType.Movement) { hasMovementCard = true; } } reward.addMultipleCards(cards); } for (int i = 0; i < numCardsAtLevel; i++) { int idNum = (int)Random.Range(0, cardsThisLevel.Count); string idName = cardsThisLevel [idNum]; cardsThisLevel.RemoveAt(idNum); //no duplicate cards in the same pack Card card = CardManager.instance.getCardFromIdName(idName); card.setup(null, null); if (card.type == Card.CardType.Movement) { hasMovementCard = true; } reward.addSingleCard(card); } //and a money option reward.addMoneyOption(getRewardMoney(level)); //if there is a movement card, return it, otheriwse try again if (hasMovementCard) { return(reward); } else { return(getRewardFromLootCard(lootCard)); } }