示例#1
0
        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();
        }
示例#2
0
        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());
        }
示例#3
0
        private void SubSpecializationToggle_InputValueChanged(OrderableToggle toggle)
        {
            if (inInit)
            {
                return;
            }

            this.Specialization.SubSpecializations[toggle.name].Priority = toggle.Value;
            OrderSubSpecializations();
        }
示例#4
0
        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));
            }
        }