public override void UpdateContents() { StoryEngine.Dialog data = cellData as StoryEngine.Dialog; responseText = new PUTextButton(); responseText.font = "Fonts/PressStart2P"; responseText.value = data.text; responseText.fontSize = 22; if (data.isHelpHeader) { responseText.fontSize = 14; } responseText.lineSpacing = 1.4f; responseText.fontColor = Color.white; responseText.alignment = PlanetUnity2.TextAlignment.upperLeft; responseText.SetFrame(0, 0, 378, 100, 0.5f, 0.5f, "stretch,stretch"); responseText.LoadIntoPUGameObject(puGameObject); responseText.SetStretchStretch(30, 0, 30, 0); TextGenerator textGen = new TextGenerator(); TextGenerationSettings generationSettings = responseText.text.GetGenerationSettings(responseText.rectTransform.rect.size); float height = textGen.GetPreferredHeight(data.text, generationSettings) + 60; puGameObject.rectTransform.sizeDelta = new Vector2(responseText.rectTransform.rect.width, height); if (data.isHelpHeader) { responseText.text.color = Color.yellow; LeanTween.value(responseText.gameObject, (v) => { responseText.rectTransform.localScale = new Vector3(v, v, 1.0f); }, 0.98f, 1.02f, 2.0f).setLoopCount(-1).setLoopPingPong().setEase(LeanTweenType.easeInOutCirc); } else { responseText.button.onClick.AddListener(() => { NotificationCenter.postNotification(null, "NavigateToRoom", NotificationCenter.Args("room", data.room)); }); } AnimateText(DialogType.Response, responseText, data.animationDelay); /* * responseText.rectTransform.anchoredPosition = new Vector2(responseText.rectTransform.rect.width, 0); * LeanTween.value (puGameObject.gameObject, (v) => { * responseText.rectTransform.anchoredPosition = new Vector2(v, 0); * }, responseText.rectTransform.rect.width, 0, 0.47f).setDelay (UnityEngine.Random.Range (0.67f, 1.32f)).setEase (LeanTweenType.easeInOutQuad); */ }
public void LoadRoom(string roomName) { StoryEngine.Room room = engine.GetRoom(roomName); if (room == null) { return; } CurrentRoom = roomName; if (room is StoryEngine.Cutscene) { PerformCutscene(room as StoryEngine.Cutscene); CharacterImage.image.color = Color.black; Spotlight.CheckCanvasGroup(); Spotlight.canvasGroup.alpha = 0.0f; PlayerImage.rectTransform.anchoredPosition = new Vector2(775.0f + PlayerImage.rectTransform.rect.width * 2.0f, PlayerImage.rectTransform.anchoredPosition.y); return; } CharacterDialog.text.text = string.Format("{0}\n\n\"{1}\"", room.character, room.text); float currentDelay = 0.0f; currentDelay += SwitchToCharacter(room.character); currentDelay += DialogTableCell.AnimateText(DialogTableCell.DialogType.Character, CharacterDialog, currentDelay); List <object> allItemsForTable = new List <object> (); StoryEngine.Dialog header = new StoryEngine.Dialog(); header.text = "Select a response below:"; header.isHelpHeader = true; header.animationDelay = currentDelay; currentDelay += DialogTableCell.AnimateTextDuration(DialogTableCell.DialogType.Response, header.text); allItemsForTable.Add(header); foreach (StoryEngine.Dialog dialog in room.responses) { dialog.animationDelay = currentDelay; currentDelay += DialogTableCell.AnimateTextDuration(DialogTableCell.DialogType.Response, dialog.text); allItemsForTable.Add(dialog); } ResponsesTable.SetObjectList(allItemsForTable); ResponsesTable.ReloadTable(); }