Пример #1
0
        protected override void SpecialPath(ManagerHelper mH)
        {
            var temp = (Conquest)mH.GetGametype();

            ConquestBase targetBase        = null;
            float        distanceToClosest = float.PositiveInfinity;

            foreach (ConquestBase conquestBase in temp.GetBases())
            {
                if (conquestBase.affiliation != affiliation)
                {
                    float distanceToBase = PathHelper.DistanceSquared(GetOriginPosition(),
                                                                      conquestBase.GetOriginPosition());

                    if (distanceToBase < distanceToClosest)
                    {
                        distanceToClosest = distanceToBase;
                        targetBase        = conquestBase;
                    }
                }
            }

            if (targetBase != null)
            {
                if (PathHelper.DistanceSquared(GetOriginPosition(), targetBase.GetOriginPosition()) > 32 * 32)
                {
                    mH.GetPathHelper().FindClearPath(GetOriginPosition(), targetBase.GetOriginPosition(), mH, path);
                }

                else
                {
                    HoverPath(mH, targetBase.GetOriginPosition(), 32);
                }
            }

            else
            {
                EngagePath(mH);
            }
        }
Пример #2
0
        protected override void SpecialPath(ManagerHelper mH)
        {
            var          temp        = (Conquest)mH.GetGametype();
            ConquestBase forwardBase = temp.GetForwardBase(affiliation, mH);

            if (forwardBase != null)
            {
                mH.GetPathHelper().FindClearPath(GetOriginPosition(), forwardBase.GetOriginPosition(), mH, path);
            }
            else
            {
                EngagePath(mH);
            }
        }