Esempio n. 1
0
    public void Ask(string text)
    {
        Reset(text);

        var request = new Advisor.Request(text);

        request.user = user.isId ? user.id : user.deviceId;
        request.vars = new List <Advisor.Var>()
        {
            new Advisor.Var("platform", platform),
            new Advisor.Var("misunderstandingsCount", misunderstandingsCount),
            new Advisor.Var("facebookLogin", fb.isLogin),
            new Advisor.Var("musicOn", music.ON),
        };

        advisor.Ask(request, Localization.language, OnGetReply);
    }
Esempio n. 2
0
    public void OnGetReply(Advisor.Status status, Advisor.Response response, Advisor.Request request)
    {
        if (status == Advisor.Status.NoConnection)
        {
            ReplyBubbleShow(Localization.Get("advisorReplyNoConnection"));
            return;
        }

        if (status != Advisor.Status.Success || response == null)
        {
            ReplyBubbleShow(Localization.Get("advisorReplyError"));
            return;
        }

        Analytic.EventProperties("Advisor", response.input, request.text);

        ReplyBubbleShow(response.output);

        if (!string.IsNullOrEmpty(response.imageUrl))
        {
            server.DownloadPic(replyBubble.bubbleContentImage, response.imageUrl);
        }

        if (!string.IsNullOrEmpty(response.url))
        {
            SG_Utils.OpenLink(response.url, response.output);
        }

        var replies = response.replies;

        while (replies.Count > 3)
        {
            replies.Remove(replies[Random.Range(0, replies.Count)]);
        }
        foreach (var reply in replies)
        {
            askButtons.Add(askButtonPrefab.Copy(reply));
        }

        misunderstandingsCount = response.input == "All" ? misunderstandingsCount + 1 : 0;
    }