public BotBase GetBallOwner() { GenericFootballer footballer = Main.LevelController.nullableCurrentFootballerWithBall(); if (footballer != null) { return(footballer.GetComponent <BotBase>()); } return(null); }
public void PickupLooseBall(LooseBall looseball, GenericFootballer tar) { m_looseBalls.Remove(looseball); this.catch_particle_at(looseball.transform.position); if (this.get_footballer_team(tar) == Team.PlayerTeam) { m_playerTeamFootballersWithBall.Add(tar); tar._current_mode = GenericFootballer.GenericFootballerMode.Idle; tar.set_wait_delay(15); } else { this.m_enemyTeamFootballersWithBall.Add(tar); tar._current_mode = GenericFootballer.GenericFootballerMode.Idle; tar.set_wait_delay(15); } // ai msg { BotBase new_ball_owner = tar.GetComponent <BotBase>(); if (_prev_ball_owner != null) { _prev_ball_owner.Msg_LostBall(); } new_ball_owner.Msg_GotBall(); _prev_ball_owner = new_ball_owner; } if (__commentary_last_team_to_own_ball == Team.PlayerTeam) { if (__commentary_last_team_to_own_ball == this.get_footballer_team(tar)) { m_commentaryManager.notify_event(CommentaryEvent.PassComplete); } else if (__commentary_last_team_to_own_ball != this.get_footballer_team(tar) && new Vector3(looseball._vel.x, looseball._vel.y, looseball._vz).magnitude > 1) { m_commentaryManager.notify_event(CommentaryEvent.Interception, true); } } Destroy(looseball.gameObject); }
private void check_bump_with_target(GenericFootballer tar) { if (this.collider_contains(tar.GetComponent <CircleCollider2D>()) && this.get_calculated_velocity().magnitude > 0) { Vector2 calc_vel_dir = this.get_calculated_velocity().normalized; float mag = Mathf.Max(this.get_calculated_velocity().magnitude, tar.get_calculated_velocity().magnitude); Vector2 bump_vel = calc_vel_dir * mag; Vector3 hit_spot = new Vector3( (transform.position.x + tar.transform.position.x) / 2, (transform.position.y + tar.transform.position.y) / 2, (transform.position.z + tar.transform.position.z) / 2 ); if (Main.LevelController.get_footballer_team(this) == Team.PlayerTeam) { Main.LevelController.m_commentaryManager.notify_event(CommentaryEvent.Block); } this.apply_bump(Util.vec_scale(bump_vel, -1), hit_spot, true); tar.apply_bump(bump_vel, hit_spot); } }
private void check_bump_with_target(GenericFootballer tar) { if (this.collider_contains(tar.GetComponent<CircleCollider2D>()) && this.get_calculated_velocity().magnitude > 0) { Vector2 calc_vel_dir = this.get_calculated_velocity().normalized; float mag = Mathf.Max(this.get_calculated_velocity().magnitude,tar.get_calculated_velocity().magnitude); Vector2 bump_vel = calc_vel_dir * mag; Vector3 hit_spot = new Vector3( (transform.position.x + tar.transform.position.x)/2, (transform.position.y + tar.transform.position.y)/2, (transform.position.z + tar.transform.position.z)/2 ); if (Main.LevelController.get_footballer_team(this) == Team.PlayerTeam) { Main.LevelController.m_commentaryManager.notify_event(CommentaryEvent.Block); } this.apply_bump(Util.vec_scale(bump_vel,-1),hit_spot,true); tar.apply_bump(bump_vel,hit_spot); } }