/** * this is the updated fucntion for the state */ public override void Excute(GameObject CallingObject) { FieldPlayer PlayerScript = CallingObject.GetComponent <FieldPlayer>(); if (PlayerScript.BallInReceivingRange() || !PlayerScript.GetTeam().InControl()) { PlayerScript.ChangeState(CallingObject, ChaseBall.Instance()); return; } Steer2D.Arrive Arr = (Steer2D.Arrive)PlayerScript.GetSteeringController().GetBehaviourByTypeName("Steer2D.Arrive"); if (Arr.AtTarget) { //PlayerScript.ChangeState(CallingObject, Wait.Instance()); //PlayerScript.GetSteeringController().TurnOff(Behaviour.Arrive); // PlayerScript.GetSteeringController().TurnOff(Behaviour.Pursue); PlayerScript.TrackBall(); if (PlayerScript.IsClosestTeamMemberToBall()) { PlayerScript.ChangeState(CallingObject, ChaseBall.Instance()); } } }
/** * this is the updated fucntion for the state */ public override void Excute(GameObject CallingObject) { FieldPlayer PlayerScript = CallingObject.GetComponent <FieldPlayer>(); if (PlayerScript.BallInKickingRange()) { PlayerScript.ChangeState(CallingObject, KickBall.Instance()); return; } if (PlayerScript.IsClosestTeamMemberToBall()) { Steer2D.Seek S = (Steer2D.Seek)PlayerScript.GetSteeringController().GetBehaviourByTypeName("Steer2D.Seek"); if (S) { S.TargetPoint = PlayerScript.Ball.transform.position; } return; } PlayerScript.ChangeState(CallingObject, ReturnToHomeRegion.Instance()); }
/** * this is the updated fucntion for the state */ public override void Excute(GameObject CallingObject) { FieldPlayer PlayerScript = CallingObject.GetComponent <FieldPlayer>(); if (!PlayerScript.GetTeam().InControl()) { PlayerScript.ChangeState(CallingObject, ReturnToHomeRegion.Instance()); return; } Steer2D.Arrive Arr = (Steer2D.Arrive)PlayerScript.GetSteeringController().GetBehaviourByTypeName("Steer2D.Arrive"); if (Arr.TargetPoint != PlayerScript.GetTeam().GetSupportSpot()) { PlayerScript.GetSteeringController().TurnOn(Behaviour.Arrive); Arr.TargetPoint = PlayerScript.GetTeam().GetSupportSpot(); } Vector2 ShootingTarget = new Vector2(); if (PlayerScript.GetTeam().CanShoot(CallingObject.transform.position, out ShootingTarget, PlayerScript.MaxShootingForce)) //TODO ?Need Confidence here? { PlayerScript.GetTeam().RequestPass(CallingObject); } if (Arr.AtTarget) { //PlayerScript.GetSteeringController().TurnOff(Behaviour.Arrive); PlayerScript.TrackBall(); if (!PlayerScript.IsThreatened()) { PlayerScript.GetTeam().RequestPass(CallingObject); } } //If closest to ball and not in goalkeepers hands... Chase the ball if (PlayerScript.IsClosestTeamMemberToBall() && (!PlayerScript.GetTeam().GetPitch().GoalKeeperHasBall())) { PlayerScript.ChangeState(CallingObject, ChaseBall.Instance()); return; } }
/** * this is the updated fucntion for the state */ public override void Excute(GameObject CallingObject) { FieldPlayer PlayerScript = CallingObject.GetComponent <FieldPlayer>(); if (PlayerScript.GetTeam().GetPitch().GetGameInPlay()) { //If closest to ball and not in goalkeepers hands... Chase the ball if (PlayerScript.IsClosestTeamMemberToBall() && (!PlayerScript.GetTeam().GetPitch().GoalKeeperHasBall())) { PlayerScript.ChangeState(CallingObject, ChaseBall.Instance()); return; } } Steer2D.Arrive Arr = (Steer2D.Arrive)PlayerScript.GetSteeringController().GetBehaviourByTypeName("Steer2D.Arrive"); if (Arr.AtTarget) { PlayerScript.ChangeState(CallingObject, Wait.Instance()); } }
/** * this is the updated fucntion for the state */ public override void Excute(GameObject CallingObject) { FieldPlayer PlayerScript = CallingObject.GetComponent <FieldPlayer>(); PlayerScript.TrackBall(); if (PlayerScript.GetTeam().GetPitch().GetGameInPlay()) { //If closest to ball and not in goalkeepers hands... Chase the ball if (PlayerScript.IsClosestTeamMemberToBall() && (!PlayerScript.GetTeam().GetPitch().GoalKeeperHasBall())) { PlayerScript.ChangeState(CallingObject, ChaseBall.Instance()); return; } } if (PlayerScript.GetTeam().InControl() && (PlayerScript.GetTeam().ControllingPlayer != PlayerScript && PlayerScript.AheadOfAttacker())) { PlayerScript.GetTeam().RequestPass(CallingObject); return; } }