Beispiel #1
0
        /// <inheritdoc />
        public void ShowActiveQuests()
        {
            var connection = this.player.Connection;

            if (connection is null || this.player.SelectedCharacter is null)
            {
                return;
            }

            var activeQuests = this.player.SelectedCharacter.QuestStates.Where(state => state.Group != QuestConstants.LegacyQuestGroup && state.ActiveQuest != null).Select(s => s.ActiveQuest !).ToList();

            using var writer = connection.StartSafeWrite(
                      QuestStateList.HeaderType,
                      QuestStateList.GetRequiredSize(activeQuests.Count));
            var message = new QuestStateList(writer.Span);
            int i       = 0;

            foreach (var activeQuest in activeQuests)
            {
                var questIdentification = message[i];
                questIdentification.Number = (ushort)activeQuest.Number;
                questIdentification.Group  = (ushort)activeQuest.Group;
                i++;
            }

            writer.Commit();
        }