// // ScNPacket.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; using NosSmooth.Packets.Server.Character; using NosSmooth.Packets.Server.Maps; using NosSmooth.PacketSerializer.Abstractions; using NosSmooth.PacketSerializer.Abstractions.Attributes; using NosSmooth.PacketSerializer.Abstractions.Common; namespace NosSmooth.Packets.Server.Mates; /// /// Information about a partner the /// character owns. /// /// The id of the partner entity. /// The vnum of the partner. /// Unknown TODO. /// The level of the partner. /// The loyalty of the partner. /// The experience of the partner. /// Information about partner's weapon. /// Information about partner's armor. /// Information about partner's gauntlet. /// Information about partner's boots. /// Unknown TODO. /// Unknown TODO. /// Unknown TODO. /// The upgrade of attack. /// The minimum attack amount. /// The maximum attack amount. /// Unknown TODO. /// The critical chance of the partner's hit. /// The critical rate of the partner's hit. /// The partner's defence upgrade. /// The melee defence. /// The dodge of melee defence. /// The ranged defence. /// The dodge of ranged defence. /// The magical defence. /// The element of the partner. /// Information about partner's resistance /// The current hp of the partner. /// The maximum hp of the partner. /// The current mp of the partner. /// The maximum mp of the partner. /// Unknown TODO. /// The maximum experience in current level of the partner. /// The name of the partner. /// The morph vnum of the partner, if any. /// Whether the partner is summonable. /// The currently equipped sp of the partner. /// Information about first skill of the partner's sp. /// Information about second skill of the partner's sp. /// Information about third skill of the partner's sp. [PacketHeader("sc_n", PacketSource.Server)] [GenerateSerializer(true)] public record ScNPacket ( [PacketIndex(0)] long PartnerId, [PacketIndex(1)] long NpcVNum, [PacketIndex(2)] long TransportId, [PacketIndex(3)] short Level, [PacketIndex(4)] short Loyalty, [PacketIndex(5)] long Experience, [PacketIndex(6, InnerSeparator = '.')] NullableWrapper WeaponSubPacket, [PacketIndex(7, InnerSeparator = '.')] NullableWrapper ArmorSubPacket, [PacketIndex(8, InnerSeparator = '.')] NullableWrapper GauntletSubPacket, [PacketIndex(9, InnerSeparator = '.')] NullableWrapper BootsSubPacket, [PacketIndex(10, InnerSeparator = '.')] short Unknown1, [PacketIndex(11)] short Unknown2, [PacketIndex(12)] short AttackType, [PacketIndex(13)] short AttackUpgrade, [PacketIndex(14)] int MinimumAttack, [PacketIndex(15)] int MaximumAttack, [PacketIndex(16)] int Precision, [PacketIndex(17)] int CriticalChance, [PacketIndex(18)] int CriticalRate, [PacketIndex(19)] short DefenceUpgrade, [PacketIndex(20)] int MeleeDefence, [PacketIndex(21)] int MeleeDefenceDodge, [PacketIndex(22)] int RangeDefence, [PacketIndex(23)] int RangeDodgeRate, [PacketIndex(24)] int MagicalDefence, [PacketIndex(25)] Element Element, [PacketIndex(26, InnerSeparator = ' ')] ResistanceSubPacket ResistanceSubPacket, [PacketIndex(27)] int Hp, [PacketIndex(28)] int HpMax, [PacketIndex(29)] int Mp, [PacketIndex(30)] int MpMax, [PacketIndex(31)] bool IsTeamMember, [PacketIndex(32)] int LevelExperience, [PacketIndex(33)] NameString Name, [PacketIndex(34)] int? MorphVNum, [PacketIndex(35)] bool IsSummonable, [PacketIndex(36, InnerSeparator = '.')] NullableWrapper SpSubPacket, [PacketIndex(37, InnerSeparator = '.')] NullableWrapper Skill1SubPacket, [PacketIndex(38, InnerSeparator = '.')] NullableWrapper Skill2SubPacket, [PacketIndex(39, InnerSeparator = '.')] NullableWrapper Skill3SubPacket ) : IPacket;