Esempio n. 1
0
    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();
    }