public void Attack() { if (_memory.Target == null || _abilities == null) { return; } if (_physics.Form == SpiritForm.SF_BALL) { _abilities.UsePrimary(); } if (_physics.Form == SpiritForm.SF_SPIRIT) { if (_timeAsSpirit >= _chaseTime) { _abilities.UseSecondary(); } else { _timeAsSpirit += Time.DeltaTime; } } else { _timeAsSpirit = 0; } _direction = _memory.Target.Position - GameObject.Position; }
public void Attack() { if (_memory.Target == null) { return; } Vector2 start = GameObject.Position + _physics.ViewPoint; Vector2 end = _memory.Target.Position; var direction = Vector2.Normalize((end - start)); _physics.ViewRotation = (float)Math.Atan2(direction.Y, direction.X); if (_abilities != null) { _abilities.UsePrimary(); } }