//
//  QstListSubPacket.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.
using NosSmooth.Packets.Enums.Quests;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
namespace NosSmooth.Packets.Server.Quests;
/// 
/// A sub packet of 
/// containing information about an active quest.
/// 
/// The number of the quest.
/// The info id of the quest to obtain it from .NOS files.
/// Unknown TODO.
/// The quest goal type.
/// The first objective of the quest.
/// 
/// The second objective of the quest.
/// The third objective of the quest.
/// The fourth objective of the quest.
/// The fifth objective of the quest.
/// Whether to show dialog at start of the quest.
[PacketHeader(null, PacketSource.Server)]
[GenerateSerializer(true)]
public record QstListSubPacket
(
    [PacketIndex(0)]
    short QuestNumber,
    [PacketIndex(1)]
    short InfoId,
    [PacketIndex(2)]
    short InfoId2,
    [PacketIndex(3)]
    QuestGoalType GoalType,
    [PacketIndex(4, InnerSeparator = '.')]
    QstListObjectiveSubPacket Objective1SubPacket,
    [PacketIndex(5)]
    bool IsQuestFinished,
    [PacketIndex(6, InnerSeparator = '.')]
    QstListObjectiveSubPacket Objective2SubPacket,
    [PacketIndex(7, InnerSeparator = '.')]
    QstListObjectiveSubPacket Objective3SubPacket,
    [PacketIndex(8, InnerSeparator = '.')]
    QstListObjectiveSubPacket Objective4SubPacket,
    [PacketIndex(9, InnerSeparator = '.')]
    QstListObjectiveSubPacket Objective5SubPacket,
    [PacketIndex(10)]
    bool ShowDialog
) : IPacket;