Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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;
            }
        }