示例#1
0
 public void SwitchLaunchers()
 {
     foreach (IBallLauncher launcher in m_launchers)
     {
         if (launcher.GetType() == typeof(AssistBallLauncherComponent))
         {
             AssistBallLauncherComponent teamLauncher = (AssistBallLauncherComponent)launcher;
             if (teamLauncher.Team == m_leftGoal.Team)
             {
                 teamLauncher.Team = m_rightGoal.Team;
             }
             else
             {
                 teamLauncher.Team = m_leftGoal.Team;
             }
         }
     }
 }
示例#2
0
 void InitLaunchers()
 {
     foreach (IBallLauncher launcher in m_launchers)
     {
         if (launcher.GetType() == typeof(AssistBallLauncherComponent))
         {
             AssistBallLauncherComponent teamLauncher = (AssistBallLauncherComponent)launcher;
             if (Vector2.DistanceSquared(teamLauncher.GetWorldTransform().Position, m_leftGoal.Position)
                 < Vector2.DistanceSquared(teamLauncher.GetWorldTransform().Position, m_rightGoal.Position))
             {
                 teamLauncher.Team = m_leftGoal.Team;
             }
             else
             {
                 teamLauncher.Team = m_rightGoal.Team;
             }
         }
     }
 }
示例#3
0
        public void SelectALauncher(Team team)
        {
            m_selectedLauncher = null;


            if (m_lDSettings.LaunchersSelection == LaunchersSelectionType.Random)
            {
                int randomIndex = Engine.Random.Next(0, m_launchers.Count);
                m_selectedLauncher = m_launchers[randomIndex];

                m_selectedLauncher.Scan();
            }

            else if (m_lDSettings.LaunchersSelection == LaunchersSelectionType.KickOffTeam)
            {
                m_selectedLauncher = Game.Arena.Launchers[0];
                float shortestPlayerDist = float.MaxValue;

                for (int i = 0; i < Game.Arena.Launchers.Count; i++)
                {
                    AssistBallLauncherComponent launcher = (AssistBallLauncherComponent)Game.Arena.Launchers[i];

                    if (launcher.Team != team)
                    {
                        continue;
                    }

                    launcher.Scan();
                    if (launcher.PlayerToAim != null)
                    {
                        LBE.Core.Transform launcherParent = new LBE.Core.Transform(launcher.Owner.Position, launcher.Owner.Orientation);
                        LBE.Core.Transform launcherWorld  = launcherParent.Compose(launcher.Transform);

                        float launcherToPlayerDist = Vector2.Distance(launcherWorld.Position, launcher.PlayerToAim.Position);

                        if (launcherToPlayerDist < shortestPlayerDist)
                        {
                            shortestPlayerDist = launcherToPlayerDist;
                            m_selectedLauncher = launcher;
                        }
                    }
                }
            }

            else if (m_lDSettings.LaunchersSelection == LaunchersSelectionType.Central)
            {
                m_selectedLauncher = Game.Arena.Launchers[0];

                int randomIndex = Engine.Random.Next(0, m_launchers.Count);
                m_selectedLauncher = m_launchers[randomIndex];

                for (int i = 0; i < Game.Arena.Launchers.Count; i++)
                {
                    CentralBallLauncherComponent launcher = (CentralBallLauncherComponent)Game.Arena.Launchers[i];

                    launcher.Team = team;
                    Vector2 goalPosition;
                    if (launcher.Team == m_leftGoal.Team)
                    {
                        goalPosition = m_leftGoal.Position;
                    }
                    else
                    {
                        goalPosition = m_rightGoal.Position;
                    }

                    Vector2 launcherToGoalDir = goalPosition - launcher.GetWorldTransform().Position;
                    launcherToGoalDir.Normalize();
                    launcher.Owner.Orientation = launcherToGoalDir.Angle();

                    launcher.Scan();
                }
            }
        }