public override System.Type Tick()
        {
            if (proximity.target != null)
            {
                behavior.previousState = typeof(ShipFiringState);

                if (proximity.target == targeting.target)
                {
                    Debug.Log("Turn to Circling");
                    return(typeof(ShipCirclingState));
                }
                Debug.Log("Turn to Evading");
                return(typeof(ShipEvadingState));
            }

            if (!behavior.targeting.targetLocked)
            {
                Debug.Log("Turn to Tracking");
                return(typeof(ShipTrackingState));
            }

            if (behavior.targeting.target == null)
            {
                Debug.Log("Turn to Standby");
                return(typeof(ShipStandbyState));
            }

            movement.trackTarget(targeting.target);
            movement.move();
            primaryweapon.fire();
            return(null);
        }
        public override System.Type Tick()
        {
            if (targeting.target == null)
            {
                Debug.Log("Turn to Standby");
                return(typeof(TurretStandbyState));
            }
            if (targeting.targetLocked)
            {
                Debug.Log("Turn to Firing");
                return(typeof(TurretFiringState));
            }

            movement.trackTarget(targeting.target);
            return(null);
        }