public override Evaluation GetStage(Building_BaseAltar altar)
        {
            CongregationParms parms = new CongregationParms();

            if (altar.congregationChoice == Choice.Animal || altar.congregationChoice == Choice.Human)
            {
                parms = altar.congregationParms;
            }
            if (parms.sacrifice == null || !(parms.sacrifice is Pawn))
            {
                return(null);
            }

            float health = (parms.sacrifice as Pawn).health.summaryHealth.SummaryHealthPercent;


            if (health < .4f)
            {
                return(evaluations[0]);
            }
            else if (health < .6f)
            {
                return(evaluations[1]);
            }
            else if (health < .8f)
            {
                return(evaluations[2]);
            }
            return(null);
        }
        public override Evaluation GetStage(Building_BaseAltar altar)
        {
            CongregationParms parms = altar.congregationParms;

            if (parms.preacher == null)
            {
                return(null);
            }

            Spirituality need = parms.preacher.needs.TryGetNeed <Spirituality>();

            float skill = 0.0f;

            if (need != null)
            {
                skill = need.CurLevelPercentage;
            }

            if (skill > .7f)
            {
                return(evaluations[3]);
            }
            else if (skill > .5f)
            {
                return(evaluations[2]);
            }
            else if (skill > .3f)
            {
                return(evaluations[1]);
            }
            else
            {
                return(evaluations[0]);
            }
        }
        public override Evaluation GetStage(Building_BaseAltar altar)
        {
            CongregationParms parms = altar.congregationParms;

            if (parms.deity == null || parms.preacher == null)
            {
                return(null);
            }

            int stage = 0;

            foreach (Apparel apparel in parms.preacher.apparel.WornApparel)
            {
                for (int i = 0; i < parms.deity.favoredApparel.Count; i++)
                {
                    if (parms.deity.favoredApparel[i].def == apparel.def)
                    {
                        stage++;
                        break;
                    }
                }
            }

            return(evaluations[Mathf.Clamp(stage, 0, evaluations.Count - 1)]);
        }
        protected Pawn getSacrificePawn(Building_BaseAltar altar)
        {
            CongregationParms parms = new CongregationParms();

            if (altar.congregationChoice == Choice.Animal || altar.congregationChoice == Choice.Human)
            {
                parms = altar.congregationParms;
            }
            if (parms.sacrifice == null)
            {
                return(null);
            }
            return(parms.sacrifice);
        }
        public override Evaluation GetStage(Building_BaseAltar altar)
        {
            CongregationParms parms = altar.congregationParms;

            if (parms.preacher == null)
            {
                return(null);
            }

            float talking = parms.preacher.health.capacities.GetLevel(PawnCapacityDefOf.Talking);

            if (talking > .90f)
            {
                return(evaluations[1]);
            }
            else if (talking > .70f)
            {
                return(evaluations[0]);
            }
            else
            {
                return(null);
            }
        }