protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            JobDriver curDriver = p.jobs.curDriver;

            if (curDriver == null)
            {
                return(ThoughtState.Inactive);
            }
            Pawn_SkillTracker skills = p.skills;

            if (skills == null)
            {
                return(ThoughtState.Inactive);
            }
            SkillDef activeSkill = curDriver.ActiveSkill;

            if (activeSkill == null)
            {
                return(ThoughtState.Inactive);
            }
            SkillRecord skill = p.skills.GetSkill(curDriver.ActiveSkill);

            if (skill == null)
            {
                return(ThoughtState.Inactive);
            }
            if (skill.passion == Passion.Minor)
            {
                return(ThoughtState.ActiveAtStage(0));
            }
            if (skill.passion == Passion.Major)
            {
                return(ThoughtState.ActiveAtStage(1));
            }
            return(ThoughtState.Inactive);
        }
Beispiel #2
0
 public static void DrawSkill(SkillRecord skill, Vector2 topLeft, SkillUI.SkillDrawMode mode, string tooltipPrefix = "")
 {
     SkillUI.DrawSkill(skill, new Rect(topLeft.x, topLeft.y, 240f, 24f), mode, string.Empty);
 }
Beispiel #3
0
        private static string GetSkillDescription(SkillRecord sk)
        {
            StringBuilder stringBuilder = new StringBuilder();

            if (sk.TotallyDisabled)
            {
                stringBuilder.Append("DisabledLower".Translate().CapitalizeFirst());
            }
            else
            {
                stringBuilder.AppendLine(string.Concat(new object[]
                {
                    "Level".Translate(),
                    " ",
                    sk.Level,
                    ": ",
                    sk.LevelDescriptor
                }));
                if (Current.ProgramState == ProgramState.Playing)
                {
                    string text = (sk.Level != 20) ? "ProgressToNextLevel".Translate() : "Experience".Translate();
                    stringBuilder.AppendLine(string.Concat(new object[]
                    {
                        text,
                        ": ",
                        sk.xpSinceLastLevel.ToString("F0"),
                        " / ",
                        sk.XpRequiredForLevelUp
                    }));
                }
                stringBuilder.Append("Passion".Translate() + ": ");
                Passion passion = sk.passion;
                if (passion != Passion.None)
                {
                    if (passion != Passion.Minor)
                    {
                        if (passion == Passion.Major)
                        {
                            stringBuilder.Append("PassionMajor".Translate(new object[]
                            {
                                1.5f.ToStringPercent("F0")
                            }));
                        }
                    }
                    else
                    {
                        stringBuilder.Append("PassionMinor".Translate(new object[]
                        {
                            1f.ToStringPercent("F0")
                        }));
                    }
                }
                else
                {
                    stringBuilder.Append("PassionNone".Translate(new object[]
                    {
                        0.35f.ToStringPercent("F0")
                    }));
                }
                if (sk.LearningSaturatedToday)
                {
                    stringBuilder.AppendLine();
                    stringBuilder.Append("LearnedMaxToday".Translate(new object[]
                    {
                        sk.xpSinceMidnight.ToString("F0"),
                        4000,
                        0.2f.ToStringPercent("F0")
                    }));
                }
            }
            stringBuilder.AppendLine();
            stringBuilder.AppendLine();
            stringBuilder.Append(sk.def.description);
            return(stringBuilder.ToString());
        }
 private static float <PawnQualityPriceFactor> m__0(SkillRecord sk)
 {
     return((float)sk.Level);
 }
Beispiel #5
0
 private static bool <ExposeData> m__1(SkillRecord x)
 {
     return(x.def == null);
 }