public TrainingModel(PawnModel model, TrainableDef def) { try { Model = model; bool canTrainNow; try { canTrainNow = model.Base.RaceProps?.trainability != null && model.Base.training != null && model.Base.training.CanAssignToTrain(def, out var visible).Accepted&& visible; } catch (Exception exception) { Mod.HandleWarning(exception); canTrainNow = false; } if (!canTrainNow) { Hidden = true; return; } Label = def.LabelCap; var disabled = !model.Base.training.GetWanted(def); var hasLearned = model.Base.training.HasLearned(def); var steps = GetSteps(model.Base, def); var value = steps + " / " + def.steps; Value = hasLearned ? value.Bold() : value; Tooltip = model.GetAnimalTooltip(def); if (disabled) { Color = Theme.DisabledColor.Value; } else if (hasLearned) { Color = Theme.SkillMinorPassionColor.Value; } else { Color = Theme.MainTextColor.Value; } OnClick = InspectPanePlus.ToggleTrainingTab; } catch (Exception exception) { Mod.HandleWarning(exception); Hidden = true; } }
public TrainingModel(PawnModel model, TrainableDef def) : base(model) { var trainable = (model.Base.RaceProps?.trainability != null) && (model.Base.training != null); var visible = false; var canTrainNow = model.Base.training?.CanAssignToTrain(def, out visible).Accepted ?? false; if (!trainable || !visible || !canTrainNow) { Hidden = true; return; } Label = def.LabelCap; var disabled = !model.Base.training.GetWanted(def); var hasLearned = model.Base.training.HasLearned(def); var steps = GetSteps(model.Base, def); var value = steps + " / " + def.steps; Value = hasLearned ? value.Bold() : value; Tooltip = model.GetAnimalTooltip(def); if (disabled) { Color = Theme.DisabledColor.Value; } else if (hasLearned) { Color = Theme.SkillMinorPassionColor.Value; } else { Color = Theme.MainTextColor.Value; } }