コード例 #1
0
    public ActorBrain(ContextActors context, string actor)
    {
        this.actor   = actor;
        this.context = context;

        actorDialogs = new ActorDialogs(actor);
        actorMemory  = new ActorMemoryDialogs(actor);
    }
コード例 #2
0
    public void ClearActorMemory(string actor)
    {
        ActorMemoryDialogs actorMemory = GetActorMemory(actor);

        if (actorMemory != null)
        {
            actorMemory.ClearAll();
        }
    }
コード例 #3
0
    public void ReloadActorDialogs(string actor)
    {
        ActorMemoryDialogs actorMemory = GetActorMemory(actor);

        if (actorMemory != null)
        {
            actorMemory.ClearLastActorDialogResponse();

            ClearActorDialogs(actor);
            dialogsLoader.LoadActorDialogs(actor, "");
        }
    }
コード例 #4
0
    public DialogResponse DialogRequest(string actor, string text)
    {
        DialogResponse dialogResponse = null;

        ActorDialogs       actorDialogs = GetActorDialogs(actor);
        ActorMemoryDialogs actorMemory  = GetActorMemory(actor);

        if (actorDialogs != null && actorMemory != null)
        {
            text = NormalizeText(text);
            Debug.Log("NormalizeText: " + text);
            dialogResponse = actorDialogs.DialogRequest(actorMemory, text);
            actorMemory.AddDialogResponse(dialogResponse);
        }
        return(dialogResponse);
    }
コード例 #5
0
    public DialogResponse DialogRequest(ActorMemoryDialogs actorMemory, string text)
    {
        DialogResponse dialogResponse = null;

        Debug.Log("DialogInit.0. text = '" + text + "' / isInit = " + actorMemory.IsInit());

        if (actorMemory.IsInit())
        {
            dialogResponse = DialogRequest(dictPriorityListInitDialogs, actorMemory, text);
            actorMemory.SetIsInit(false);
        }
        else
        {
            dialogResponse = DialogRequest(dictPriorityListDialogs, actorMemory, text);
        }
        return(dialogResponse);
    }
コード例 #6
0
    /*
     * public DialogResponse DialogRequest2(ActorMemoryDialogs actorMemory, string text)
     * {
     *  DialogResponse dialogResponse = null;
     *  DialogRequest dialogRequest = new DialogRequest(text);
     *
     *  Debug.Log("DialogInit.0. text = '" + text + "' / isInit = "+ actorMemory.IsInit());
     *
     *  if (actorMemory.IsInit())
     *  {
     *      dialogResponse = DialogRequest(dictPriorityListInitDialogs, actorMemory, text);
     *      actorMemory.SetIsInit(false);
     *      return dialogResponse;
     *  }
     *
     *  dialogResponse = new DialogResponse();
     *
     *  foreach (int priority in dictListPriorityDialogs.Keys)
     *  {
     *      Debug.Log("DialogInit.4. priority = " + priority);
     *
     *      List<Dialog> listDialogs = GetDialogsPriority(priority, false);
     *      foreach (Dialog dialog in listDialogs)
     *      {
     *          dialog.Eval(dialogRequest, dialogResponse);
     *          if (dialogResponse.IsValid()) return dialogResponse;
     *      }
     *  }
     *  return null;
     * }
     */

    public DialogResponse DialogRequest(DictPriorityListItems <Dialog> dictPriorityListItems, ActorMemoryDialogs actorMemory, string text)
    {
        DialogResponse dialogResponse;
        DialogRequest  dialogRequest = new DialogRequest(text);

        Debug.Log("DialogInit.0. text = '" + text + "' / isInit = " + actorMemory.IsInit());

        dialogResponse = new DialogResponse();

        foreach (int priority in dictPriorityListItems.GetListPriorities())
        {
            Debug.Log("DialogInit.4. priority = " + priority);

            List <Dialog> listDialogs = dictPriorityListItems.GetPriorityList(priority);
            foreach (Dialog dialog in listDialogs)
            {
                dialog.Eval(dialogRequest, dialogResponse);
                if (dialogResponse.IsValid())
                {
                    return(dialogResponse);
                }
            }
        }
        return(null);
    }