Пример #1
0
    public string buildClosing()
    {
        string result = "";

        while (letterQueue.Count > 0 && currentLE.type == LetterEvent.Type.CLOSING)
        {
            result   += currentLE.text.Replace("[player]", GameManager.playerName);
            currentLE = letterQueue.Dequeue();
        }
        return(result);
    }
Пример #2
0
    void Start()
    {
        timer = GameObject.Find("GameManager").GetComponent <Timer>();

        player = GameObject.Find("Player").GetComponent <Transform>();

        letterEvent = GameObject.Find("QuickTimeEvent").GetComponent <LetterEvent>();

        //Get last letter from this gameobject name and it to lower case letter
        character = this.gameObject.name.Substring(6).Remove(1).ToLower();
    }
Пример #3
0
    public string buildHeader()
    {
        string result = "";

        while (letterQueue.Count > 0 && currentLE.type == LetterEvent.Type.INTRO)
        {
            result   += currentLE.text;
            currentLE = letterQueue.Dequeue();
        }
        return(result);
    }
Пример #4
0
    void Start()
    {
        generatorManager = new GeneratorManager(offset, radius, mask,
                                                spacing, dropMin, dropMax,
                                                ressource, colliders);

        spriteRenderer = GetComponent <SpriteRenderer>();
        letterEvent    = GameObject.Find("QuickTimeEvent").GetComponent <LetterEvent>();
        player         = GameObject.Find("Player").GetComponent <Player>();
        timer          = GameObject.Find("GameManager").GetComponent <Timer>();
    }
Пример #5
0
    public string buildLetter()
    {
        string result = "";

        if (letterQueue.Count == 0)
        {
            return("");
        }
        while (currentLE.type != LetterEvent.Type.EOL)
        {
            switch (currentLE.type)
            {
            case LetterEvent.Type.INTRO:
                header.text = buildHeader();
                break;

            case LetterEvent.Type.SENTENCE:
                result += " " + currentLE.text.Replace("[player]", GameManager.playerName);
                break;

            case LetterEvent.Type.CLOSING:
                result      += checkForMadLibs();
                closing.text = buildClosing();
                break;

            case LetterEvent.Type.CHOICE:
                result += resolveChoice().Replace("[player]", GameManager.playerName);
                break;

            case LetterEvent.Type.EOP:
                result += "\n\n ";
                break;

            case LetterEvent.Type.EOL:
            default:
                break;
            }
            currentLE = letterQueue.Dequeue();
        }
        result = result.Replace("[player]", GameManager.playerName);
        return(result);
    }
Пример #6
0
    public string buildParagraph()
    {
        string result = "";

        if (letterQueue.Count == 0)
        {
            return("");
        }
        while (letterQueue.Count > 0)
        {
            bool breakLoop = false;
            switch (currentLE.type)
            {
            case LetterEvent.Type.SENTENCE:
                result += " " + currentLE.text.Replace("[player]", GameManager.playerName);
                break;

            case LetterEvent.Type.CHOICE:
                breakLoop = true;
                break;

            case LetterEvent.Type.EOP:
                result   += "\n\n ";
                breakLoop = true;
                break;

            case LetterEvent.Type.EOL:
                breakLoop = true;
                break;

            default:
                breakLoop = true;
                break;
            }
            if (breakLoop)
            {
                break;
            }
            currentLE = letterQueue.Dequeue();
        }
        return(result);
    }
Пример #7
0
    private LetterEvent[] getChoices()
    {
        List <LetterEvent> result = new List <LetterEvent>();

        if (currentLE.type != LetterEvent.Type.CHOICE)
        {
            return(null);
        }
        while (currentLE.type == LetterEvent.Type.CHOICE)
        {
            result.Add(currentLE);
            currentLE = letterQueue.Dequeue();
        }

        for (int i = 0; i < result.Count; i++)
        {
            buttonList[i].text = wrappers[i].getWrappedString(result[i].text);
        }
        waitingForInput = true;
        return(result.ToArray());
    }
Пример #8
0
 public void selectChoice(int buttonNum)
 {
     if (!waitingForInput)
     {
         return;
     }
     if (buttonNum < choices.Length)
     {
         chosenLE        = choices[buttonNum];
         waitingForInput = false;
         bodyRevealer.setPlaying(true);
         bodyRevealer.addText(" " + chosenLE.text);
         for (int i = 0; i < buttonList.Length; i++)
         {
             buttonList[i].text = "";
         }
         choices = null;
         GameManager.playerPositiveScore += chosenLE.positive;
         GameManager.playerNegativeScore += chosenLE.negative;
         GameManager.playerChoiceHistory.Add(chosenLE.eventID);
     }
 }
