public Boolean CollidesWith(FlyingGameObject other)
        {
            collidable.Position = this.Position;
            collidable.Rotation = this.Direction;

            other.collidable.Position = other.Position;
            other.collidable.Rotation = other.Direction;
            return this.collidable.CollidesWith(other.collidable);
        }
 public ClearTargetState(NPCBasicAttackStrategy context, NPCShip obj, FlyingGameObject target)
     : base(context, obj, target)
 {
 }
 public NPCBasicAttackStrategy(NPCShip obj, FlyingGameObject target)
     : base(obj)
 {
     AddState(new AttackingState(this, obj, target));
 }
 public FlyingFollowState(FlyingStrategy context, FlyingGameObject obj, FlyingGameObject followObj)
     : base(context)
 {
     this.obj = obj;
     this.followObj = followObj;
 }
 public FlyingStrategy(FlyingGameObject obj)
 {
     this.obj = obj;
 }
 public FlyingFollowStrategy(FlyingGameObject obj, FlyingGameObject followObj) : base(obj)
 {
     this.followObj = followObj;
     this.AddState(new FlyingFollowState(this, obj, followObj));
 }