// Token: 0x06001984 RID: 6532
public static TreatmentCalculationBreakdown CalculateEstimatedTreatmentOutcome(Patient patient, Staff staff, Room room)
{
float diagnosisCertainty = patient.DiagnosisCertainty;
float num = (room != null && staff != null) ? staff.GetTreatmentSkillRating(room) : 0f;
float num2 = (room != null) ? room.TreatmentModifier : 0f;
IllnessDefinition.TreatmentType bestTreatmentType = patient.Illness.GetBestTreatmentType((room != null) ? room.Definition : null, patient.Level.ResearchManager);
float num3 = (bestTreatmentType != null) ? bestTreatmentType._effectiveness : 0f;
float num4 = (bestTreatmentType != null) ? bestTreatmentType._effectivenessMax : 0f;
if (room != null)
{
foreach (RoomItem roomItem in room.FloorPlan.Items)
{
float roomItemEffectiveness = 0f;
roomItem.IterateModifiers<RoomModifierTreatment>(delegate(RoomModifierTreatment treatment)
{
if (!treatment.RoomWide)
{
roomItemEffectiveness += treatment.Percentage / 100f;
}
});
num2 += roomItemEffectiveness;
}
}
float num5 = num + num2;
num5 = Mathf.Min(num5, 1f);
float num6 = Mathf.Lerp(num3, num4, num5);
float chanceOfSuccess = diagnosisCertainty * num6 / 100f;
chanceOfSuccess = 100f; // 成功率100%
return new TreatmentCalculationBreakdown
{
ChanceOfSuccess = chanceOfSuccess,
DiagnosisCertainty = diagnosisCertainty,
StaffSkill = num * 100f,
RoomModifiers = num2 * 100f,
MinTreatmentEffectiveness = num3,
MaxTreatmentEffectiveness = num4
};
}
双点医院治疗成功率修改
猜你喜欢
转载自blog.csdn.net/warrially/article/details/104111640
今日推荐
周排行