Пример #1
0
        public void Initialize(Camera camera, int animationId, string message, Action <int> callback)
        {
            this.gameObject.name = "PromptDialog";

            canvas.worldCamera   = camera;
            this.onClickCallback = callback;


            GameObject messageBoxBase = this.transform.Find("Canvas/MessageBase").gameObject;

            messageBoxBase.transform.localPosition = new Vector2(0, -150);
            Clickable clickable = messageBoxBase.AddComponent <Clickable>();

            clickable.Initialize(() => { this.OnClicked(); });

            localizedMessage = message;

            localizedMessage = localizedMessage.Replace("#", "\r\n");
            datoControl      = GameObjectExtension.CreateFromPrefab <DatoControl>("Prefabs/DatoControl");
            datoControl.Initialize(messageBoxBase.transform, animationId, new Vector2(-230, -150), true);

            textObj = FontAssets.ComposeTextMeshObject(localizedMessage);


            Transform textAnchor = this.transform.Find("Canvas/TextAnchor");

            textObj.transform.parent        = textAnchor;
            textObj.transform.localPosition = new Vector3(0, 0, 0);
            textObj.transform.localScale    = new Vector3(5, 5, 1);
            textObj.gameObject.layer        = 5;
            // textObj.fontSize = 20;

            displayLength = 4;
            textObj.text  = localizedMessage.Substring(0, 4);
        }
Пример #2
0
        public void ShowConversationDialog(FDCreature creature, ConversationId conversation)
        {
            // Canvas
            if (currentDialog != null)
            {
                Destroy(currentDialog);
                currentDialog = null;
            }

            // Move the map to corresponding location

            // Show dialog
            int animationId = creature?.Definition?.AnimationId ?? 0;

            string message = LocalizedStrings.GetConversationString(conversation);
            //Debug.Log("Showing message dialog: " + message);
            Vector3 popupPosition = Vector3.zero;

            if (creature != null)
            {
                UICreature uiCreature = GetUICreature(creature.CreatureId);
                Vector3    viewPoint  = mainCamera.WorldToViewportPoint(uiCreature.transform.position);

                RectTransform canvasRect = GameCanvas.GetComponent <RectTransform>();

                popupPosition = new Vector3(
                    viewPoint.x * canvasRect.sizeDelta.x - canvasRect.sizeDelta.x * 0.5f,
                    viewPoint.y * canvasRect.sizeDelta.y - canvasRect.sizeDelta.y * 0.5f,
                    0);
            }
            MessageDialog messageDialog = GameObjectExtension.CreateFromPrefab <MessageDialog>("Prefabs/MessageDialog");

            messageDialog.Initialize(uiCamera, popupPosition, animationId, message, (index) => { this.OnDialogCallback(index); }, this.ChapterId);
            currentDialog = messageDialog.gameObject;
        }
Пример #3
0
        public void Initialize(Camera camera, FDCreature creature, ShowType showType, Action <int> callback)
        {
            this.gameObject.name = "CreatureDialog";

            canvas.worldCamera = camera;
            this.camera        = camera;

            this.creature   = creature;
            this.showType   = showType;
            this.onCallback = callback;

            containerBase = this.transform.Find("Canvas/ContainerBase");
            Clickable clickable = containerBase.GetComponent <Clickable>();

            clickable.Initialize(() => { this.OnClicked(); });

            creatureDetailBase = this.transform.Find("Canvas/CreatureDetail");
            clickable          = creatureDetailBase.gameObject.GetComponent <Clickable>();
            clickable.Initialize(() => { this.OnCancelled(); });
            datoBase    = this.transform.Find("Canvas/DatoBase");
            datoControl = GameObjectExtension.CreateFromPrefab <DatoControl>("Prefabs/DatoControl");
            datoControl.Initialize(datoBase, creature.Definition.AnimationId, new Vector2(0, 0));
            //// datoControl.transform.localPosition = new Vector3(0, 0, 0);

            RenderDetails();

            if (IsItemDialog)
            {
                RenderItemsContainer();
            }
            else
            {
                RenderMagicsContainer();
            }
        }
Пример #4
0
        private void RenderItemsContainer()
        {
            List <int> equipedItems = new List <int>()
            {
                creature.Data.AttackItemIndex, creature.Data.DefendItemIndex
            };

            itemControlls = new List <ItemControl>();

            for (int index = 0; index < creature.Data.Items.Count; index++)
            {
                int  itemId    = this.creature.Data.Items[index];
                bool isEquiped = equipedItems.Contains(index);

                /*
                 * ItemControl itemControl = GameObjectExtension.CreateFromPrefab<ItemControl>("Prefabs/ItemControl");
                 * itemControl.Initialize(this.canvas, itemId, isEquiped);
                 * itemControl.transform.parent = anchorItems[index].transform;
                 * itemControl.transform.localPosition = new Vector3(0, 0, 0);
                 */

                int         cIndex      = index;
                ItemControl itemControl = GameObjectExtension.CreateFromPrefab <ItemControl>("Prefabs/ItemControl");
                itemControl.Initialize(this.canvas, itemId, isEquiped, () => { this.OnSelectedItem(cIndex); });
                itemControl.transform.parent        = anchorItems[index].transform;
                itemControl.transform.localPosition = new Vector3(0, 0, 0);
                itemControl.transform.localScale    = new Vector3(1, 1, 1);

                itemControlls.Add(itemControl);
            }
        }
