Beispiel #1
0
        /// <summary>
        /// Show branch buttons when branch happens
        /// </summary>
        /// <param name="branchOccursData"></param>
        private void OnBranchHappen(BranchOccursData branchOccursData)
        {
            if (dimOnBranch)
            {
                blackPanel.SetActive(true);
            }

            var branchInformations = branchOccursData.branchInformations;

            foreach (var branchInformation in branchInformations)
            {
                var childButton = Instantiate(BranchButtonPrefab);
                childButton.transform.SetParent(transform);
                childButton.transform.localScale = Vector3.one;

                var text = childButton.GetComponent <Text>();
                if (text == null)
                {
                    text = childButton.GetComponentInChildren <Text>();
                }
                text.text = branchInformation.name;

                childButton.GetComponent <Button>().onClick.AddListener(() => Select(branchInformation.name));
            }
        }
Beispiel #2
0
        /// <summary>
        /// Show branch buttons when branch happens
        /// </summary>
        /// <param name="branchOccursData"></param>
        private void OnBranchHappen(BranchOccursData branchOccursData)
        {
            var branchInformations = branchOccursData.branchInformations;

            foreach (var branchInfo in branchInformations)
            {
                if (branchInfo.mode == BranchMode.Jump)
                {
                    if (branchInfo.condition == null || branchInfo.condition.Invoke <bool>())
                    {
                        gameState.SelectBranch(branchInfo.name);
                        return;
                    }
                }
            }

            if (backPanel != null)
            {
                backPanel.SetActive(true);
            }

            foreach (var branchInfo in branchInformations)
            {
                if (branchInfo.mode == BranchMode.Jump)
                {
                    continue;
                }

                if (branchInfo.mode == BranchMode.Show && !branchInfo.condition.Invoke <bool>())
                {
                    continue;
                }

                var child = Instantiate(branchButtonPrefab, transform);

                var text = child.GetComponentInChildren <Text>();
                text.text = branchInfo.text;

                var button = child.GetComponentInChildren <Button>();
                button.onClick.AddListener(() => Select(branchInfo.name));
                if (branchInfo.mode == BranchMode.Enable)
                {
                    button.interactable = branchInfo.condition.Invoke <bool>();
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Show branch buttons when branch happens
        /// </summary>
        /// <param name="branchOccursData"></param>
        private void OnBranchHappen(BranchOccursData branchOccursData)
        {
            var branchInformations = branchOccursData.branchInformations;

            foreach (var branchInfo in branchInformations)
            {
                if (branchInfo.mode == BranchMode.Jump)
                {
                    if (branchInfo.condition == null || branchInfo.condition.Invoke <bool>())
                    {
                        gameState.SelectBranch(branchInfo.name);
                        return;
                    }
                }
            }

            if (backPanel != null)
            {
                backPanel.SetActive(true);
            }

            foreach (var branchInfo in branchInformations)
            {
                if (branchInfo.mode == BranchMode.Jump)
                {
                    continue;
                }

                if (branchInfo.mode == BranchMode.Show && !branchInfo.condition.Invoke <bool>())
                {
                    continue;
                }

                var child = Instantiate(branchButtonPrefab, transform);

                if (branchInfo.imageInfo != null)
                {
                    var layoutElement = child.AddComponent <LayoutElement>();
                    layoutElement.ignoreLayout = true;
                    var image = child.GetComponent <Image>();
                    image.type = Image.Type.Simple;
                    image.alphaHitTestMinimumThreshold = 0.5f;
                    var imageInfo = branchInfo.imageInfo;
                    // TODO: preload
                    image.sprite = AssetLoader.Load <Sprite>(System.IO.Path.Combine(imageFolder, imageInfo.name));
                    image.SetNativeSize();
                    child.transform.localPosition = new Vector3(imageInfo.positionX, imageInfo.positionY, 0f);
                    child.transform.localScale    = new Vector3(imageInfo.scale, imageInfo.scale, 1f);
                }

                var text = child.GetComponentInChildren <Text>();
                text.text = branchInfo.text;

                var button = child.GetComponentInChildren <Button>();
                button.onClick.AddListener(() => Select(branchInfo.name));
                if (branchInfo.mode == BranchMode.Enable)
                {
                    button.interactable = branchInfo.condition.Invoke <bool>();
                }
            }
        }
Beispiel #4
0
 /// <summary>
 /// Make the state normal when branch occurs
 /// </summary>
 /// <param name="branchOccursData"></param>
 private void OnBranchOcurrs(BranchOccursData branchOccursData)
 {
     stateBeforeBranch = State;
     State             = DialogueBoxState.Normal;
 }
Beispiel #5
0
 private void OnBranchOccurs(BranchOccursData branchOccursData)
 {
     saveViewController.AutoSaveBookmark();
 }