protected override void InitReward()
    {
        List <ResultReward> list = new List <ResultReward>();

        dropItemNum       = 0;
        dropLineNum       = 0;
        eventRewardTitles = new List <string>();
        if (MonoBehaviourSingleton <InGameManager> .I.arenaRewards.Count > 0)
        {
            foreach (QuestCompleteRewardList arenaReward in MonoBehaviourSingleton <InGameManager> .I.arenaRewards)
            {
                ResultReward resultReward = new ResultReward();
                DevideRewardDropAndEvent(resultReward, arenaReward.drop);
                List <SortCompareData> list2 = new List <SortCompareData>();
                int start_ary_index          = 0;
                start_ary_index = ResultUtility.SetDropData(list2, start_ary_index, resultReward.dropReward.item, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list2, start_ary_index, resultReward.dropReward.equipItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list2, start_ary_index, resultReward.dropReward.skillItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list2, start_ary_index, resultReward.dropReward.questItem, REWARD_CATEGORY.DROP);
                list2.Sort((SortCompareData l, SortCompareData r) => r.GetSortValueQuestResult() - l.GetSortValueQuestResult());
                resultReward.dropItemIconData = list2.ToArray();
                dropItemNum += resultReward.dropItemIconData.Length;
                list.Add(resultReward);
            }
        }
        pointShopResultData = (MonoBehaviourSingleton <InGameManager> .I.arenaPointShops ?? new List <PointShopResultData>());
        resultRewards       = list.ToArray();
    }
예제 #2
0
    private void DevideRewardDropAndEvent(ResultReward resultReward, QuestCompleteReward reward)
    {
        resultReward.dropReward  = new QuestCompleteReward();
        resultReward.eventReward = new QuestCompleteReward();
        List <string> list = new List <string>();

        resultReward.dropReward.exp = reward.exp;
        int num  = 0;
        int num2 = 0;

        for (int i = 0; i < reward.eventPrice.Count; i++)
        {
            num  += reward.eventPrice[i].gold;
            num2 += reward.eventPrice[i].gold;
            resultReward.eventReward.eventPrice.Add(reward.eventPrice[i]);
            list.Add(reward.eventPrice[i].rewardTitle);
        }
        resultReward.dropReward.money   = Mathf.Max(0, reward.money - num);
        resultReward.dropReward.crystal = Mathf.Max(0, reward.crystal - num2);
        for (int j = 0; j < reward.item.Count; j++)
        {
            if (string.IsNullOrEmpty(reward.item[j].rewardTitle))
            {
                resultReward.dropReward.item.Add(reward.item[j]);
            }
            else
            {
                resultReward.eventReward.item.Add(reward.item[j]);
                list.Add(reward.item[j].rewardTitle);
            }
        }
        for (int k = 0; k < reward.skillItem.Count; k++)
        {
            if (string.IsNullOrEmpty(reward.skillItem[k].rewardTitle))
            {
                resultReward.dropReward.skillItem.Add(reward.skillItem[k]);
            }
            else
            {
                resultReward.eventReward.skillItem.Add(reward.skillItem[k]);
                list.Add(reward.skillItem[k].rewardTitle);
            }
        }
        for (int l = 0; l < reward.equipItem.Count; l++)
        {
            if (string.IsNullOrEmpty(reward.equipItem[l].rewardTitle))
            {
                resultReward.dropReward.equipItem.Add(reward.equipItem[l]);
            }
            else
            {
                resultReward.eventReward.equipItem.Add(reward.equipItem[l]);
                list.Add(reward.equipItem[l].rewardTitle);
            }
        }
        for (int m = 0; m < reward.questItem.Count; m++)
        {
            if (string.IsNullOrEmpty(reward.questItem[m].rewardTitle))
            {
                resultReward.dropReward.questItem.Add(reward.questItem[m]);
            }
            else
            {
                resultReward.eventReward.questItem.Add(reward.questItem[m]);
                list.Add(reward.questItem[m].rewardTitle);
            }
        }
        for (int n = 0; n < list.Count; n++)
        {
            if (!eventRewardTitles.Contains(list[n]))
            {
                eventRewardTitles.Add(list[n]);
            }
        }
    }