Пример #5
0
        public void Initialize(Camera camera, Vector2 popupPosition, int animationId, string message, Action <int> callback, int forChapterId = 0)
        {
            this.gameObject.name = "MessageDialog";

            canvas.worldCamera   = camera;
            this.onClickCallback = callback;

            if (animationId > 500)
            {
                dialogPosition = MessageDialogPosition.UP;
            }

            messageBoxBase = this.transform.Find("Canvas/MessageBase").gameObject;
            messageBoxBase.transform.localPosition = GetBasePosition(dialogPosition);
            Clickable clickable = messageBoxBase.GetComponent <Clickable>();

            clickable.Initialize(() => { this.OnClicked(); });

            PopUp popUp = messageBoxBase.GetComponent <PopUp>();

            popUp.Initialize(popupPosition);

            localizedMessage = message;

            localizedMessage = localizedMessage.Replace("#", "\r\n");
            datoControl      = GameObjectExtension.CreateFromPrefab <DatoControl>("Prefabs/DatoControl");
            datoControl.Initialize(messageBoxBase.transform, animationId, GetDatoPosition(dialogPosition), (dialogPosition == MessageDialogPosition.DOWN));

            if (forChapterId > 0)
            {
                textObj = FontAssets.ComposeTextMeshObjectForChapter(forChapterId, localizedMessage);
            }
            else
            {
                textObj = FontAssets.ComposeTextMeshObject(localizedMessage);
            }

            Transform textAnchor = this.transform.Find("Canvas/MessageBase/TextAnchor");

            textAnchor.localPosition = GetTextPosition(dialogPosition);

            textObj.transform.parent = textAnchor;
            //textObj.transform.localPosition = new Vector2(190, -50);
            textObj.transform.localPosition = new Vector3(0, 0, 0);
            textObj.transform.localScale    = new Vector3(5, 5, 1);
            textObj.gameObject.layer        = 5;
            // textObj.fontSize = 20;

            displayLength = 1;
            textObj.text  = localizedMessage.Substring(0, 1);
        }
Пример #6
0
        public void ShowCreatureDialog(FDCreature creature, CreatureDialog.ShowType showType)
        {
            // Canvas
            if (currentDialog != null)
            {
                Destroy(currentDialog);
                currentDialog = null;
            }

            CreatureDialog dialog = GameObjectExtension.CreateFromPrefab <CreatureDialog>("Prefabs/CreatureDialog");

            currentDialog = dialog.gameObject;

            dialog.Initialize(this.uiCamera, creature, showType,
                              (index) => { this.OnDialogCallback(index); });
        }
Пример #7
0
        private void RenderMagicsContainer()
        {
            magicControlls = new List <MagicControl>();

            for (int index = 0; index < creature.Data.Magics.Count; index++)
            {
                int magicId = this.creature.Data.Magics[index];

                int          cIndex       = index;
                MagicControl magicControl = GameObjectExtension.CreateFromPrefab <MagicControl>("Prefabs/MagicControl");
                magicControl.Initialize(this.canvas, magicId, () => { this.OnSelectedMagic(cIndex); });
                magicControl.transform.parent        = anchorMagics[index].transform;
                magicControl.transform.localPosition = new Vector3(0, 0, 0);
                magicControl.transform.localScale    = new Vector3(1, 1, 1);

                magicControlls.Add(magicControl);
            }
        }
Пример #8
0
        public void ShowMessageDialog(FDCreature creature, MessageId messageId)
        {
            // Canvas
            if (currentDialog != null)
            {
                Destroy(currentDialog);
                currentDialog = null;
            }

            // Move the map to corresponding location

            // Show dialog
            int    animationId = creature?.Definition?.AnimationId ?? 0;
            string message     = LocalizedStrings.GetMessageString(messageId);

            if (messageId.MessageType == MessageId.MessageTypes.Confirm)
            {
                PromptDialog dialog = GameObjectExtension.CreateFromPrefab <PromptDialog>("Prefabs/PromptDialog");
                dialog.Initialize(uiCamera, animationId, message, (index) => { this.OnDialogCallback(index); });
                currentDialog = dialog.gameObject;
            }
            else
            {
                Vector2 popupPosition = Vector2.zero;
                if (creature != null)
                {
                    UICreature uiCreature = GetUICreature(creature.CreatureId);
                    popupPosition = mainCamera.WorldToScreenPoint(uiCreature.transform.position);
                }

                MessageDialog dialog = GameObjectExtension.CreateFromPrefab <MessageDialog>("Prefabs/MessageDialog");
                dialog.Initialize(uiCamera, popupPosition, animationId, message, (index) => { this.OnDialogCallback(index); });
                currentDialog = dialog.gameObject;
            }

            /*
             * currentDialog = new GameObject();
             * MessageDialog dialog = currentDialog.AddComponent<MessageDialog>();
             *
             * int animationId = (creature != null) ? creature.Definition.AnimationId : 0;
             * dialog.Initialize(this.GameCanvas, animationId, messageId,
             *  (index) => { this.OnDialogCallback(index); });
             */
        }