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); }
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); }