Beispiel #1
0
        private void ProcessCurrentOrder()
        {
            maxCameraRange = 3000;
            maxCameraAngle = 100;

            //weaponSystems.Disengage();

            if (NextOrder != null)
            {
                CurrentOrder = NextOrder;
                NextOrder    = null;
            }

            //log.Debug("processing");
            if (CurrentOrder != null)
            {
                //log.Debug("processing order");
                if (CurrentOrder.Ordertype == OrderType.Scan)
                {
                    if (Docked || Undocking)
                    {
                        Undock();
                    }
                    else
                    {
                        ScanLocation();
                    }
                }
                else if (CurrentOrder.Ordertype == OrderType.Dock)
                {
                    DockToConnector();
                    //navigationSystems.MaintainAltitude(trackingSystems.GetAltitude(), hoverHeight);
                }
                else if (CurrentOrder.Ordertype == OrderType.Standby)
                {
                    if (Docked)
                    {
                        navigationSystems.EnableDockedMode();
                        return;
                    }
                    else
                    {
                        Hover();
                    }
                }
            }
            else if (Docked)
            {
                navigationSystems.EnableDockedMode();
            }
            else
            {
                //if no command ship

                //navigationSystems.AlignAcrossGravity();
                //navigationSystems.Roll(0);
                //navigationSystems.StopRoll();

                Hover();
            }
        }
Beispiel #2
0
        private void ProcessCurrentOrder()
        {
            maxCameraRange = 3000;
            maxCameraAngle = 100;

            //weaponSystems.Disengage();

            if (NextOrder != null)
            {
                if (CurrentOrder != null && CurrentOrder.Ordertype == OrderType.Mine)
                {
                    Disengaging = true;
                    if (CurrentOrder.MiningIndex == 0)
                    {
                        CurrentOrder = NextOrder;
                        NextOrder    = null;
                        Disengaging  = false;
                    }
                }
                else
                {
                    CurrentOrder = NextOrder;
                    NextOrder    = null;
                }
            }

            //log.Debug("processing");
            if (CurrentOrder != null)
            {
                //log.Debug("processing order");
                if (CurrentOrder.Ordertype == OrderType.Scan)
                {
                    if (Docked || Undocking)
                    {
                        Undock();
                    }
                    else
                    {
                        ScanLocation();
                    }
                }
                else if (CurrentOrder.Ordertype == OrderType.Dock)
                {
                    DockToConnector();
                    //Hover();
                    //log.Debug("Position: " + CurrentOrder.PrimaryLocation + "\nforward: " + CurrentOrder.DirectionalVectorOne + "\nup: " + CurrentOrder.ThirdLocation);
                    //navigationSystems.MaintainAltitude(trackingSystems.GetAltitude(), hoverHeight);
                }
                else if (CurrentOrder.Ordertype == OrderType.Standby)
                {
                    if (Docked)
                    {
                        navigationSystems.EnableDockedMode();
                        return;
                    }
                    else
                    {
                        Hover();
                    }
                }
                else if (CurrentOrder.Ordertype == OrderType.Mine)
                {
                    if (Docked || Undocking)
                    {
                        Undock();
                    }
                    else if (Disengaging)
                    {
                        ExitMiningPosition();
                    }
                    else
                    {
                        MinePosition();
                    }
                }
            }
            else if (Docked)
            {
                navigationSystems.EnableDockedMode();
            }
            else
            {
                //if no command ship

                //navigationSystems.AlignAcrossGravity();
                //navigationSystems.Roll(0);
                //navigationSystems.StopRoll();

                Hover();
            }
        }