// Copyright © 2017-2018 Atomic Software, LLC. All Rights Reserved. // See LICENSE.md for full license information. using Atom.Core.Collections; using Atom.Core.Extensions; using Atom.Core.Game.GameObjects.Items; using Atom.Core.Game.Tutorial; using Atom.Core.Mathematics; using System; namespace Atom.Core.Game.GameObjects.Characters { /// /// The simple character class is used by the WM server because it /// contains WM-specific properties that are not used by the zone server. /// It also consumes more memory (for now). /// public class SimpleCharacter { public int CharNo { get; set; } public string Name { get; set; } public byte Slot { get; set; } public byte Level { get; set; } public byte Hair { get; set; } public byte HairColor { get; set; } public byte Face { get; set; } public CharacterClass Class { get; set; } public CharacterClass BaseClass => Class.GetBaseClass(); public Gender Gender { get; set; } public Dictionary EquippedItems { get; set; } public string MapIndx { get; set; } public int X { get; set; } public int Y { get; set; } public int KQHandle { get; set; } public string KQMapIndx { get; set; } public Vector2 KQPosition { get; set; } public DateTime KQDate { get; set; } public int HP { get; set; } public int SP { get; set; } public int HPStone { get; set; } public int SPStone { get; set; } public long Money { get; set; } public long EXP { get; set; } public Dictionary ItemLots { get; set; } public TutorialState TutorialState { get; set; } public byte TutorialStep { get; set; } public bool IsDeleted { get; set; } public DateTime DeletedDate { get; set; } public ushort FriendPoints { get; set; } public List Skills { get; set; } public List Quests { get; set; } public Dictionary Shortcuts { get; set; } public byte[] ShortcutData { get; set; } public byte[] KeyMappingData { get; set; } public byte[] GameSettingsData { get; set; } public byte[] ShortcutSizeData { get; set; } public byte[] WindowPosData { get; set; } public SimpleCharacter() { EquippedItems = new Dictionary(); ItemLots = new Dictionary(); Skills = new List(); Quests = new List(); Shortcuts = new Dictionary(); } public bool ShouldChangeName() { return false; } public ushort GetEquippedItem(ItemSlot itemSlot) { return !EquippedItems.ContainsKey(itemSlot) ? ushort.MaxValue : EquippedItems[itemSlot]; } } }