Пример #1
0
        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
        }
Пример #2
0
        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
            });
        }
Пример #3
0
        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
            });
        }