예제 #1
0
        protected override bool EvaluateNode(PerceivedEvent perceivedEvent, Memory memory, CharacterTraits traits)
        {
            if (!CharacterHasPersonalValue(PersonalValues.Faith, traits))
            {
                return(false);
            }

            if (memory.HaveIDoneSomethingUnforgivable())
            {
                var unforgivenTestResult = new NodeTestInfo
                {
                    TestedCharacteristic = CharacteristicType.Memory,
                    CharacteristicName   = "PastActions",
                    Result      = true,
                    Description = "Conditional on:Value(Faith)"
                };
                DataToMemorize.Add(unforgivenTestResult);

                return(true);
            }

            var myTestResult = new NodeTestInfo
            {
                TestedCharacteristic = CharacteristicType.Karma,
                CharacteristicName   = "Karma",
                AttributeValue       = memory.MyKarmaScore,
                PassingValue         = -5,
                Result      = memory.MyKarmaScore < -5, //this is the test
                Description = "Conditional on:Value(Faith)"
            };

            DataToMemorize.Add(myTestResult);

            return(myTestResult.Result);
        }
예제 #2
0
        protected override bool EvaluateNode(PerceivedEvent perceivedEvent, Memory memory, CharacterTraits traits)
        {   //TODO: rethink
            //Emotional, sad.
            var myTestResult = new NodeTestInfo
            {
                TestedCharacteristic = CharacteristicType.Emotion,
                CharacteristicName   = "Sadness",
                AttributeValue       = traits.ShortTermEmotions.Sadness,
                PassingValue         = 25,
                Result      = traits.ShortTermEmotions.Sadness >= 25, //this is the test
                Description = string.Empty
            };

            if (myTestResult.Result)
            {
                DataToMemorize.Add(myTestResult);
                return(true);
            }

            if (traits.Selflessness > traits.Compassion)
            {
                //Automatic failure: not enough compassion
                if (traits.Compassion <= ConfiguredPassFailValue)
                {
                    return(TestAttributeSmallerOrEqualThanSetValue(traits.Compassion, ConfiguredPassFailValue, "AutomaticFailure", Qualities.Compassion.ToString()));
                }
                else
                //Automatic failure: too selfish
                if (traits.Selflessness <= ConfiguredPassFailValue)
                {
                    return(TestAttributeSmallerOrEqualThanSetValue(traits.Selflessness, ConfiguredPassFailValue, "AutomaticFailure", Qualities.Selflessness.ToString()));
                }
            }

            return(true);
        }