private void initializeSpeaker(RHSpeaker s, int colorIndex, RHSpeaker startingSpeaker) { this.m_speakers.Add(s); RHListener l = s.GetComponent <RHListener>(); this.m_listeners_with_scores.Add(l, startingScore(l)); this.m_listeners.Add(l); m_queue.RegisterSpeaker(s); if (s.speakerColor == Color.white) { m_speakerColorMaps[s] = m_defaultColors[colorIndex]; } else { m_speakerColorMaps[s] = s.speakerColor; } List <RHStatement> stlist = GetAvailableStatements(s); s.OnRhetoricStart(stlist, this, this.m_listeners); if (s == startingSpeaker) { return; } GameObject go = Instantiate(RHManager.PrefabUIListener(), RHManager.ListenersBaseTransform()); go.GetComponent <RHUIListener>().InitializeUI(l, this, startingSpeaker, m_speakerColorMaps[l.GetComponent <RHSpeaker>()]); l.GetComponent <AITaskManager>()?.triggerEvent(new AIEVConversationStarted(this)); }