private void SubSpecializationToggle_ButtonDownClicked(OrderableToggle toggle) { if (Input.GetButton("Shift")) { toggle.Value++; } else { int index = toggle.transform.GetSiblingIndex(); OrderableToggle nextToggle = this.SubSpecializationsContainer.transform.GetChild(index - 1).GetComponent <OrderableToggle>(); bool mustPush = toggle.Value == nextToggle.Value; toggle.Value++; nextToggle.GetComponentInChildren <OrderableToggle>().Value--; if (mustPush) { for (int i = 0; i <= index; i++) { this.SubSpecializationsContainer.transform.GetChild(i).GetComponent <SpecializationDetailsPanel>().SpecializationToggle.Value--; } } } this.OrderSubSpecializations(); }
public void Init(SpecializationPanel parent, SpecializationDescriptor spec, int maxValue) { this.ParentPanel = parent; this.SpecializationName = spec.Name; canAutoManage = spec.CanAutoManageSubSpecializations; this.AutoPriorityToggle.gameObject.SetActive(spec.CanAutoManageSubSpecializations); if (spec.CanAutoManageSubSpecializations) { this.AutoPriorityText.gameObject.SetActive(false); this.AutoPriorityText.gameObject.AddComponent <TooltipHoverable>().Init("", Localization.GetText($"Specialization_{spec.Profession}_{spec.Name}_AutoManageTooltip")); this.AutoPriorityText.gameObject.SetActive(true); } this.SpecializationToggle.MaxValue = maxValue; this.SpecializationToggle.ToggleText.text = spec.GetDisplayName(); if (spec.SubSpecializations.Count == 0) { SubExpandButton.gameObject.SetActive(false); SubCollapseButton.gameObject.SetActive(false); AutoPriorityToggle.gameObject.SetActive(false); } else { foreach (var sub in spec.SubSpecializations.Values) { OrderableToggle subToggle = GameObject.Instantiate(this.SubSpecializationToggleTemplate.gameObject).GetComponent <OrderableToggle>(); subToggle.transform.SetParent(this.SubSpecializationsContainer.transform); subToggle.name = sub.Name; subToggle.ToggleText.text = sub.GetDisplayName(); subToggle.MaxValue = spec.SubSpecializations.Count - 1; subToggle.gameObject.SetActive(true); subToggle.UpButton.onClick.AddListener(() => SubSpecializationToggle_ButtonUpClicked(subToggle)); subToggle.DownButton.onClick.AddListener(() => SubSpecializationToggle_ButtonDownClicked(subToggle)); subToggle.Toggle.onValueChanged.AddListener((x) => SubSpecializationToggle_ToggleValueChanged(subToggle)); subToggle.OrderInput.onValueChanged.AddListener((x) => SubSpecializationToggle_InputValueChanged(subToggle)); this.SubSpecToggles.Add(sub.Name, subToggle); } OrderSubSpecializations(); } this.SpecializationToggle.OrderInput.onValueChanged.AddListener((x) => SpecializationToggle_InputValueChanged()); this.SpecializationToggle.Toggle.onValueChanged.AddListener((x) => SpecializationToggle_ToggleValueChanged()); this.SubCollapseButton.onClick.AddListener(SpecializationToggle_CollapseButtonClicked); this.SubExpandButton.onClick.AddListener(SpecializationToggle_ExpandButtonClicked); this.AutoPriorityToggle.onValueChanged.AddListener(this.AutoManageToggle_ValueChanged); this.DistanceInput.onValueChanged.AddListener((x) => this.DistanceInput_ValueChanged()); }
private void SubSpecializationToggle_InputValueChanged(OrderableToggle toggle) { if (inInit) { return; } this.Specialization.SubSpecializations[toggle.name].Priority = toggle.Value; OrderSubSpecializations(); }
private void SubSpecializationToggle_ToggleValueChanged(OrderableToggle toggle) { if (inInit) { return; } this.Specialization.SubSpecializations[toggle.name].Active = toggle.Toggle.isOn; if (!toggle.Toggle.isOn) { foreach (var interaction in ProfessionManager.workInteractions[this.Specialization.Profession]) { } this.human.AbortInteractionsWhere(x => ProfessionManager.workInteractions[this.Specialization.Profession].Contains(x.interaction)); } }