/// <summary> /// Display the CrewMember pop-up /// </summary> private void ShowPopUp() { UIManagement.MemberMeeting.SetUpDisplay(CrewMember, _source.ToString()); UIManagement.Tutorial.ShareEvent(GetType().Name, MethodBase.GetCurrentMethod().Name, CrewMember.Name); if (Usable) { transform.SetParent(_currentPlacement?.RectTransform() ?? _defaultParent, false); transform.position = transform.parent.position; transform.RectTransform().anchoredPosition = Vector2.zero; } }
/// <summary> /// Place the CrewMember to be in-line with the Position it is now paired with /// </summary> public void Place(PositionUI positionUI, bool swap = false) { if (!swap && _currentPlacement) { _currentPlacement.RemoveCrew(); } var currentPositionCrew = positionUI.CrewMemberUI; var positionTransform = positionUI.RectTransform(); transform.SetParent(null, false); CrewMember.Assign(positionUI.Position); positionUI.LinkCrew(this); //if this CrewMember isn't being placed due to a swap, check if there's a CrewMember in this position and cause a swap if (!swap) { if (currentPositionCrew != null) { if (_currentPlacement != null) { currentPositionCrew.Place(_currentPlacement, true); } else { currentPositionCrew.OnReset(); } } } //set size and position transform.SetParent(positionTransform, false); _aspectFitter.aspectMode = AspectRatioFitter.AspectMode.FitInParent; transform.position = positionTransform.position; transform.RectTransform().anchoredPosition = Vector2.zero; _currentPlacement = positionUI; SetPosition(positionUI.Position); //update current position button UIManagement.Tutorial.ShareEvent(GetType().Name, MethodBase.GetCurrentMethod().Name, CrewMember.Name); SetSortValue(_sortValue); }