예제 #1
0
        internal PastRankings past_rankings(
            string chapter_id, Dictionary <string, string> previousChapterIds)
        {
            List <Save_Data> previous_chapters = new List <Save_Data>();
            List <string>    previous_ranking_progression_ids = new List <string>(
                Global.data_chapters[chapter_id].Prior_Chapters);

            // If using a subset of prior chapters for rankings
            if (Global.data_chapters[chapter_id].Prior_Ranking_Chapters.Count != 0)
            {
                previous_ranking_progression_ids = new List <string>(
                    previous_ranking_progression_ids.Intersect(
                        Global.data_chapters[chapter_id].Prior_Ranking_Chapters));
            }

            if (previous_ranking_progression_ids.Count > 0)
            {
                for (int i = 0; i < previous_ranking_progression_ids.Count; i++)
                {
                    string progression_id = previous_ranking_progression_ids[i];
                    if (previousChapterIds.ContainsKey(progression_id))
                    {
                        string previous_chapter_id = previousChapterIds[progression_id];
                        if (Data.ContainsKey(previous_chapter_id) &&
                            Data[previous_chapter_id].ContainsKey(progression_id))
                        {
                            previous_chapters.Add(Data[previous_chapter_id][progression_id]);
                        }
#if DEBUG
                        else
                        {
                            Debug.Assert(string.IsNullOrEmpty(previous_chapter_id));
                        }
#endif
                    }
                    else
                    {
                        Save_Data previous_data = recent_save(progression_id);
#if DEBUG
                        Debug.Assert(previous_data != null);
#endif
                        previous_chapters.Add(previous_data);
                    }
                }
            }

            return(Save_Data.process_past_ranking(previous_chapters));
        }
예제 #2
0
        public Dictionary <string, Game_Ranking> all_rankings(
            string chapterId)
        {
            if (!ContainsKey(chapterId))
            {
                return(null);
            }

            var save = recent_save(chapterId, "");

            if (save == null)
            {
                return(null);
            }

            var rankings = Save_Data.process_past_ranking(
                new List <Save_Data> {
                save
            });

            return(rankings.GetData());
        }