Пример #1
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); });
             */
        }