/// <summary>
        /// Callback function. Used to set the <see cref="LocalizeDictionary"/>.Provider if set in Xaml.
        /// </summary>
        /// <param name="obj">The dependency object.</param>
        /// <param name="args">The event argument.</param>
        private static void SetProviderFromDependencyProperty(DependencyObject obj, DependencyPropertyChangedEventArgs args)
        {
            DictionaryEvent.Invoke(obj, new DictionaryEventArgs(DictionaryEventType.ProviderChanged, args.NewValue));

            if (args.OldValue is ILocalizationProvider oldProvider)
            {
                oldProvider.ProviderChanged -= ProviderUpdated;
                oldProvider.ValueChanged    -= ValueChanged;
                oldProvider.AvailableCultures.CollectionChanged -= Instance.AvailableCulturesCollectionChanged;
            }

            if (args.NewValue is ILocalizationProvider provider)
            {
                provider.ProviderChanged += ProviderUpdated;
                provider.ValueChanged    += ValueChanged;
                provider.AvailableCultures.CollectionChanged += Instance.AvailableCulturesCollectionChanged;

                foreach (var c in provider.AvailableCultures)
                {
                    if (!Instance.MergedAvailableCultures.Contains(c))
                    {
                        Instance.MergedAvailableCultures.Add(c);
                    }
                }
            }
        }
Exemplo n.º 2
0
 public void Awake()
 {
     //AÑADIMOS LOS DIALOGOS CARGADOS DEL XML
     dialogueClass_Class    = dialogueClass.GetComponent <LoadXml>().DClass;
     AnswerManager          = new AnswerManager();
     DictionaryE            = goDictionary.GetComponent <DictionaryEvent>();
     CameraCenterController = Camera.main.GetComponent <CameraCenterController>();
 }
Exemplo n.º 3
0
    private void OnIncomingMessagesChanged(DictionaryEvent @event = DictionaryEvent.Created, int key = 0, Message item = null)
    {
        if (InChatTab)
        {
            return;
        }

        PropertyChanged(() => Messages);
    }
        public async Task <IHttpActionResult> PostEvent(DictionaryEvent ds)
        {
            Event mEvent = new Event();

            mEvent.Name           = ds.Name;
            mEvent.SolutionBaseId = ds.SolutionBaseId;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Events.Add(mEvent);
            await db.SaveChangesAsync();

            return(StatusCode(HttpStatusCode.OK));
        }
        public async Task <IHttpActionResult> PutEvent(DictionaryEvent ds)
        {
            Event mEvent = db.Events.Single(s => s.Id == ds.Id);

            if (mEvent == null)
            {
                return(BadRequest());
            }

            db.Entry(mEvent).State = EntityState.Modified;
            if (!String.IsNullOrEmpty(ds.Name))
            {
                mEvent.Name = ds.Name;
            }
            if (ds.SolutionBaseId >= 0)
            {
                mEvent.SolutionBaseId = ds.SolutionBaseId;
            }

            await db.SaveChangesAsync();

            return(StatusCode(HttpStatusCode.OK));
        }
Exemplo n.º 6
0
    private void OnChatMessagesChanged(DictionaryEvent @event = DictionaryEvent.Created, int key = 0, Message item = null)
    {
        if (!InChatTab)
        {
            return;
        }

        if (@event == DictionaryEvent.ItemUpdated)
        {
            return;
        }

        if (item is HelpRequestMessage)
        {
            if (@event == DictionaryEvent.ItemRemoved)
            {
                item.Lifetime.CanExpire = true;
                item.Lifetime.Duration  = Use <ITimeProvider>().GetTime() - item.Lifetime.CreationTime +
                                          durationDeletingAnimationMs;

                _deletingMessages.Add(item);
                DeletedAnimationsMessagesId.Add(item.Id);
            }
            else if (@event == DictionaryEvent.ItemAdded)
            {
                AddedAnimationsMessagesId.Add(item.Id);
            }
        }

        chatService.TryReconnect();
        PropertyChanged(() => InGuild);
        PropertyChanged(() => InChatTab);
        PropertyChanged(() => EmblemIsVisible);

        PropertyChanged(() => Messages);
    }
 private static void ValueChanged(object sender, ValueChangedEventArgs args)
 {
     DictionaryEvent.Invoke(null, new DictionaryEventArgs(DictionaryEventType.ValueChanged, args));
 }
 private static void ProviderUpdated(object sender, ProviderChangedEventArgs args)
 {
     DictionaryEvent.Invoke(args.Object, new DictionaryEventArgs(DictionaryEventType.ProviderUpdated, sender));
 }
