public new void RunOnePosition() { /* OGoal | AI | Ball | Player | AIGoal */ if (AICheckBehaviour.FarFromBall(player, ball)) { AIBasicBehaviour.Sprint(player, 1); if (AICheckBehaviour.CheckIfCloseToPickup(GetActivePickups(), player)) { AIMovementBehaviour.LookAt(player, AICheckBehaviour.GetClosestPickup(GetActivePickups(), GetActiveCount(), player)); AIMovementBehaviour.MoveForward(player); } else { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } } else { AIBasicBehaviour.Sprint(player, 1); AIGlobalBehaviour.PositionAndShoot(player, ball, goal); } }
public new void RunThreePosition() { /* OGoal | Player, AI | Ball | AIGoal */ if (AICheckBehaviour.FarFromBall(player, ball)) { AIBasicBehaviour.Sprint(player, 1); if (AICheckBehaviour.CheckIfCloseToOpponent(player, opponent)) { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseSword(player); AIMovementBehaviour.MoveTowards(player, ball); } else if (AICheckBehaviour.CheckOpponentsHealth(opponent)) { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } else { AIGlobalBehaviour.PositionAndShoot(player, ball, goal); } } else { AIBasicBehaviour.Sprint(player, 1); // Move towards the ball as fast as possible. AIGlobalBehaviour.PositionAndShoot(player, ball, goal); } }
public new void RunTwoPosition() { /* OGoal | Player | Ball | AI | AIGoal */ if (AICheckBehaviour.FarFromBall(player, ball)) { if (AICheckBehaviour.CheckIfCloseToOpponent(player, opponent)) { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseSword(player); AIMovementBehaviour.MoveTowards(player, ball); } else if (AICheckBehaviour.CheckOpponentsHealth(opponent)) { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } else { AIMovementBehaviour.LookAt(player, ball); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } } else { if (AICheckBehaviour.CheckIfBallApproaching(player, ball)) { AIBasicBehaviour.UseShield(player); } AIGlobalBehaviour.PositionAndShoot(player, ball, goal); } }
public new void RunTwoPosition() { /* OGoal | Player | Ball | AI | AIGoal */ if (AICheckBehaviour.FarFromBall(player, ball)) { AIBasicBehaviour.Sprint(player, 1); if (aIController.lineOfSight.CheckIfBallSpotted()) { AIMovementBehaviour.LookAt(player, ball); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } else { AIGlobalBehaviour.PositionAndShoot(player, ball, goal); } } else { if (AICheckBehaviour.CheckIfBallApproaching(player, ball)) { AIBasicBehaviour.UseShield(player); } AIGlobalBehaviour.PositionAndShoot(player, ball, goal); } }
public static void PositionInFrontOf(GameObject player, GameObject ball, GameObject goal) { /* This method position the player in front of the given object. * It is mainly used to position the player in front of the ball in such a way that the ball is * between the player and the goal. */ Vector2 coordinates = AICalculate.FindPointBetween(player, ball, goal); /* Now we know what is the position of the point that the player will move towards. * Next we need to move the player towards that point. * MoveTowards does not require the player character to look in the * certain direction so looking and moving can be done separately. */ AIMovementBehaviour.MoveTowards(player, coordinates.x, coordinates.y); }
public new void RunZeroPosition() { /* OGoal | Ball | Player, AI | AIGoal */ if (AICheckBehaviour.FarFromBall(player, ball)) { AIBasicBehaviour.Sprint(player, 1); if (aIController.lineOfSight.CheckIfBallSpotted()) { AIMovementBehaviour.LookAt(player, ball); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } else if (AICheckBehaviour.CheckIfCloseToPickup(GetActivePickups(), player)) { AIMovementBehaviour.LookAt(player, AICheckBehaviour.GetClosestPickup(GetActivePickups(), GetActiveCount(), player)); AIMovementBehaviour.MoveForward(player); } else { AIGlobalBehaviour.PositionAndShoot(player, ball, aIController.lineOfSight.GetAvailablePoint()); } } else { if (AICheckBehaviour.CheckIfCloseToOpponent(player, opponent)) { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseSword(player); } else if (AICheckBehaviour.CheckOpponentsHealth(opponent)) { AIMovementBehaviour.LookAt(player, opponent); AIBasicBehaviour.UseGun(player); } AIGlobalBehaviour.PositionAndShoot(player, ball, aIController.lineOfSight.GetAvailablePoint()); } }
public new void RunZeroPosition() { /* OGoal | Ball | Player, AI | AIGoal */ if (AICheckBehaviour.FarFromBall(player, ball)) { // If far from ball if (aIController.lineOfSight.CheckIfWallSpotted()) { AIGlobalBehaviour.ShootInTheMiddle(player, ball, goal); } else { AIGlobalBehaviour.PositionAndShoot(player, ball, aIController.lineOfSight.GetAvailablePoint()); } } else { // If close to a pickup - move towards it if (aIController.lineOfSight.CheckIfBallSpotted()) { AIMovementBehaviour.LookAt(player, ball); AIBasicBehaviour.UseGun(player); AIMovementBehaviour.MoveTowards(player, ball); } else if (AICheckBehaviour.CheckIfCloseToPickup(GetActivePickups(), player)) { AIMovementBehaviour.LookAt(player, AICheckBehaviour.GetClosestPickup(GetActivePickups(), GetActiveCount(), player)); AIMovementBehaviour.MoveForward(player); } else { AIGlobalBehaviour.PositionAndShoot(player, ball, aIController.lineOfSight.GetAvailablePoint()); } } }