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