public void Select(AbilityStat selector) { if (selector.Index < minIndex) { return; } selected = selector; EmulateSelect(selected); }
public void EmulateSelect(AbilityStat selector) { if (selector.Index < minIndex) { return; } bool shouldBeSelected = selector != null; int culmulativeCost = 0; for (int i = minIndex; i < visibleSelectors; i++) { if (!selectors[i].allowed) { shouldBeSelected = false; } if (shouldBeSelected && !selectors[i].selected) { selectors[i].selected = true; culmulativeCost += ability[i].cost; } else if (!shouldBeSelected) { if (selectors[i].selected) { culmulativeCost -= ability[i].cost; } selectors[i].selected = false; } //All coming should be not selected if (selector == selectors[i]) { shouldBeSelected = false; } } if (characterCreation) { CharacterCreation.NewTransaction(culmulativeCost); } }
void Start() { selectors = new AbilityStat[ability.Length]; var foundSelectors = GetComponentsInChildren <AbilityStat>(); visibleSelectors = Mathf.Min(selectors.Length, foundSelectors.Length); for (int i = 0, l = foundSelectors.Length; i < l; i++) { if (i < visibleSelectors) { selectors[i] = foundSelectors[i]; selectors[i].SetIndex(i); selectors[i].allowed = false; } else { foundSelectors[i].gameObject.SetActive(false); } } for (int i = 0; i < visibleSelectors; i++) { if (this.selectors[i].selected) { selected = this.selectors[i]; } } if (characterCreation) { OnNewPointsAvailable(CharacterCreation.Points); } Select(selectors[0]); }