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 override void Start(IGameInterface gameInterface) { foreach (int creatureId in creatureIds) { UICreature creature = gameInterface.GetUICreature(creatureId); creature.SetAnimateState(UICreature.AnimateStates.Dying); } }
public void RefreshAllCreatures() { foreach (GameObject creatureObj in this.fieldObjectsRoot.gameObject.FindChildrenByName("creature_")) { UICreature creatureCom = creatureObj.GetComponent <UICreature>(); if (creatureCom == null) { continue; } creatureCom.SetHasActioned(false); } }
public override void Update(IGameInterface gameInterface) { bool allGone = true; foreach (int creatureId in creatureIds) { UICreature creature = gameInterface.GetUICreature(creatureId); if (creature != null) { allGone = false; } } if (allGone) { this.HasFinished = true; } }
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); }); */ }
public void TouchCreature(int creatureId) { if (currentDialog != null) { return; } UICreature creature = GetUICreature(creatureId); FDPosition creaturePosition = creature.GetCurrentPosition(); FDPosition cursorPosition = FieldTransform.GetObjectUnitPosition(gameCursor.transform.localPosition); if (!creaturePosition.AreSame(cursorPosition)) { gameCursor.transform.localPosition = FieldTransform.GetObjectPixelPosition(FieldTransform.FieldObjectLayer.Ground, creaturePosition.X, creaturePosition.Y); } else { // Do the actuall game event gameManager.HandleOperation(creaturePosition); } }
public void RefreshCreature(FDCreature creature) { if (creature == null) { throw new ArgumentNullException("creature"); } UICreature uiCreature = GetUICreature(creature.CreatureId); if (uiCreature == null) { Debug.LogError("Cannot find creature on UI: creatureId = " + creature.CreatureId); return; } // Update position uiCreature.transform.localPosition = FieldTransform.GetCreaturePixelPosition(creature.Position); // Update status uiCreature.SetHasActioned(creature.HasActioned); }
public void DisposeCreature(int creatureId) { UICreature creature = GetUICreature(creatureId); Destroy(creature.gameObject); }