Exemplo n.º 9
0
 public void SearchSpecificAnswers(Dialogue_ConversationClass dialogueClass_Class, int i_Listener, int i_Speaker, DictionaryEvent dictionaryE)
 {
     Debug.Log("Cantidad de clues encontradas " + foundedClues.Count);
     for (int i = 0; i < dialogueClass_Class.uniqueClass.Count; i++)
     {
         //BOOLEANO QUE COMPRUEBA SI CIERTO EVENTO HA SIDO DISPARADO O NO
         bool triggerEvent = false;
         //RECORREMOS LOS DIALOGOS DENTRO DEL XML SEGUN EL PERSONAJE QUE HABLE CON OTRO
         for (int j = 0; j < dialogueClass_Class.uniqueClass[i].uniqueQuestion.Count; j++)
         {
             //COMPROBAMOS QUE PERSONAJE HABLA CON CUAL
             if (dialogueClass_Class.uniqueClass[i].speakers == i_Speaker && (dialogueClass_Class.uniqueClass[i].listener == i_Listener || dialogueClass_Class.uniqueClass[i].listener == -1) || (dialogueClass_Class.uniqueClass[i].speakers == -1 && dialogueClass_Class.uniqueClass[i].listener == -1))
             {
                 //SI HAY KEYS DE LOS EVENTOS EN ESTE DIALOGO
                 if (dialogueClass_Class.uniqueClass[i].keys.Count > 0)
                 {
                     //SI LA KEY DEL XML NO ESTA VACIA
                     if (!dialogueClass_Class.uniqueClass[i].keys[j].Equals(""))
                     {
                         //SI LA KEY DEL EVENTO ENCONTRADA SE ENCUENTRA ENTRE NUESTROS EVENTOS
                         if (dictionaryE.Events.ContainsKey(dialogueClass_Class.uniqueClass[i].keys[j]))
                         {
                             //COMPROBAMOS VALOR TRUE O FALSE SI NUESTRO EVENTO ESTA ACTIVADO O NO
                             if (dictionaryE.Events.TryGetValue(dialogueClass_Class.uniqueClass[i].keys[j], out triggerEvent))
                             {
                                 //LE DAMOS DICHO VALOR A NUESTRO BOOLEANO
                                 dictionaryE.Events[dialogueClass_Class.uniqueClass[i].keys[j]] = triggerEvent;
                             }
                         }
                     }
                     else
                     {
                         triggerEvent = true;
                     }
                 }
                 else
                 {
                     triggerEvent = true;
                 }
             }
             if (dialogueClass_Class.uniqueClass[i].exception != -1)
             {
                 if (dialogueClass_Class.uniqueClass[i].exception != i_Listener)
                 {
                     AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, dialogueClass_Class.uniqueClass[i].uniqueAnswers[j], triggerEvent);
                 }
                 else
                 {
                     if (dialogueClass_Class.uniqueClass[i].exceptionAtLine != j)
                     {
                         AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, dialogueClass_Class.uniqueClass[i].uniqueAnswers[j], triggerEvent);
                     }
                 }
             }
             else
             {
                 AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, dialogueClass_Class.uniqueClass[i].uniqueAnswers[j], triggerEvent);
             }
         }
     }
 }
