private VoiceInteraction CreateVoiceInteraction(ResVoiceInteraction InInteractionCfg)
        {
            VoiceInteraction voiceInteraction = this.Factory.Create((int)InInteractionCfg.bTriggerType) as VoiceInteraction;

            DebugHelper.Assert(voiceInteraction != null, "Failed create Interaction for {0}:{1}", new object[]
            {
                InInteractionCfg.dwConfigID,
                InInteractionCfg.bTriggerType
            });
            return(voiceInteraction);
        }
 private void LateUpdate()
 {
     if (!this.bActiveSys || MonoSingleton <Reconnection> .GetInstance().isProcessingRelayRecover)
     {
         return;
     }
     DictionaryView <int, ListView <VoiceInteraction> > .Enumerator enumerator = this.Interactions.GetEnumerator();
     while (enumerator.MoveNext())
     {
         KeyValuePair <int, ListView <VoiceInteraction> > current = enumerator.get_Current();
         ListView <VoiceInteraction> value = current.get_Value();
         int num  = -1;
         int num2 = 0;
         for (int i = 0; i < value.get_Count(); i++)
         {
             VoiceInteraction voiceInteraction = value.get_Item(i);
             if (voiceInteraction.isBeginTrigger && voiceInteraction.priority > num)
             {
                 num = voiceInteraction.priority;
                 num2++;
             }
         }
         if (num2 > 0)
         {
             float realtimeSinceStartup = Time.realtimeSinceStartup;
             for (int j = 0; j < value.get_Count(); j++)
             {
                 VoiceInteraction voiceInteraction2 = value.get_Item(j);
                 if (voiceInteraction2.isBeginTrigger && voiceInteraction2.priority == num)
                 {
                     voiceInteraction2.DoTrigger();
                 }
                 voiceInteraction2.FinishTrigger(realtimeSinceStartup);
             }
         }
     }
 }
        private void FilterInteractionCfg(ResVoiceInteraction InInteractionCfg)
        {
            HashSet <int> inOwnerCamps = null;

            if (this.HeroStatInfo.TryGetValue((int)InInteractionCfg.dwGroupID, ref inOwnerCamps))
            {
                if (!this.CheckReceiver(InInteractionCfg, inOwnerCamps))
                {
                    return;
                }
                VoiceInteraction voiceInteraction = this.CreateVoiceInteraction(InInteractionCfg);
                if (voiceInteraction != null)
                {
                    voiceInteraction.Init(InInteractionCfg);
                    ListView <VoiceInteraction> listView = null;
                    if (!this.Interactions.TryGetValue(voiceInteraction.groupID, ref listView))
                    {
                        listView = new ListView <VoiceInteraction>();
                        this.Interactions.Add(voiceInteraction.groupID, listView);
                    }
                    listView.Add(voiceInteraction);
                }
            }
        }