public PlayerEntity(ISession session, CharacterDto dto, IEnumerable <CharacterSkillDto> skills, IEnumerable <CharacterQuicklistDto> quicklist) : base(VisualType.Character, dto.Id) { Session = session; Character = dto; Relations = new RelationList(); Quicklist = new QuicklistComponent(this, quicklist); HpMax = Algorithm.GetHpMax(dto.Class, dto.Level); Hp = HpMax; MpMax = Algorithm.GetMpMax(dto.Class, dto.Level); Mp = MpMax; BasicArea = 1; Inventory = new InventoryComponent(this); Movable = new MovableComponent(this) { Actual = new Position <short> { X = dto.MapX, Y = dto.MapY }, Destination = new Position <short> { X = dto.MapX, Y = dto.MapY } }; _visibility = new VisibilityComponent(this); SkillComponent = new SkillComponent(this, skills); Locomotion = new LocomotionComponent(this); Components = new Dictionary <Type, IComponent> { { typeof(VisibilityComponent), _visibility }, { typeof(InventoryComponent), Inventory }, { typeof(SkillComponent), SkillComponent }, { typeof(LocomotionComponent), Locomotion } }; Mates = new List <IMateEntity>(); #region Stat Defence = (short)Algorithm.GetDefenceClose(Character.Class, Level); DefenceDodge = (short)Algorithm.GetDodgeClose(Character.Class, Level); DistanceDefence = (short)Algorithm.GetDefenceRange(Character.Class, Level); DistanceDefenceDodge = (short)Algorithm.GetDodgeRanged(Character.Class, Level); MagicalDefence = (short)Algorithm.GetDefenceMagic(Character.Class, Level); MinHit = (short)Algorithm.GetMinHit(Character.Class, Level); MaxHit = (short)Algorithm.GetMaxHit(Character.Class, Level); HitRate = (byte)Algorithm.GetHitRate(Character.Class, Level); CriticalChance = Algorithm.GetHitCritical(Character.Class, Level); CriticalRate = (byte)Algorithm.GetHitCriticalRate(Character.Class, Level); DistanceCriticalChance = Algorithm.GetDistCritical(Character.Class, Level); DistanceCriticalRate = Algorithm.GetDistCriticalRate(Character.Class, Level); #endregion Stat }
public static QsetPacketReceive GenerateQSetPacket(this QuicklistComponent quicklist, CharacterQuicklistDto args) { string tmp = $"{args.Type}.{args.Slot}.{args.Position}.0"; return(new QsetPacketReceive { Q1 = args.Q1, Q2 = args.Q2, Data = tmp }); }
public static QsetPacketReceive GenerateRemoveQSetPacket(this QuicklistComponent comp, short q1, short q2) { const string tmp = "7.7-1.0"; return(new QsetPacketReceive { Q1 = q1, Q2 = q2, Data = tmp }); }