コード例 #1
0
 void PrizeManage(AwardCard card)
 {
     if (card.prizeID == 1)//dice
     {
         AwardDice(card.diceID, card.prizeAmount);
     }
 }
コード例 #2
0
    void DisplayCard(AwardCard card)
    {
        Debug.Log("in display  " + card.prizeID);
        canShow = false;

        awardAmount.text = card.prizeAmount.ToString();

        if (card.prizeID == 0)
        {
            DisplayCoin();
        }

        if (card.prizeID == 1)
        {
            DisplayDice(card.diceID);
        }

        if (card.prizeID == 2)
        {
            DisplayGem();
        }

        cardsToDisplay.RemoveAt(0);
        // cardPanel.SetActive(false);
    }
コード例 #3
0
 void CheckPrize(AwardCard card)
 {
     if (card.prizeID == 2)
     {
         UpdateGemAMount(card.prizeAmount);
     }
 }
コード例 #4
0
 void CheckPrize(AwardCard card)
 {
     if (card.prizeID == 0)
     {
         CoinAMountChange(card.prizeAmount);
     }
 }
コード例 #5
0
        /// <summary>
        /// Method overridden to send card in team after awarding badge.
        /// </summary>
        /// <param name="turnContext">Context object containing information cached for a single turn of conversation with a user.</param>
        /// <param name="action">Messaging extension action commands.</param>
        /// <param name="cancellationToken">Propagates notification that operations should be canceled.</param>
        /// <returns>A task that represents the work queued to execute.</returns>
        protected override async Task <MessagingExtensionActionResponse> OnTeamsMessagingExtensionSubmitActionAsync(
            ITurnContext <IInvokeActivity> turnContext,
            MessagingExtensionAction action,
            CancellationToken cancellationToken)
        {
            var activity        = turnContext.Activity as Activity;
            var badgeDetails    = JsonConvert.DeserializeObject <ViewBadge>(action.Data.ToString());
            var awardRecipients = badgeDetails.AwardRecipients.ToList();
            var awardedBy       = badgeDetails.AwardedBy;

            // Get team members in Team.
            var teamsDetails   = turnContext.Activity.TeamsGetTeamInfo();
            var channelMembers = await TeamsInfo.GetTeamMembersAsync(turnContext, teamsDetails.Id, cancellationToken);

            for (var recipientCount = 0; recipientCount < badgeDetails.AwardRecipients.Count; recipientCount++)
            {
                var memberEmail = badgeDetails.AwardRecipients[recipientCount];
                badgeDetails.AwardRecipients[recipientCount] = channelMembers.Where(member => member.Email == memberEmail).Select(member => member.Name).FirstOrDefault();
            }

            badgeDetails.AwardedBy = channelMembers.Where(member => member.Email == badgeDetails.AwardedBy).Select(member => member.Name).FirstOrDefault();

            var channelData = activity.GetChannelData <TeamsChannelData>();

            var conversationParameters = new ConversationParameters
            {
                Activity    = (Activity)MessageFactory.Attachment(AwardCard.GetAwardBadgeAttachment(badgeDetails)),
                Bot         = activity.Recipient,
                IsGroup     = true,
                ChannelData = channelData,
                TenantId    = channelData.Tenant.Id,
            };

            // Get activity for mentioning members who are awarded with badge.
            var mentionActivity = await this.GetMentionActivityAsync(awardRecipients, awardedBy, turnContext, cancellationToken);

            await this.botAdapter.CreateConversationAsync(
                "msteams",
                turnContext.Activity.ServiceUrl,
                this.microsoftAppCredentials,
                conversationParameters,
                async (newTurnContext, newCancellationToken) =>
            {
                await this.botAdapter.ContinueConversationAsync(
                    this.microsoftAppCredentials.MicrosoftAppId,
                    newTurnContext.Activity.GetConversationReference(),
                    async(conversationTurnContext, conversationCancellationToken) =>
                {
                    mentionActivity.ApplyConversationReference(conversationTurnContext.Activity.GetConversationReference());
                    await conversationTurnContext.SendActivityAsync(mentionActivity, conversationCancellationToken);
                },
                    newCancellationToken);
            },
                cancellationToken).ConfigureAwait(false);

            return(default);
コード例 #6
0
 void AddToCards(AwardCard card)
 {
     Debug.Log("card addd: " + card.prizeID);
     cardsToDisplay.Add(card);
     if (startedDisplay == false)
     {
         DisplayCard(cardsToDisplay[0]);
         cardPanel.SetActive(true);
         startedDisplay = true;
     }
 }
コード例 #7
0
    List <AwardCard> GenerateDice(int diceNum, int cardNum, List <DiceFullDesign> diceList, DiceRareness rareness)

    {
        List <AwardCard> newCards = new List <AwardCard>();

        if (diceNum > 0 && cardNum > 0)
        {
            for (int i = 0; i < cardNum; i++)
            {
                AwardCard temp = new AwardCard();
                temp.prizeID      = 1;
                temp.diceRareness = rareness;
                int index = Random.Range(0, diceList.Count);
                temp.diceID = diceList[index].diceID;
                diceList.RemoveAt(index);
                temp.prizeAmount = 1;
                newCards.Add(temp);
            }
            diceNum -= cardNum;
            while (diceNum > 0)
            {
                foreach (var item in newCards)
                {
                    int rand = Random.Range(0, 2);
                    if (rand > 0)
                    {
                        item.prizeAmount++;
                        diceNum--;
                    }
                    if (diceNum <= 0)
                    {
                        break;
                    }
                }
            }
        }

        return(newCards);
    }
コード例 #8
0
    void GenerateChestAward(SaveableChest chest)
    {
        ChestType chestType = chest.chestType;
        Prize     prize     = new Prize();

        prize.awardCards = new List <AwardCard>();
        int normalDiceNum = Random.Range(awardGenerate.lowerNormalDiceNum[(int)chestType], awardGenerate.higherNormalDiceNum[(int)chestType] + 1);
        int rareDiceNum   = Random.Range(awardGenerate.lowerRareDiceNum[(int)chestType], awardGenerate.higherRareDiceNum[(int)chestType] + 1);
        int talismDiceNum = Random.Range(awardGenerate.lowerTalismDiceNum[(int)chestType], awardGenerate.higherTalismDiceNum[(int)chestType] + 1);
        int coinNum       = Random.Range(awardGenerate.lowerCoinNum[(int)chestType], awardGenerate.higherCoinNum[(int)chestType] + 1);
        int gemNum        = Random.Range(awardGenerate.lowerGemNum[(int)chestType], awardGenerate.higherGemNum[(int)chestType] + 1);

        int normalCardNum = Random.Range(awardGenerate.normalLowDiceCard[(int)chestType], awardGenerate.normalHighDiceCard[(int)chestType] + 1);
        int rareCardNum   = Random.Range(awardGenerate.rareLowDiceCard[(int)chestType], awardGenerate.rareHighDiceCard[(int)chestType] + 1);
        int talismCardNum = Random.Range(awardGenerate.talismLowDiceCard[(int)chestType], awardGenerate.talismHighDiceCard[(int)chestType] + 1);

        if (coinNum > 0)
        {
            AwardCard temp = new AwardCard();
            temp.prizeID     = 0;
            temp.prizeAmount = coinNum;
            prize.awardCards.Add(temp);
            OnAwardReceived(temp);
        }
        List <DiceFullDesign> dicesTemp = new List <DiceFullDesign>();

        foreach (var item in normalDices.diceFullDesigns)
        {
            dicesTemp.Add(item);
        }
        List <AwardCard> temp2 = (GenerateDice(normalDiceNum, normalCardNum, dicesTemp, DiceRareness.Normal));

        foreach (var item in temp2)
        {
            prize.awardCards.Add(item);
            OnAwardReceived(item);
        }

        dicesTemp = new List <DiceFullDesign>();
        foreach (var item in rareDices.diceFullDesigns)
        {
            dicesTemp.Add(item);
        }

        temp2 = (GenerateDice(rareDiceNum, rareCardNum, dicesTemp, DiceRareness.Rare));
        foreach (var item in temp2)
        {
            OnAwardReceived(item);
            prize.awardCards.Add(item);
        }

        dicesTemp = new List <DiceFullDesign>();
        foreach (var item in talismanDices.diceFullDesigns)
        {
            dicesTemp.Add(item);
        }

        temp2 = (GenerateDice(talismDiceNum, talismCardNum, dicesTemp, DiceRareness.Talisman));
        foreach (var item in temp2)
        {
            OnAwardReceived(item);
            prize.awardCards.Add(item);
        }

        if (gemNum > 0)
        {
            AwardCard temp = new AwardCard();
            temp.prizeID     = 2;
            temp.prizeAmount = gemNum;
            prize.awardCards.Add(temp);
            OnAwardReceived(temp);
        }
    }