Пример #1
0
        // Reward any items gained from the level
        private static void RewardItems(LevelProgressData levelProgressData, LevelInfo levelInfo)
        {
            if (levelProgressData.Items == null)
            {
                return;
            }

            foreach (var reward in levelProgressData.Items)
            {
                // stars are always added to level progress, even though they may not be awarded to the player
                if (reward.Key == ItemType.Star1 || reward.Key == ItemType.Star2 || reward.Key == ItemType.Star3)
                {
                    int newStarsGained = reward.Value - levelInfo.StarsAwarded;                         // only award the stars if they are more than what was already been awarded
                    if (newStarsGained <= 0)
                    {
                        continue;
                    }

                    levelInfo.AddLevelCompletionStars(newStarsGained);
                    ItemProgress.AddItem(ItemType.Star, newStarsGained);
                }
                else if (reward.Key != ItemType.Star)
                {
                    ItemProgress.AddItem(reward.Key, reward.Value);                         // add any items gained
                }
                else
                {
                    Debug.Log("Warning: ItemType.Star should not be used for level rewards. Use Star1, Star2, Star3 instead");
                }
            }
        }