protected virtual void DrawWorkTypeBoxFor( Rect box, Pawn pawn, WorkTypeDef worktype, bool incapable ) { List<SkillDef> skillsNeeded = worktype.relevantSkills; float averageSkill = pawn.skills.AverageOfRelevantSkillsFor(worktype); Passion passion = Passion.None; if(skillsNeeded.Count > 0) passion = pawn.skills.GetSkill(worktype.relevantSkills[0]).passion; Color red = new Color(1f, 0f, 0f); Color green = new Color(0f, 1f, 0f); Color blue = new Color(0f, 0f, 1f); Color black = new Color(0f, 0f, 0f); Color passionColor; if(passion == Passion.None) { passionColor = red; } else if(passion == Passion.Minor) { passionColor = blue; } else { passionColor = green; } GUI.color = Color.Lerp(black + (passionColor * 0.2f), passionColor, averageSkill / 20); // draw background //GUI.color = incapable ? new Color( 1f, .3f, .3f ) : Color.white; DrawUtilities.DrawWorkBoxBackground(box, pawn, worktype); GUI.color = Color.white; // draw extras var tracker = PriorityManager.Get[pawn]; if (tracker.TimeScheduled(worktype)) DrawUtilities.DrawTimeScheduled(box); if (tracker.PartScheduled(worktype)) DrawUtilities.DrawPartScheduled(box); // draw priorities / checks DrawUtilities.DrawPriority( box, pawn.GetPriority( worktype, VisibleHour ) ); }
protected virtual void DrawWorkTypeBoxFor(Rect box, Pawn pawn, WorkTypeDef worktype, bool incapable) { // draw background GUI.color = incapable ? new Color(1f, .3f, .3f) : Color.white; DrawUtilities.DrawWorkBoxBackground(box, pawn, worktype); GUI.color = Color.white; // draw extras var tracker = PriorityManager.Get[pawn]; if (tracker.TimeScheduled(worktype)) { DrawUtilities.DrawTimeScheduled(box); } if (tracker.PartScheduled(worktype)) { DrawUtilities.DrawPartScheduled(box); } // draw priorities / checks DrawUtilities.DrawPriority(box, pawn.GetPriority(worktype, VisibleHour)); }