public void MoveWithSpeed(ObjectPosition targetPos) { var angle = (targetPos.PosX - Pos.PosX) / (targetPos.PosZ - Pos.PosZ); var preValue = System.Math.Pow(MoveSpeed, 2); preValue = preValue / (angle + 1); Pos.PosX = System.Math.Sqrt(preValue); Pos.PosZ = Pos.PosX * angle; }
public CharacterInnfi() { CharType = CharacterType.Innfi; MoveSpeed = 25; Health = 200; CurrentHealth = 200; AutoRange = 20; AutoDamage = 15; AutoSpeed = 0.6f; Pos = new ObjectPosition(0, 0, 0); }
public void Move(ObjectPosition targetPos) { var distX = System.Math.Pow(targetPos.PosX - Pos.PosX, 2); var distZ = System.Math.Pow(targetPos.PosZ - Pos.PosZ, 2); var distance = System.Math.Sqrt(distX + distZ); if (distance < MoveSpeed) { Pos = targetPos; return; } MoveWithSpeed(targetPos); }
public void Invoke(CharacterBase character, ObjectPosition pos) { character.Pos = pos; }