//
// Player.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.Game.Data.Info;
using NosSmooth.Game.Data.Items;
using NosSmooth.Game.Data.Social;
using NosSmooth.Packets.Enums.Entities;
using NosSmooth.Packets.Enums.Players;
namespace NosSmooth.Game.Data.Entities;
///
/// Represents nostale player entity.
///
public class Player : ILivingEntity
{
///
/// Gets or sets the authority of the player.
///
public AuthorityType Authority { get; set; }
///
/// Gets or sets the sex of the player.
///
public SexType Sex { get; set; }
///
/// Gets or sets the hairstyle of the player.
///
public HairStyle HairStyle { get; set; }
///
/// Gets or sets the hair color of the player.
///
public HairColor HairColor { get; set; }
///
/// Gets or sets the class of the player.
///
public PlayerClass Class { get; set; }
///
/// Gets or sets the reputation icon. UNKNOWN TODO.
///
public short? Icon { get; set; }
///
/// UNKNOWN TODO.
///
public short? Compliment { get; set; }
///
/// Gets or sets the morph used for sps, vehicles and such.
///
public Morph? Morph { get; set; }
///
/// Gets or sets whether the player is a champion arena winner.
///
public bool ArenaWinner { get; set; }
///
/// Gets or sets the reputation number of the player.
///
public long? Reputation { get; set; }
///
/// Gets or sets the visible title of the player.
///
public short Title { get; set; }
///
/// Gets or sets the family.
///
public Family? Family { get; set; }
///
public int VNum { get; set; }
///
public long Id { get; set; }
///
public string? Name { get; set; }
///
public bool IsSitting { get; set; }
///
public bool CantMove { get; set; }
///
public bool CantAttack { get; set; }
///
public Position? Position { get; set; }
///
public EntityType Type => EntityType.Player;
///
public int? Speed { get; set; }
///
public bool? IsInvisible { get; set; }
///
public ushort? Level { get; set; }
///
public byte? Direction { get; set; }
///
public Health? Hp { get; set; }
///
public Health? Mp { get; set; }
///
public FactionType? Faction { get; set; }
///
public short Size { get; set; }
///
public IReadOnlyList? EffectsVNums { get; set; }
///
/// Gets or sets the hero level.
///
public virtual short? HeroLevel { get; set; }
///
/// Gets or sets the equipment.
///
public Equipment? Equipment { get; set; }
}