Exemplo n.º 1
0
 public MateEntity(IPlayerEntity owner, CharacterMateDto dto, NpcMonsterDto npcMonster) : base(VisualType.Monster, dto.Id)
 {
     Owner        = owner;
     Mate         = dto;
     NpcMonster   = npcMonster;
     Level        = dto.Level;
     LevelXp      = dto.Experience;
     Hp           = dto.Hp;
     HpMax        = dto.Hp;
     Mp           = dto.Mp;
     MpMax        = dto.Mp;
     IsTeamMember = dto.IsTeamMember;
     MateType     = dto.MateType;
     PetId        = 0;
     Movable      = new MovableComponent(this, NpcMonster.Speed)
     {
         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);
     Components     = new Dictionary <Type, IComponent>
     {
         { typeof(VisibilityComponent), _visibility },
         { typeof(MovableComponent), Movable },
         { typeof(SkillComponent), SkillComponent }
     };
 }
Exemplo n.º 2
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
        }
Exemplo n.º 3
0
        public MonsterEntity(MapMonsterDto dto, IEnumerable <NpcMonsterSkillDto> skills) : base(VisualType.Monster, dto.Id)
        {
            Movable = new MovableComponent(this, dto.IsMoving ? dto.NpcMonster.Speed : (byte)0)
            {
                Actual = new Position <short> {
                    X = dto.MapX, Y = dto.MapY
                },
                Destination = new Position <short> {
                    X = dto.MapX, Y = dto.MapY
                }
            };
            Speed          = (byte)(dto.IsMoving ? dto.NpcMonster.Speed : 0);
            Level          = dto.NpcMonster.Level;
            Hp             = dto.NpcMonster.MaxHp;
            HpMax          = dto.NpcMonster.MaxHp;
            Mp             = dto.NpcMonster.MaxMp;
            MpMax          = dto.NpcMonster.MaxMp;
            BasicArea      = dto.NpcMonster.BasicArea;
            SkillComponent = new SkillComponent(this, skills);
            NpcMonster     = dto.NpcMonster;
            MapMonster     = dto;
            _visibility    = new VisibilityComponent(this);
            Components     = new Dictionary <Type, IComponent>
            {
                { typeof(VisibilityComponent), _visibility },
                { typeof(MovableComponent), Movable },
                { typeof(NpcMonsterComponent), new NpcMonsterComponent(this, dto) },
                { typeof(SkillComponent), SkillComponent }
            };

            #region Stat

            Defence              = dto.NpcMonster.CloseDefence;
            DefenceDodge         = dto.NpcMonster.DefenceDodge;
            DistanceDefence      = dto.NpcMonster.DistanceDefence;
            DistanceDefenceDodge = dto.NpcMonster.DistanceDefenceDodge;
            MagicalDefence       = dto.NpcMonster.MagicDefence;
            MinHit         = dto.NpcMonster.DamageMinimum;
            MaxHit         = dto.NpcMonster.DamageMaximum;
            HitRate        = (byte)dto.NpcMonster.Concentrate;
            CriticalChance = dto.NpcMonster.CriticalChance;
            CriticalRate   = dto.NpcMonster.CriticalRate;

            #endregion Stat
        }
Exemplo n.º 4
0
        public NpcEntity(MapNpcDto npc, ShopDto shop) : base(VisualType.Npc, npc.Id)
        {
            Movable = new MovableComponent(this, npc.IsMoving ? npc.NpcMonster.Speed : (byte)0)
            {
                Actual        = new Position <short>(npc.MapX, npc.MapY),
                Destination   = new Position <short>(npc.MapX, npc.MapY),
                DirectionType = npc.Position
            };
            Speed          = (byte)(npc.IsMoving ? npc.NpcMonster.Speed : 0);
            MapNpc         = npc;
            Level          = npc.NpcMonster.Level;
            Hp             = npc.NpcMonster.MaxHp;
            Mp             = npc.NpcMonster.MaxMp;
            HpMax          = npc.NpcMonster.MaxHp;
            MpMax          = npc.NpcMonster.MaxMp;
            BasicArea      = npc.NpcMonster.BasicArea;
            Shop           = shop != null ? new Shop(shop, this) : null;
            SkillComponent = new SkillComponent(this);
            _visibility    = new VisibilityComponent(this);
            Components     = new Dictionary <Type, IComponent>
            {
                { typeof(VisibilityComponent), _visibility },
                { typeof(MovableComponent), Movable },
                { typeof(NpcMonsterComponent), new NpcMonsterComponent(this, npc) },
                { typeof(SkillComponent), SkillComponent }
            };

            #region Stat

            Defence              = npc.NpcMonster.CloseDefence;
            DefenceDodge         = npc.NpcMonster.DefenceDodge;
            DistanceDefence      = npc.NpcMonster.DistanceDefence;
            DistanceDefenceDodge = npc.NpcMonster.DistanceDefenceDodge;
            MagicalDefence       = npc.NpcMonster.MagicDefence;
            MinHit  = npc.NpcMonster.DamageMinimum;
            MaxHit  = npc.NpcMonster.DamageMaximum;
            HitRate = (byte)npc.NpcMonster.Concentrate;

            #endregion Stat
        }