예제 #3
0
    protected override void InitReward()
    {
        List <ResultReward> list = new List <ResultReward>();

        dropItemNum       = 0;
        dropLineNum       = 0;
        eventRewardTitles = new List <string>();
        followReward      = new QuestCompleteReward();
        List <PointEventCurrentData.Reward> list2 = new List <PointEventCurrentData.Reward>();

        if (MonoBehaviourSingleton <InGameManager> .I.rushRewards.Count > 0)
        {
            isVictory = true;
            foreach (QuestCompleteRewardList rushReward in MonoBehaviourSingleton <InGameManager> .I.rushRewards)
            {
                ResultReward resultReward = new ResultReward();
                DevideRewardDropAndEvent(resultReward, rushReward.drop);
                QuestCompleteReward breakPartsReward = rushReward.breakPartsReward;
                QuestCompleteReward breakReward      = rushReward.breakReward;
                QuestCompleteReward order            = rushReward.order;
                followReward.Add(rushReward.followReward);
                foreach (QuestCompleteReward.Item item in rushReward.first.item)
                {
                    PointEventCurrentData.Reward reward = new PointEventCurrentData.Reward();
                    reward.type   = 3;
                    reward.itemId = item.itemId;
                    reward.num    = item.num;
                    list2.Add(reward);
                }
                foreach (QuestCompleteReward.QuestItem item2 in rushReward.first.questItem)
                {
                    PointEventCurrentData.Reward reward2 = new PointEventCurrentData.Reward();
                    reward2.type   = 6;
                    reward2.itemId = item2.questId;
                    reward2.num    = item2.num;
                    list2.Add(reward2);
                }
                foreach (QuestCompleteReward.EquipItem item3 in rushReward.first.equipItem)
                {
                    PointEventCurrentData.Reward reward3 = new PointEventCurrentData.Reward();
                    reward3.type   = 4;
                    reward3.itemId = item3.equipItemId;
                    reward3.num    = item3.num;
                    list2.Add(reward3);
                }
                int money = rushReward.first.money;
                if (money > 0)
                {
                    PointEventCurrentData.Reward reward4 = new PointEventCurrentData.Reward();
                    reward4.type = 2;
                    reward4.num  = money;
                    list2.Add(reward4);
                }
                int crystal = rushReward.first.crystal;
                if (crystal > 0)
                {
                    PointEventCurrentData.Reward reward5 = new PointEventCurrentData.Reward();
                    reward5.type = 1;
                    reward5.num  = crystal;
                    list2.Add(reward5);
                }
                List <SortCompareData> list3 = new List <SortCompareData>();
                int start_ary_index          = 0;
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, order.item, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, order.equipItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, order.skillItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, resultReward.dropReward.item, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, resultReward.dropReward.equipItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, resultReward.dropReward.skillItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, resultReward.dropReward.questItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, breakReward.item, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, breakReward.equipItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, breakReward.skillItem, REWARD_CATEGORY.DROP);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, breakPartsReward.item, REWARD_CATEGORY.BREAK);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, breakPartsReward.equipItem, REWARD_CATEGORY.BREAK);
                start_ary_index = ResultUtility.SetDropData(list3, start_ary_index, breakPartsReward.skillItem, REWARD_CATEGORY.BREAK);
                list3.Sort((SortCompareData l, SortCompareData r) => r.GetSortValueQuestResult() - l.GetSortValueQuestResult());
                resultReward.dropItemIconData = list3.ToArray();
                dropItemNum += resultReward.dropItemIconData.Length;
                list.Add(resultReward);
            }
        }
        pointShopResultData = (MonoBehaviourSingleton <InGameManager> .I.rushPointShops ?? new List <PointShopResultData>());
        resultRewards       = list.ToArray();
        firstRewards        = list2.ToArray();
        dropLineNum         = (dropItemNum - 1) / 5 + 1;
    }