/// <summary>
 /// Asset constructor.
 /// Creates a new empty Emotional Appraisal Asset.
 /// </summary>
 /// <param name="perspective">The initial perspective of the asset.</param>
 public EmotionalAppraisalAsset()
 {
     m_emotionDispositions         = new Dictionary <string, EmotionDisposition>();
     m_defaultEmotionalDisposition = new EmotionDisposition("*", 1, 0);
     m_occAffectDerivator          = new OCCAffectDerivationComponent();
     m_appraisalDerivator          = new ReactiveAppraisalDerivator();
 }
 /// @cond DEV
 public void SetObjectData(ISerializationData dataHolder, ISerializationContext context)
 {
     Description                   = dataHolder.GetValue <string>("Description");
     m_appraisalDerivator          = dataHolder.GetValue <ReactiveAppraisalDerivator>("AppraisalRules");
     m_occAffectDerivator          = new OCCAffectDerivationComponent();
     m_emotionDispositions         = new Dictionary <string, EmotionDisposition>();
     m_defaultEmotionalDisposition = new EmotionDisposition("*", 1, 0);
 }
Beispiel #3
0
        public EmotionalAppraisalAsset(string perspective)
        {
            m_kb = new KB((Name)perspective);
            m_am = new AM();
            m_am.BindCalls(m_kb);

            m_emotionalState     = new ConcreteEmotionalState(this);
            m_occAffectDerivator = new OCCAffectDerivationComponent();
            m_appraisalDerivator = new ReactiveAppraisalDerivator();
            BindCalls(m_kb);
        }
        /// @cond DEV
        public void SetObjectData(ISerializationData dataHolder, ISerializationContext context)
        {
            Description = dataHolder.GetValue <string>("Description");

            m_appraisalDerivator = dataHolder.GetValue <ReactiveAppraisalDerivator>("AppraisalRules");
            m_occAffectDerivator = new OCCAffectDerivationComponent();

            if (m_emotionDispositions == null)
            {
                m_emotionDispositions = new Dictionary <string, EmotionDisposition>();
            }
            else
            {
                m_emotionDispositions.Clear();
            }

            var dispositions = dataHolder.GetValue <EmotionDisposition[]>("EmotionDispositions");
            EmotionDisposition defaultDisposition = null;

            foreach (var disposition in dispositions)
            {
                if (string.Equals(disposition.Emotion, "*", StringComparison.InvariantCultureIgnoreCase))
                {
                    if (defaultDisposition == null)
                    {
                        defaultDisposition = disposition;
                    }
                }
                else
                {
                    m_emotionDispositions.Add(disposition.Emotion, disposition);
                }
            }
            if (defaultDisposition == null)
            {
                defaultDisposition = new EmotionDisposition("*", 1, 1);
            }
            m_defaultEmotionalDisposition = defaultDisposition;


            m_goals = new Dictionary <string, Goal>();
            var goals = dataHolder.GetValue <Goal[]>("Goals");

            foreach (var g in goals)
            {
                m_goals.Add(g.Name.ToString(), g);
            }
        }
Beispiel #5
0
        public void SetObjectData(ISerializationData dataHolder)
        {
            Description = dataHolder.GetValue <string>("Description");
            EmotionalHalfLifeDecayTime             = dataHolder.GetValue <float>("EmotionalHalfLifeDecayTime");
            MoodHalfLifeDecayTime                  = dataHolder.GetValue <float>("MoodHalfLifeDecayTime");
            HalfLifeDecayConstant                  = dataHolder.GetValue <double>("HalfLifeDecayConstant");
            EmotionInfluenceOnMoodFactor           = dataHolder.GetValue <float>("EmotionInfluenceOnMoodFactor");
            MoodInfluenceOnEmotionFactor           = dataHolder.GetValue <float>("MoodInfluenceOnEmotionFactor");
            MinimumMoodValueForInfluencingEmotions = dataHolder.GetValue <double>("MinimumMoodValueForInfluencingEmotions");

            m_kb = dataHolder.GetValue <KB>("KnowledgeBase");
            m_am = dataHolder.GetValue <AM>("AutobiographicMemory");
            m_am.BindCalls(m_kb);

            m_emotionalState     = dataHolder.GetValue <ConcreteEmotionalState>("EmotionalState");
            m_appraisalDerivator = dataHolder.GetValue <ReactiveAppraisalDerivator>("AppraisalRules");

            m_occAffectDerivator = new OCCAffectDerivationComponent();
            BindCalls(m_kb);
        }