Example #1
0
 private void SyncCollisions(ObstaclesStayDetectorForced collider)
 {
     TheShip.ObstaclesLanded = new List <GenericObstacle>(collider.OverlappedAsteroidsNow);
     if (!TheShip.IsIgnoreObstaclesDuringBarrelRoll())
     {
         collider.OverlappedAsteroidsNow
         .Where((a) => !TheShip.ObstaclesHit.Contains(a)).ToList()
         .ForEach(TheShip.ObstaclesHit.Add);
     }
 }
        private bool IsBoostTemplateColliderDataAllowed(ObstaclesStayDetectorForced collider)
        {
            if (!TheShip.IsIgnoreObstacles &&
                !TheShip.IsIgnoreObstaclesDuringBarrelRoll() &&
                !IsTractorBeamBarrelRoll &&
                collider.OverlapsAsteroidNow)
            {
                BarrelRollProblems.Add(ActionFailReason.ObstacleHit);
            }
            else if (collider.OffTheBoardNow)
            {
                BarrelRollProblems.Add(ActionFailReason.OffTheBoard);
            }

            return(BarrelRollProblems.Count == 0);
        }
Example #3
0
        private bool IsColliderDataAllowed(ObstaclesStayDetectorForced collider, bool isBaseFinalPosition = false)
        {
            if (collider.OverlapsShipNow && isBaseFinalPosition)
            {
                BarrelRollProblems.Add(ActionFailReason.Bumped);
            }
            else if (!TheShip.IsIgnoreObstacles &&
                     !TheShip.IsIgnoreObstaclesDuringBarrelRoll() &&
                     !IsTractorBeamBarrelRoll &&
                     collider.OverlapsAsteroidNow &&
                     !TheShip.IgnoreObstacleTypes.Contains(typeof(Asteroid)))
            {
                BarrelRollProblems.Add(ActionFailReason.ObstacleHit);
            }
            else if (collider.OffTheBoardNow)
            {
                BarrelRollProblems.Add(ActionFailReason.OffTheBoard);
            }

            return(BarrelRollProblems.Count == 0);
        }