Пример #9
0
        private async Task SendEmailAsync()
        {
            MailAddress from = new MailAddress("*****@*****.**", "Stas");
            MailAddress to   = new MailAddress("*****@*****.**");
            MailMessage m    = new MailMessage(from, to);

            m.Subject = "Аппарат ТСА";
            m.Body    = $"Новый Аппарат создан. И доступен для изготовления.";
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);

            smtp.Credentials = new NetworkCredential("*****@*****.**", "");
            smtp.EnableSsl   = true;
            try
            {
                await smtp.SendMailAsync(m);

                LetterEvent?.Invoke(this, new NewVentEventArgs("Письмо отправлено."));
            }
            catch (Exception e)
            {
                Console.WriteLine($"\n\nДоставка письма не получилась. {e.Message}");
            }
        }
Пример #10
0
    private string resolveChoice()
    {
        List <LetterEvent> result = new List <LetterEvent>()
        {
            currentLE
        };

        while (letterQueue.Peek().type == LetterEvent.Type.CHOICE)
        {
            currentLE = letterQueue.Dequeue();
            result.Add(currentLE);
        }
        foreach (LetterEvent e in result)
        {
            foreach (int j in GameManager.playerChoiceHistory)
            {
                if (e.relatedToID == j)
                {
                    return(e.text);
                }
            }
        }
        return("BAD CHOICE MADE");
    }
Пример #11
0
 void Start()
 {
     letterQueue = new Queue <LetterEvent>(GameManager.playerQueue);
     currentLE   = letterQueue.Dequeue();
     wrappers    = new TextMeshWrapper[buttonList.Length];
     for (int i = 0; i < buttonList.Length; i++)
     {
         wrappers[i] = buttonList[i].GetComponent <TextMeshWrapper>();
     }
     sendButton.SetActive(false);
     sendText.SetActive(false);
     if (inFastForward)
     {
         headerRevealer.charDelay  = shortDelay;
         bodyRevealer.charDelay    = shortDelay;
         closingRevealer.charDelay = shortDelay;
     }
     else
     {
         headerRevealer.charDelay  = regularDelay;
         bodyRevealer.charDelay    = regularDelay;
         closingRevealer.charDelay = regularDelay;
     }
 }
Пример #12
0
 void Start()
 {
     letterQueue = GameManager.palQueue;
     currentLE   = letterQueue.Dequeue();
     textWrapper.addAndWrapText(buildLetter());
 }
Пример #13
0
    // Update is called once per frame
    void Update()
    {
        if (initialDelayTimer < initialDelayDuration)
        {
            initialDelayTimer += Time.deltaTime;
        }
        else
        {
            if (state == State.LetterWriting)
            {
                switch (currentLE.type)
                {
                case (LetterEvent.Type.INTRO):
                    headerRevealer.begin();
                    headerRevealer.setText(buildHeader());
                    break;

                case (LetterEvent.Type.SENTENCE):
                    if (headerRevealer.playing() || waitingForInput)
                    {
                        break;
                    }
                    bodyRevealer.begin();
                    string paragraph = buildParagraph();
                    bodyRevealer.addText(paragraph);
                    break;

                case (LetterEvent.Type.CLOSING):
                    if (bodyRevealer.playing() || waitingForInput)
                    {
                        break;
                    }
                    closingRevealer.begin();
                    closingRevealer.setText(buildClosing());
                    break;

                case (LetterEvent.Type.CHOICE):
                    if (bodyRevealer.playing())
                    {
                        break;
                    }
                    if (choices == null)
                    {
                        choices = getChoices();
                    }
                    break;

                case LetterEvent.Type.EOP:
                    headerRevealer.allText += '\n';
                    currentLE = letterQueue.Dequeue();
                    break;

                case LetterEvent.Type.EOL:
                    state = State.LetterDone;
                    break;

                case LetterEvent.Type.ERROR:
                    Debug.Log("ERROR");
                    break;
                }
            }
            else if (state == State.LetterDone)
            {
                sendButton.SetActive(true);
                sendText.SetActive(true);
            }
        }
    }
Пример #14
0
 public void OnLetter(LetterEventArgs e)
 {
     LetterEvent?.Invoke(this, e);
 }
