Esempio n. 1
0
 private Movement.GenericMovement AdjustDirection(Movement.GenericMovement movement, float vector)
 {
     Movement.GenericMovement result = movement;
     if (movement.Direction != Movement.ManeuverDirection.Forward)
     {
         movement.Direction = (vector < 0) ? Movement.ManeuverDirection.Left : Movement.ManeuverDirection.Right;
     }
     return(result);
 }
Esempio n. 2
0
        public Movement.GenericMovement GetManeuver(Ship.GenericShip thisShip, Ship.GenericShip anotherShip)
        {
            float vector    = Actions.GetVector(thisShip, anotherShip);
            bool  isClosing = Actions.IsClosing(thisShip, anotherShip);

            if (inDebug)
            {
                Debug.Log("Vector: " + vector + ", Closing: " + isClosing);
            }
            Movement.GenericMovement result = GetManeuverFromTable(vector, isClosing);
            return(result);
        }
Esempio n. 3
0
        public Movement.GenericMovement GetManeuverFromTable(float vector, bool isClosing)
        {
            List <string> table           = null;
            bool          adjustDirection = false;

            if (isClosing)
            {
                if ((vector > -22.5f) && (vector < 22.5f))
                {
                    if (inDebug)
                    {
                        Debug.Log("FrontManeuversInner");
                    }
                    table = FrontManeuversInner;
                }
                else if (((vector >= 22.5f) && (vector < 67.5f)) || ((vector <= -22.5f) && (vector > -67.5f)))
                {
                    if (inDebug)
                    {
                        Debug.Log("FrontSideManeuversInner");
                    }
                    table           = FrontSideManeuversInner;
                    adjustDirection = true;
                }
                else if (((vector >= 67.5f) && (vector < 112.5f)) || ((vector <= -67.5f) && (vector > -112.5f)))
                {
                    if (inDebug)
                    {
                        Debug.Log("SideManeuversInner");
                    }
                    table           = SideManeuversInner;
                    adjustDirection = true;
                }
                else if (((vector >= 112.5f) && (vector < 157.5f)) || ((vector <= -112.5f) && (vector > -157.5f)))
                {
                    if (inDebug)
                    {
                        Debug.Log("BackSideManeuversInner");
                    }
                    table           = BackSideManeuversInner;
                    adjustDirection = true;
                }
                else if ((vector >= 157.5f) || (vector <= -157.5f))
                {
                    if (inDebug)
                    {
                        Debug.Log("BackManeuversInner");
                    }
                    table = BackManeuversInner;
                }
            }
            else
            {
                if ((vector > -22.5f) && (vector < 22.5f))
                {
                    if (inDebug)
                    {
                        Debug.Log("FrontManeuversOuter");
                    }
                    table = FrontManeuversOuter;
                }
                else if (((vector >= 22.5f) && (vector < 67.5f)) || ((vector <= -22.5f) && (vector > -67.5f)))
                {
                    if (inDebug)
                    {
                        Debug.Log("FrontSideManeuversOuter");
                    }
                    table           = FrontSideManeuversOuter;
                    adjustDirection = true;
                }
                else if (((vector >= 67.5f) && (vector < 112.5f)) || ((vector <= -67.5f) && (vector > -112.5f)))
                {
                    if (inDebug)
                    {
                        Debug.Log("SideManeuversOuter");
                    }
                    table           = SideManeuversOuter;
                    adjustDirection = true;
                }
                else if (((vector >= 112.5f) && (vector < 157.5f)) || ((vector <= -112.5f) && (vector > -157.5f)))
                {
                    if (inDebug)
                    {
                        Debug.Log("BackSideManeuversOuter");
                    }
                    table           = BackSideManeuversOuter;
                    adjustDirection = true;
                }
                else if ((vector >= 157.5f) || (vector <= -157.5f))
                {
                    if (inDebug)
                    {
                        Debug.Log("BackManeuversOuter");
                    }
                    table = BackManeuversOuter;
                }
            }

            Movement.GenericMovement result = RandomManeuverFromTable(table);
            if (adjustDirection)
            {
                if (inDebug)
                {
                    Debug.Log("Adjust direction according to vector: " + vector);
                }
                result = AdjustDirection(result, vector);
            }


            return(result);
        }