/// <summary>
 /// Reset this UI back to its defaults.
 /// </summary>
 public void OnReset()
 {
     //set back to default parent and position
     transform.SetParent(_defaultParent, false);
     transform.position       = _defaultParent.position;
     _aspectFitter.aspectMode = AspectRatioFitter.AspectMode.FitInParent;
     transform.SetAsLastSibling();
     if (_dragStartPosition != (Vector2)transform.position)
     {
         TrackerEventSender.SendEvent(new TraceEvent("CrewMemberUnpositioned", TrackerAsset.Verb.Interacted, new Dictionary <TrackerContextKey, object>
         {
             { TrackerContextKey.CrewMemberName, CrewMember.Name },
             { TrackerContextKey.PreviousCrewMemberPosition, _currentPlacement != null ? _currentPlacement.Position : Position.Null }
         }, GameObjectTracker.TrackedGameObject.Npc));
     }
     if (_currentPlacement != null)
     {
         _currentPlacement.RemoveCrew();
         _currentPlacement = null;
     }
     //hide current position button and remove all listeners
     _positionImage.enabled = false;
     _positionButton.onClick.RemoveAllListeners();
     //reset position pop-up if it is currently being shown
     UIManagement.Tutorial.ShareEvent(GetType().Name, MethodBase.GetCurrentMethod().Name, CrewMember.Name);
     SetSortValue(_sortValue);
 }
Exemple #2
0
 public override void LoadSavedTriangles(SavedTriangle thisT)
 {
     base.LoadSavedTriangles(thisT);
     if (CardList.Count != 15)
     {
         throw new BasicBlankException("After loading saved game, must have 15 cards");
     }
     if (PositionUI == null)
     {
         return;
     }
     PositionUI.RepositionCardsOnUI();
 }
    /// <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);
    }