void InitUi() { UpdateHeader(); abilityNamesToDials = new Dictionary <string, NumberDial> (); abilityNamesToDials.Add("strength", characterCustomization.manager.optionsWindow.AddNumberDial()); abilityNamesToDials.Add("dexterity", characterCustomization.manager.optionsWindow.AddNumberDial()); abilityNamesToDials.Add("constitution", characterCustomization.manager.optionsWindow.AddNumberDial()); abilityNamesToDials.Add("intelligence", characterCustomization.manager.optionsWindow.AddNumberDial()); abilityNamesToDials.Add("wisdom", characterCustomization.manager.optionsWindow.AddNumberDial()); abilityNamesToDials.Add("charisma", characterCustomization.manager.optionsWindow.AddNumberDial()); foreach (NumberDial dial in abilityNamesToDials.Values) { dial.OnValueWillChange += UpdateDialsAndAbilities; } foreach (string abilityName in abilityNamesToDials.Keys) { NumberDial dial = abilityNamesToDials [abilityName]; dial.generateLabel = (int value) => { return(UtilString.Capitalize(abilityName) + ": " + value + ", Cost: " + NextPointCost(value)); }; dial.Min = MIN_VALUE_ALLOWED_PER_ABILITY; dial.Max = MAX_VALUE_ALLOWED_PER_ABILITY; } }
private void UpdateDialsAndAbilities(NumberDial nd, bool willDecrease) { if (willDecrease) { int refund = CurrentPointRefund(nd.Current); pointsAlotted -= refund; RemoveAbilityGaugeModUnit(AbilityNameFromButton(nd)); //Take away ability increase feature.... } else { int cost = NextPointCost(nd.Current); pointsAlotted += cost; AddAbilityGaugeModUnit(AbilityNameFromButton(nd)); //Give ability increase feature... //Set max of all gauges to whatever is smaller: 15? or the current amount + (pointsAllowed-pointsAlotted....) } SetMaxes(); UpdateHeader(); characterCustomization.UpdateSheet(); if (PointsLeft == 0) { EnableConfirm(); } else { DisableConfirm(); } }
public NumberDial AddNumberDial(string text = "0") { GameObject numberDial = Instantiate(UIPrefabs.instance.numberCounterPrefab); NumberDial dial = numberDial.GetComponent <NumberDial> (); dial.label.text = text; numberDial.transform.SetParent(Content, false); return(dial); }
private void SetMaxes() { foreach (string abilityName in abilityNamesToDials.Keys) { NumberDial dial = abilityNamesToDials [abilityName]; if (NextPointCost(dial.Current) > PointsLeft) { dial.Max = dial.Current; } else { dial.Max = MAX_VALUE_ALLOWED_PER_ABILITY; } } }
private string AbilityNameFromButton(NumberDial dial) { string ret = abilityNamesToDials.FirstOrDefault(x => x.Value == dial).Key; return(ret); }