Exemple #1
0
 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;
 }
Exemple #2
0
    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));
        }
    }