public void HighlightParty(Party p) { UI_PartyListElement elem = ListElements[p]; elem.Background.color = ColorManager.Singleton.UiMainLighter2; elem.transform.SetAsLastSibling(); }
private void CalculateTargetPositions(Dictionary <Party, int> values) { SourcePositions.Clear(); TargetPositions.Clear(); int counter = 0; Dictionary <Party, int> sortedValues = Dynamic ? values.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value) : values; foreach (KeyValuePair <Party, int> entry in sortedValues) { float y = -(counter * (ListElementHeight + PADDING)); UI_PartyListElement elem = ListElements[entry.Key]; SourcePositions.Add(elem, elem.GetComponent <RectTransform>().anchoredPosition); TargetPositions.Add(elem, new Vector2(0, y)); counter++; } }
public void Init(Dictionary <Party, int> values, bool dynamic) { ListElements.Clear(); ListElementHeight = PartyListElementPrefab.GetComponent <RectTransform>().sizeDelta.y; IsAnimating = false; Parties = values.Keys.ToList(); Dynamic = dynamic; for (int i = 0; i < ListContainer.transform.childCount; i++) { Destroy(ListContainer.transform.GetChild(i).gameObject); } foreach (KeyValuePair <Party, int> entry in values) { UI_PartyListElement elem = Instantiate(PartyListElementPrefab, ListContainer.transform, false); elem.Init(entry.Key, entry.Value.ToString()); ListElements.Add(entry.Key, elem); } CalculateTargetPositions(values); UpdatePartyPosition(Parties); }