public static TargetSelectionManager FetchTargetSelectionManager() { GameObject targetSelectionManagerObject = GameObject.FindGameObjectWithTag(TagsConstants.TARGET_SELECTION_MANAGER_TAG); TargetSelectionManager targetSelectionManager = targetSelectionManagerObject.GetComponent <TargetSelectionManager>(); return(targetSelectionManager); }
public void GenericTagOutAimAction(GameObject actionUser) { List <GameObject> runners = PlayerUtils.GetRunnersOnField() .OrderBy(runner => Vector3.Distance(actionUser.transform.position, runner.transform.position)) .ToList(); if (runners.Count > 1) { TargetSelectionManager.EnableSelection(runners.First().transform.position, runners, TagOutAimAction, actionUser); PlayersTurnManager.IsCommandPhase = true; } else { GameObject nearestRunner = runners.First(); this.TagOutAimAction(actionUser, nearestRunner); } }
public void GenericPassAction(GameObject actionUser) { List <GameObject> fielders = PlayerUtils.GetFieldersOnField() .Where(fielder => !fielder.Equals(actionUser)) .OrderBy(fielder => Vector3.Distance(actionUser.transform.position, fielder.transform.position)) .ToList(); Action <GameObject, GameObject> finalActionsToPerform = PassBallAction; //Add an additionnal action for the pass. => go back to initial placement for the catcher. if (PlayerUtils.HasCatcherPosition(actionUser)) { CatcherBehaviour catcherBehaviour = PlayerUtils.FetchCatcherBehaviourScript(actionUser); finalActionsToPerform += catcherBehaviour.ReturnToInitialPosition; } TargetSelectionManager.EnableSelection(fielders.First().transform.position, fielders, finalActionsToPerform, actionUser); }