Esempio n. 1
0
        private List <ActionFailReason> CheckBoostProblems(bool quiet = false)
        {
            List <ActionFailReason> result = new List <ActionFailReason>();

            if (obstaclesStayDetectorBase.OverlapsShipNow)
            {
                if (!quiet)
                {
                    Messages.ShowError("That Boost action is not allowed, as it results in this ship overlapping another ship");
                }
                result.Add(ActionFailReason.Bumped);
            }
            else if (!TheShip.IsIgnoreObstacles && !TheShip.IsIgnoreObstaclesDuringBoost() && !IsTractorBeamBoost &&
                     (obstaclesStayDetectorBase.OverlapsAsteroidNow || obstaclesStayDetectorMovementTemplate.OverlapsAsteroidNow))
            {
                if (!quiet)
                {
                    Messages.ShowError("That Boost action is not allowed, as it results in this ship overlapping an obstacle");
                }
                result.Add(ActionFailReason.ObstacleHit);
            }
            else if (obstaclesStayDetectorBase.OffTheBoardNow || obstaclesStayDetectorMovementTemplate.OffTheBoardNow)
            {
                if (!quiet)
                {
                    Messages.ShowError("That Boost action is not allowed, as it results in this ship leaving the battlefield");
                }
                result.Add(ActionFailReason.OffTheBoard);
            }

            return(result);
        }