Пример #15
0
    private void CreateLetterEvent(string[] entry, int i)
    {
        LetterEvent e = new LetterEvent();

        e.eventID = Convert.ToInt32(entry[0]);
        if (entry[1].Equals("player"))
        {
            e.speaker = LetterEvent.Speaker.PLAYER;
            e.group   = Convert.ToInt32(entry[2]);
            e.type    = ResolveLetterType(entry[3], i);
            e.text    = entry[4];
            e.prompt  = entry[5];
            if (!entry[6].Equals("0"))
            {
                e.positive = Convert.ToInt32(entry[6]);
            }
            if (!entry[7].Equals("0"))
            {
                e.negative = Convert.ToInt32(entry[7]);
            }
            if (!entry[8].Equals("-1"))
            {
                e.relatedToID = Convert.ToInt32(entry[8]);
            }
            e.goToNext = ResolveSpeakerType(entry[9]);
            GameManager.playerQueue.Enqueue(e);
        }
        else if (entry[1].Equals("narrative"))
        {
            e.speaker = LetterEvent.Speaker.NARRATIVE;
            e.group   = Convert.ToInt32(entry[2]);
            e.type    = ResolveLetterType(entry[3], i);
            e.text    = entry[4];
            e.prompt  = entry[5];
            if (!entry[6].Equals("0"))
            {
                e.positive = Convert.ToInt32(entry[7]);
            }
            if (!entry[7].Equals("0"))
            {
                e.negative = Convert.ToInt32(entry[7]);
            }
            if (!entry[8].Equals("-1"))
            {
                e.relatedToID = Convert.ToInt32(entry[8]);
            }
            e.goToNext = ResolveSpeakerType(entry[9]);
            GameManager.narrativeQueue.Enqueue(e);
        }
        else if (entry[1].Equals("pal"))
        {
            e.speaker = LetterEvent.Speaker.PAL;
            e.group   = Convert.ToInt32(entry[2]);
            e.type    = ResolveLetterType(entry[3], i);
            e.text    = entry[4];
            e.prompt  = entry[5];
            if (!entry[6].Equals("0"))
            {
                e.positive = Convert.ToInt32(entry[6]);
            }
            if (!entry[7].Equals("0"))
            {
                e.negative = Convert.ToInt32(entry[7]);
            }
            if (!entry[8].Equals("-1"))
            {
                e.relatedToID = Convert.ToInt32(entry[8]);
            }
            e.goToNext = ResolveSpeakerType(entry[9]);
            GameManager.palQueue.Enqueue(e);
        }
        else
        {
            Debug.Log("Error: cannot resolve speaker for entry " + entry[1] + i.ToString());
        }
    }
Пример #16
0
    private IEnumerator textLoop(Text textObject, GraphicColorLerp colorLerp, float initialDelay, float[] timers, int index)
    {
        while (initialDelay > 0)
        {
            if (Input.GetButtonDown("Submit"))
            {
                timers[0] = .1f;
                timers[1] = .1f;
                break;
            }
            initialDelay -= Time.deltaTime;
            yield return(null);
        }
        Color start = colorLerp.startColor;
        Color end   = colorLerp.endColor;

        while (true)
        {
            curIndex = cutSceneQueue.Dequeue();
            switch (curIndex.type)
            {
            case LetterEvent.Type.SENTENCE:
                //continue
                break;

            case LetterEvent.Type.EOL:
                loadNextScene();        //break out of scene
                yield break;
            }
            textObject.text      = curIndex.text;
            colorLerp.startColor = start;
            colorLerp.endColor   = end;
            colorLerp.startColorChange();
            yield return(null);

            timers[index] = holdDuration - gapBetweenSentences;
            while (timers[index] > 0)
            {
                if (Input.GetButtonDown("Submit"))
                {
                    timers[0] = .1f;
                    timers[1] = .1f;
                }
                timers[index] -= Time.deltaTime;
                yield return(null);
            }
            colorLerp.startColor = end;
            colorLerp.endColor   = start;
            colorLerp.startColorChange();
            yield return(null);

            timers[index] = holdDuration + gapBetweenSentences;
            while (timers[index] > 0)
            {
                if (Input.GetButtonDown("Submit"))
                {
                    timers[0] = .1f;
                    timers[1] = .1f;
                }
                timers[index] -= Time.deltaTime;
                yield return(null);
            }
        }
    }