public bool IsHitForwad(float distance, out PlayerController hitPlayer, CampTeam team) { bool result = false; PlayerController hitedPlayer = null; Vector3 origem = transform.position + (transform.forward * 1.0f); Vector3 halfExtents = Vector3.one / 2f; Vector3 direction = transform.forward; Quaternion orientation = transform.rotation; RaycastHit hitInfo; if (Physics.BoxCast(origem, halfExtents, direction, out hitInfo, orientation, distance, LayerMask.GetMask("SoccerPlayer"))) { if (hitInfo.transform.GetComponent <PlayerController>() != null) { hitedPlayer = hitInfo.transform.GetComponent <PlayerController>(); if (hitedPlayer.GetCampTeam() == team && hitedPlayer.isOk) { result = true; } ExtDebug.DrawBoxCastOnHit(origem, halfExtents, orientation, direction, hitInfo.distance, Color.red); } //ExtDebug.DrawBoxCastOnHit(origem, halfExtents, orientation, direction, hitInfo.distance, Color.red); } //ExtDebug.DrawBox(origem, halfExtents, orientation, Color.red); hitPlayer = hitedPlayer; return(result); }
//Animations Event Tryger //Estes eventos são chamados apartir das animações rerentes em quadros espesificos private void EvChangeDirectionStart() { player.SetKinematic(); if (!player.IsMyBall()) { return; } BallController.instance.SetBallProtectedTo(player); BallController.ChangeDirection(); //Se o jogador selecionado do time adversario estiver proximo a mim na hora do lésinho, vou fazer ele tropeçar CampTeam adversary = player.GetCampTeam() == CampTeam.Team_A ? CampTeam.Team_B : CampTeam.Team_A; List <PlayerController> enemys = GameManager.instance.GetPlayersNearBall(adversary, 2.5f); if (enemys.Count > 0) { foreach (PlayerController enemy in enemys) { //Inimigo que estiver segurando o jogador nao sera afetado if (enemy.Locomotion.isJoint == false) { enemy.Locomotion.TriggerStumb(); } } } }
/// <summary> /// Pesquisa e retorna o jogador do time e marcação pesqiusado. Tenha em mente /// que esta pesquisa pode retornar nula se o time adversário não tiver nenhum jogador nesta marcação /// </summary> /// <param name="campteam"></param> /// <param name="marcation"></param> /// <returns>Jogador na mesma marcação e ou nullo se não houver jogador do time nesta marcação</returns> public PlayerController GetPlayerInMarcation(CampTeam campteam, CampPlaceMarcation marcation) { CampTeam otherCampTeam = campteam == CampTeam.Team_A ? CampTeam.Team_B : CampTeam.Team_A; TeamManager team = GetTeamManager(otherCampTeam); PlayerController enemy = team.GetPlayerInMarcation(marcation); return(enemy); }
/// <summary> /// Pesquisa e retorna o jogador do time adversario na mesma marcação que o jogador pesqiusado. Tenha em mente /// que e o jogador retornado nao precisa estar necessáriamente proxima e ou que esta pesquisa pode retornar nula /// se o time adversário não tiver nenhum jogador nesta marcação /// </summary> /// <param name="player"></param> /// <returns>Jogador asversario na mesma marcação e ou nullo se não houver jogador do time adversario nesta marcação</returns> public PlayerController GetEnemyPlayerInMarcation(PlayerController player) { CampTeam campteam = player.GetCampTeam(); CampTeam otherCampTeam = campteam == CampTeam.Team_A ? CampTeam.Team_B : CampTeam.Team_A; TeamManager team = GetTeamManager(otherCampTeam); PlayerController enemy = team.GetPlayerInMarcation(player.GetPlaceMarcation()); return(enemy); }
public Transform GetMarcationPosition(PlayerController player, CampPlaceType placeType) { CampTeam campTeam = player.GetCampTeam(); CampPlaceSide side = GetTeamPlaceSide(campTeam); CampPlaceMarcation marcation = player.GetPlaceMarcation(); CampPosition campPosition = placesManager.GetPosition(side, marcation, placeType); return(campPosition.transform); }
public static bool HasPlayerOk(this CampTeam team) { List <PlayerController> players = team.GetPlayers(); if (players.Exists(r => r.isOk)) { return(true); } return(false); }
public static CampTeam Enemy(this CampTeam team) { if (team == CampTeam.Team_A) { return(CampTeam.Team_B); } else { return(CampTeam.Team_A); } }
public List <PlayerController> GetPlayersNearBall(CampTeam team, float near) { TeamManager manager = GetTeamManager(team); List <PlayerController> players = manager.Players; players.RemoveAll(r => r.isOk == false); //players.RemoveAll(r => r.Locomotion.inAir); players.RemoveAll(r => r.transform.Distance(BallController.instance.transform) > near); return(players); }
public bool IsMyTeam(CampTeam team) { bool result = false; if (owner != null) { if (owner.GetCampTeam() == team) { result = true; } } return(result); }
private TeamManager GetEnemyTeamManager(CampTeam team) { TeamManager manager = null; if (teamMananger1.team != team) { manager = teamMananger1; } else { manager = teamMananger2; } return(manager); }
//Start MANUAL do componente. public void SetTeam(CampTeam team) { this.team = team; //Seleção primaria, selecionamos o jogador mais proximo da bola if (selectedPlayer == null) { PlayerController nearPlayer = gameMananger.GetPlayerNearBall(team); if (nearPlayer != null) { SelectPlayer(nearPlayer); } } ball.onSetMyOwner += OnBallSetOwner; }
public PlayerController GetPlayerNear(PlayerController controller, CampTeam team) { TeamManager manager = GetTeamManager(team); List <PlayerController> players = manager.Players; players.RemoveAll(r => r.isOk == false); // players.RemoveAll(r => r.Locomotion.inAir); if (team == controller.GetCampTeam()) { players.Remove(controller); } float min = players.Min(r => r.Distance(controller)); PlayerController result = players.FirstOrDefault(r => r.Distance(controller) == min); return(result); }
/// <summary> /// Pesquisa em um time especifico pelo jogador mais proximo da bola. /// </summary> /// <param name="team">Time da pesquisa</param> /// <returns>Retorna o Jogador mais proximo da bola, Nunca retorna nulo a menos que o time não tenha jogador nenhum</returns> public PlayerController GetPlayerNearBall(CampTeam team) { TeamManager manager = GetTeamManager(team); List <PlayerController> players = manager.Players; players.RemoveAll(r => r.isOk == false); // players.RemoveAll(r => r.Locomotion.inAir); if (players.Count > 0) { float min = players.Min(r => r.transform.Distance(BallController.instance.transform)); PlayerController player = players.FirstOrDefault(r => r.transform.Distance(BallController.instance.transform) == min); return(player); } else { return(null); } }
public static GameOptionMode GetSelectionMode(this CampTeam team) { return(GameManager.instance.GetSelectionMode(team)); }
public static PlayerController GetPlayerNear(this PlayerController controller, CampTeam team) { return(GameManager.instance.GetPlayerNear(controller, team)); }
public PlayerInput GetPlayerinput(CampTeam team) { TeamManager manager = GetTeamManager(team); return(manager.playerInput); }
public bool IsControllerCPU(CampTeam team) { return(team.GetInputType() == ControllerInputType.ControllerCPU); }
public List <PlayerController> GetPlayers(CampTeam team) { return(GetTeamManager(team).Players); }
public static PlayerInput GetInputs(this CampTeam team) { return(GameManager.instance.GetPlayerinput(team)); }
public PlayerController GetSelectedPlayer(CampTeam team) { TeamManager manager = GetTeamManager(team); return(manager.MultSelection.GetSelectedPlayer()); }
/// <summary> /// Pesquisa de quem é a entrada de jogador que controla determinado time /// </summary> /// <param name="team">Time a ser pesquisado </param> /// <returns>O tipo de controlador de entrada.</returns> public ControllerInputType GetControllerType(CampTeam team) { TeamManager manager = GetTeamManager(team); return(manager.inputType); }
public static List <PlayerController> GetPlayers(this CampTeam team) { return(GameManager.instance.GetPlayers(team)); }
public static ControllerInputType GetInputType(this CampTeam team) { return(GameManager.instance.GetControllerType(team)); }
public static bool IsIA(this CampTeam team) { return(GameManager.instance.IsIA(team)); }
public GameOptionMode GetSelectionMode(CampTeam team) { TeamManager manager = GetTeamManager(team); return(manager.selectionMode); }
public static bool IsController2(this CampTeam team) { return(GameManager.instance.IsController2(team)); }
public static bool IsMyBall(this CampTeam team) { return(BallController.instance.IsMyTeam(team)); }
public static PlayerController GetSelectedPlayer(this CampTeam team) { return(GameManager.instance.GetSelectedPlayer(team)); }
public CampPlaceSide GetTeamPlaceSide(CampTeam team) { TeamManager manager = GetTeamManager(team); return(manager.side); }