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 } }; }
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 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 }
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 }