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); }
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; }
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(); } }
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); } }
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); }
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); }); }
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); } }
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); }); */ }