public void UpdateEmotion(EmotionDTO oldEmotion, EmotionDTO newEmotion)
 {
     _rpcAsset.RemoveEmotion(oldEmotion);
     _rpcAsset.AddActiveEmotion(newEmotion);
     Emotions.DataSource = _rpcAsset.GetAllActiveEmotions().ToList();
     Emotions.Refresh();
 }
示例#2
0
    private IEnumerator UpdateEmotionalState(float updateTime)
    {
        while (true)
        {
            var SIPlayerAgent = agent1RPC.GetBeliefValue("ToM(Player, SI(SELF))");
            var SIAgentPlayer = agent1RPC.GetBeliefValue("SI(Player)");

            if (!agent1RPC.GetAllActiveEmotions().Any())
            {
                this.AgentInternalStateText.text = "Mood: " + agent1RPC.Mood + ", Emotions: [], SI(A,P): " + SIAgentPlayer + " SI(P,A): " + SIPlayerAgent;
            }
            else
            {
                var aux = "Mood: " + agent1RPC.Mood + ", Emotions: [";

                StringBuilder builder = new StringBuilder();

                var query = agent1RPC.GetAllActiveEmotions().OrderByDescending(e => e.Intensity);

                foreach (var emt in query)
                {
                    builder.AppendFormat("{0}: {1:N2}, ", emt.Type, emt.Intensity);
                }
                aux += builder.Remove(builder.Length - 2, 2);
                this.AgentInternalStateText.text = aux + "], SI(A,P): " + SIAgentPlayer + " SI(P,A): " + SIPlayerAgent;
            }

            agent1RPC.Update();


            yield return(new WaitForSeconds(updateTime));
        }
    }
示例#3
0
        private void showEmotions()
        {
            string emotions = "";

            foreach (var emotion in _rpc.GetAllActiveEmotions())
            {
                emotions += " " + emotion.Type.ToString();
            }
            Console.WriteLine(_agentName + "---" + "Emotions: " + emotions);
        }
示例#4
0
        public void UpdateFields(RolePlayCharacterAsset rpc)
        {
            StringBuilder builder  = new StringBuilder();
            bool          notFirst = false;

            var query = rpc.GetAllActiveEmotions().GroupBy(e => e.Type).Select(g => g.OrderByDescending(e => e.Intensity).First()).OrderByDescending(e => e.Intensity);

            foreach (var emt in query)
            {
                if (notFirst)
                {
                    builder.AppendLine();
                }
                builder.AppendFormat("{0}: {1:N2}", emt.Type, emt.Intensity);
                notFirst = true;
            }
            m_emotionFieldOne.text = builder.ToString();
            m_moodFieldOne.text    = string.Format("Mood: {0:N2}", rpc.Mood);
        }
 public EmotionalStateVM(RolePlayCharacterAsset asset)
 {
     _rpcAsset = asset;
     Emotions  = new BindingListView <EmotionDTO>(_rpcAsset.GetAllActiveEmotions().ToList());
 }