Example #1
0
    private void ShowDialogus(Dialog dialog, Action <DialogOption> done)
    {
        showing         = true;
        dialogText.text = dialog.dialogText;

        List <GameObject> dialogButtons = new List <GameObject>();

        foreach (Transform child in dialogButtonContainer.transform)
        {
            dialogButtons.Add(child.gameObject);
        }
        dialogButtons.ForEach(child => Destroy(child));

        dialog.dialogOptions.ForEach(option =>
        {
            GameObject dialogButton = Instantiate(dialogButtonPrefab) as GameObject;
            Text buttonText         = dialogButton.GetComponentInChildren <Text>();
            buttonText.text         = option.optionText;
            dialogButton.GetComponent <Button>().onClick.AddListener(() =>
            {
                dialogContainer.SetActive(false);
                done(option);
                showing = false;
                resolveWaitingDialogs();
            });
            dialogButton.transform.parent            = dialogButtonContainer.transform;
            TooltipOnPointerOverScript tooltipScript = dialogButton.GetComponent <TooltipOnPointerOverScript>();
            if (option.tooltipText != null)
            {
                tooltipScript.tooltipText = option.tooltipText;
            }
            else
            {
                Destroy(tooltipScript);
            }
        });

        // Doesn't update parents instantly (content fitter doesn't notice), so wait a moment before showing
        StartCoroutine(activateDialog());
    }
    void Start()
    {
        pointsAvailableText = GetComponentInChildren <Text>();
        sliders             = new Dictionary <StatusType, Slider>();
        tooltipScripts      = new Dictionary <StatusType, TooltipOnPointerOverScript>();
        addButtons          = new List <Button>();
        sliders.Add(StatusType.Rage, rageSlider);
        sliders.Add(StatusType.Food, foodSlider);
        TooltipOnPointerOverScript rageTooltipScript = rageSlider.GetComponentInChildren <TooltipOnPointerOverScript>();

        tooltipScripts.Add(StatusType.Rage, rageTooltipScript);
        TooltipOnPointerOverScript foodTooltipScript = foodSlider.GetComponentInChildren <TooltipOnPointerOverScript>();

        tooltipScripts.Add(StatusType.Food, foodTooltipScript);
        gainText.color = new Color(0, 0, 0, 0);

        StatusType[] types = Enum.GetValues(typeof(StatusType)) as StatusType[];
        foreach (StatusType type in types)
        {
            if (type.IsAPlayerAttribute())
            {
                GameObject sliderContainer = Instantiate(sliderContainerPrefab) as GameObject;
                sliderContainer.transform.SetParent(slidersContainer.transform, false);
                Slider slider = sliderContainer.GetComponentInChildren <Slider>();
                sliders.Add(type, slider);
                Button addButton = sliderContainer.GetComponentInChildren <Button>();
                addButtons.Add(addButton);
                TooltipOnPointerOverScript tooltipScript = sliderContainer.GetComponentInChildren <TooltipOnPointerOverScript>();
                tooltipScripts.Add(type, tooltipScript);
                StatusType saveType = type;
                addButton.onClick.AddListener(() => addSkill(saveType));
                sliderContainer.GetComponentInChildren <Text>().text = type.ToNiceString();
            }
        }

        ToggleSkillUi();
        gameStateUpdated();
        GameStateManagerScript.Instance.OnGameStateUpdate.AddListener(gameStateUpdated);
    }
Example #3
0
 void Awake()
 {
     scripta = GetComponent <TooltipOnPointerOverScript>();
     updateTooltip();
 }
Example #4
0
 void Awake()
 {
     scripta = GetComponent<TooltipOnPointerOverScript>();
     updateTooltip();
 }