Exemplo n.º 1
0
        /// <summary>
        /// Create a named autosplit for the specified quest and difficulty.
        /// </summary>
        /// <param name="quest">The quest.</param>
        /// <param name="difficulty">Difficulty for quest.</param>
        /// <returns></returns>
        public AutoSplit CreateForQuest(D2QuestHelper.Quest quest, short difficulty)
        {
            string name;

            // Get quest name if exists or default to "Quest".
            if (D2QuestHelper.Quests.ContainsKey(quest))
            {
                name = D2QuestHelper.Quests[quest].CommonName;
            }
            else
            {
                name = "Quest";
            }

            // Add difficulty to name if above normal.
            if (difficulty == 1)
            {
                name += " (NM)";
            }
            if (difficulty == 2)
            {
                name += " (H)";
            }

            return(new AutoSplit(name, AutoSplit.SplitType.Quest, (short)quest, difficulty));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Automatically fill in sequential quests such as Andariel to Duriel.
        /// Also handles difficulty levels.
        /// </summary>
        /// <param name="previous">The previous autosplit in the list. May be null.</param>
        /// <returns></returns>
        public AutoSplit CreateSequential(AutoSplit previous)
        {
            if (previous == null)
            {
                return(new AutoSplit("Game Start", AutoSplit.SplitType.Special, (short)AutoSplit.Special.GameStart, 0));
            }

            // Follow up with Andariel after game start.
            if (previous.Type == AutoSplit.SplitType.Special && previous.Value == (int)AutoSplit.Special.GameStart)
            {
                return(CreateForQuest(D2QuestHelper.Quest.A1Q6, 0));
            }

            // Sequence bosses.
            else if (previous.Type == AutoSplit.SplitType.Quest)
            {
                short difficulty          = previous.Difficulty;
                D2QuestHelper.Quest quest = D2QuestHelper.Quest.A1Q1;

                switch ((D2QuestHelper.Quest)previous.Value)
                {
                case D2QuestHelper.Quest.A1Q1:     // Den
                    quest = D2QuestHelper.Quest.A1Q6; break;

                case D2QuestHelper.Quest.A1Q6:     // Andariel
                    quest = D2QuestHelper.Quest.A2Q6; break;

                case D2QuestHelper.Quest.A2Q6:     // Duriel
                    quest = D2QuestHelper.Quest.A3Q6; break;

                case D2QuestHelper.Quest.A3Q6:     // Mephisto
                    quest = D2QuestHelper.Quest.A4Q2; break;

                case D2QuestHelper.Quest.A4Q2:     // Diablo
                    quest = D2QuestHelper.Quest.A5Q6; break;

                case D2QuestHelper.Quest.A5Q6:     // Baal
                    // If we reached the last quest in hell, return an auto split with
                    // the default values.
                    if (++difficulty > 2)
                    {
                        return(Create());
                    }
                    quest = D2QuestHelper.Quest.A1Q6;
                    break;

                // Unsequenced quest.
                default: return(Create());
                }

                return(CreateForQuest(quest, difficulty));
            }

            return(Create());
        }