Exemplo n.º 10
0
    public void FillUniqueQuestions(Dialogue_ConversationClass dialogueClass_Class, int i_Listener, int i_Speaker, DictionaryEvent dictionaryE)
    {
        //RECORREMOS TODA LA CLASE QUE HA LEIDO EL XML
        for (int i = 0; i < dialogueClass_Class.uniqueClass.Count; i++)
        {
            //BOOLEANO QUE COMPRUEBA SI CIERTO EVENTO HA SIDO DISPARADO O NO
            bool triggerEvent = false;
            //RECORREMOS LOS DIALOGOS DENTRO DEL XML SEGUN EL PERSONAJE QUE HABLE CON OTRO
            for (int j = 0; j < dialogueClass_Class.uniqueClass[i].uniqueQuestion.Count; j++)
            {
                //COMPROBAMOS QUE PERSONAJE HABLA CON CUAL
                if (dialogueClass_Class.uniqueClass[i].speakers == i_Speaker && (dialogueClass_Class.uniqueClass[i].listener == i_Listener || dialogueClass_Class.uniqueClass[i].listener == -1) || (dialogueClass_Class.uniqueClass[i].speakers == -1 && dialogueClass_Class.uniqueClass[i].listener == -1))
                {
                    //SI HAY KEYS DE LOS EVENTOS EN ESTE DIALOGO
                    if (dialogueClass_Class.uniqueClass[i].keys.Count > 0)
                    {
                        //SI LA KEY DEL XML NO ESTA VACIA
                        if (!dialogueClass_Class.uniqueClass[i].keys[j].Equals(""))
                        {
                            //SI LA KEY DEL EVENTO ENCONTRADA SE ENCUENTRA ENTRE NUESTROS EVENTOS
                            if (dictionaryE.Events.ContainsKey(dialogueClass_Class.uniqueClass[i].keys[j]))
                            {
                                //COMPROBAMOS VALOR TRUE O FALSE SI NUESTRO EVENTO ESTA ACTIVADO O NO
                                if (dictionaryE.Events.TryGetValue(dialogueClass_Class.uniqueClass[i].keys[j], out triggerEvent))
                                {
                                    Debug.Log("Key dialogo " + dialogueClass_Class.uniqueClass[i].keys[j]);
                                    //LE DAMOS DICHO VALOR A NUESTRO BOOLEANO
                                    dictionaryE.Events[dialogueClass_Class.uniqueClass[i].keys[j]] = triggerEvent;
                                    //Debug.Log("Se ha encontrado la key " + dialogueClass_Class.uniqueClass[i].keys[j] + " de indice " + j + " la cual es: " + triggerEvent);
                                }
                            }
                        }
                        else
                        {
                            triggerEvent = true;
                        }
                    }
                    else
                    {
                        triggerEvent = true;
                    }
                }

                //SI EXISTE UN PERSONAJE EXCEPCION EN NUESTRO DIALOGO
                if (dialogueClass_Class.uniqueClass[i].exception != -1)
                {
                    //SI DICHA EXCEPCION NO ES EL PERSONAJE CON QUE ESTAMOS HABLANDO
                    if (dialogueClass_Class.uniqueClass[i].exception != i_Listener)
                    {
                        //AÑADIMOS LA PREGUNTA
                        AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, dialogueClass_Class.uniqueClass[i].uniqueQuestion[j], triggerEvent);
                    }
                    else //SI EL PERSONAJE CON QUE HABLAMOS ES LA EXCEPCIÓN
                    {
                        //AÑADIMOS TODAS AQUELLAS PREGUNTAS ESCEPTO LA DE INDICE EXCEPTIONATLINE
                        if (dialogueClass_Class.uniqueClass[i].exceptionAtLine != j)
                        {
                            AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, dialogueClass_Class.uniqueClass[i].uniqueQuestion[j], triggerEvent);
                        }
                    }
                }
                else //SI NO EXISTE UN PERSONAJE EXCEPCION EN NUESTRO DIALOGO
                {
                    if (!dictionaryE.Events["dated"])
                    {
                        if (!dialogueClass_Class.uniqueClass[i].uniqueQuestion[j].Contains("/_"))
                        {
                            string sentence = dialogueClass_Class.uniqueClass[i].uniqueQuestion[j];
                            if (dialogueClass_Class.uniqueClass[i].uniqueQuestion[j].Contains("*_"))
                            {
                                sentence = dialogueClass_Class.uniqueClass[i].uniqueQuestion[j].Substring(2);
                            }
                            AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, sentence, triggerEvent);
                        }
                    }
                    else
                    {
                        if (!dialogueClass_Class.uniqueClass[i].uniqueQuestion[j].Contains("*_"))
                        {
                            string sentence = dialogueClass_Class.uniqueClass[i].uniqueQuestion[j];
                            if (dialogueClass_Class.uniqueClass[i].uniqueQuestion[j].Contains("/_"))
                            {
                                sentence = dialogueClass_Class.uniqueClass[i].uniqueQuestion[j].Substring(2);
                            }
                            AddQuestion(dialogueClass_Class.uniqueClass[i].speakers, i_Speaker, dialogueClass_Class.uniqueClass[i].listener, i_Listener, sentence, triggerEvent);
                        }
                    }
                }
            }
        }
        //AÑADIMOS "ADIOS" EN NUESTROS ARRAYS
        specificUniqueQuestions.Add(dialogueClass_Class.returnLine);
        generalUniqueQuestions.Add(dialogueClass_Class.returnLine);
    }