public void OnConfirm() { if (selectedUnits.Count > 0 && squadCost <= MaxSquadCost) { ClientNetworkManager.Instance.SendSquadSelection(selectedUnits.Select(x => x.SelectedPlayerUnit).ToList()); CloseMenu(); RTSCamera rtsCam = FindObjectOfType <RTSCamera>(); if (rtsCam != null) { rtsCam.RefocusOn(ClientGameManager.Instance.TeamSpawns[ClientGameManager.Instance.MyPlayer.teamId].transform.position); } } }
private void HandleSelectionBasedInputs() { if (Input.anyKeyDown) { if (Input.GetButtonDown("Stop")) { IssueStopCommand(SelectedEntities.Select(x => x.uniqueId).ToList()); } else if (Input.GetButtonDown("Retreat")) { IssueRetreatCommand(SelectedEntities.Select(x => x.uniqueId).ToList()); } else if (Input.GetButtonDown("Attack")) { SetTargeting(null, 0); foreach (Entity selectedEntity in SelectedEntities) { if (currentTargetingObject == null && selectedEntity.CanAttackLocations()) { SetTargeting(Instantiate <GameObject>(((LocationWeapon)selectedEntity.equippedWeapon).targetingPrefab), 0, null, selectedEntity); } } } else if (Input.GetButtonDown("CameraFocus")) { if (SelectedEntities.Count > 0) { if (SelectedEntities[0].Equals(LastFocusedEntity)) { LastFocusedEntity = SelectedEntities[0]; rtsCamera.SetFollowTarget(LastFocusedEntity.transform); } else { LastFocusedEntity = SelectedEntities[0]; rtsCamera.RefocusOn(LastFocusedEntity.transform.position); } } } else { Dictionary <string, List <Entity> > commandEntites = new Dictionary <string, List <Entity> >(); foreach (Entity selectedEntity in SelectedEntities) { string abilityTypeId = selectedEntity.GetAbilityTypeIdFromInput(); if (abilityTypeId != null) { if (!commandEntites.ContainsKey(abilityTypeId)) { commandEntites.Add(abilityTypeId, new List <Entity>()); } commandEntites[abilityTypeId].Add(selectedEntity); } } foreach (KeyValuePair <string, List <Entity> > commandEntity in commandEntites) { IssueAbilityCommand(commandEntity.Value.Select(x => x.uniqueId).ToList(), commandEntity.Key); } } } }