Ejemplo n.º 1
0
 public Reaction(UBoundedNumber agreement, UBoundedNumber surprise, UBoundedNumber significance, TraitsVector totalDissonance)
 {
     Agreement            = agreement;
     Surprise             = surprise;
     Significance         = significance;
     TotalDissonance      = totalDissonance;
     ExpressiveDissonance = null;
     CharacterDissonance  = null;
 }
Ejemplo n.º 2
0
 public Reaction(UBoundedNumber agreement, UBoundedNumber surprise, UBoundedNumber significance, TraitsVector totalDissonance, TraitsVector characterDissonance, TraitsVector expressiveDissonance) :
     this(agreement, surprise, significance, totalDissonance, characterDissonance)
 {
     ExpressiveDissonance = expressiveDissonance;
 }
Ejemplo n.º 3
0
        public (Emotion, Emotion, Emotion) Feelings()
        {
            Emotion bareLeanings = Emotion.None;

            if (Apathy_Passion.Number != 0)
            {
                bareLeanings |= !Apathy_Passion ? Emotion.Apathetic : Emotion.Passionate;
            }
            if (Dysphoria_Euphoria.Number != 0)
            {
                bareLeanings |= !Dysphoria_Euphoria ? Emotion.Dysphoric : Emotion.Euphoric;
            }
            if (Inward_Outward.Number != 0)
            {
                bareLeanings |= !Inward_Outward ? Emotion.Inward : Emotion.Outward;
            }
            if (Primitive_Controlled.Number != 0)
            {
                bareLeanings |= !Primitive_Controlled ? Emotion.Primitive : Emotion.Controlled;
            }

            Emotion flags = Emotion.None;

            if (Apathy_Passion.Significance() > MIN_EMOTIONAL_SIGNIFICANCE)
            {
                flags |= !Apathy_Passion ? Emotion.Apathetic : Emotion.Passionate;
            }
            if (Dysphoria_Euphoria.Significance() > MIN_EMOTIONAL_SIGNIFICANCE)
            {
                flags |= !Dysphoria_Euphoria ? Emotion.Dysphoric : Emotion.Euphoric;
            }
            if (Inward_Outward.Significance() > MIN_EMOTIONAL_SIGNIFICANCE)
            {
                flags |= !Inward_Outward ? Emotion.Inward : Emotion.Outward;
            }
            if (Primitive_Controlled.Significance() > MIN_EMOTIONAL_SIGNIFICANCE)
            {
                flags |= !Primitive_Controlled ? Emotion.Primitive : Emotion.Controlled;
            }

            var            neuroticCalm      = Neurotic_Calm();
            var            depressiveManic   = Depressive_Manic();
            Emotion        actualEmotion     = Emotion.None;
            UBoundedNumber totalSignificance = new UBoundedNumber();

            if (neuroticCalm.Significance() > depressiveManic.Significance())
            {
                totalSignificance = neuroticCalm.Significance();
                if (totalSignificance > MIN_EMOTIONAL_SIGNIFICANCE)
                {
                    if (!neuroticCalm)
                    {
                        actualEmotion |= Emotion.Passionate;
                        actualEmotion |= Emotion.Dysphoric;
                    }
                    else
                    {
                        actualEmotion |= Emotion.Apathetic;
                        actualEmotion |= Emotion.Euphoric;
                    }
                }
            }
            else
            {
                totalSignificance = depressiveManic.Significance();
                if (totalSignificance > MIN_EMOTIONAL_SIGNIFICANCE)
                {
                    if (!depressiveManic)
                    {
                        actualEmotion |= Emotion.Dysphoric;
                        actualEmotion |= Emotion.Apathetic;
                    }
                    else
                    {
                        actualEmotion |= Emotion.Euphoric;
                        actualEmotion |= Emotion.Passionate;
                    }
                }
            }

            return(bareLeanings, flags, actualEmotion);
        }
Ejemplo n.º 4
0
 public UBoundedNumber SumToUBounded() =>
 UBoundedNumber.FromUnbounded(Math.Abs(Bad_Good) + Math.Abs(False_Honest) + Math.Abs(Timid_Powerful));