private Rect DrawInfoPane(ConceptDef conc)
		{
			float knowledge = PlayerKnowledgeDatabase.GetKnowledge(conc);
			bool complete = PlayerKnowledgeDatabase.IsComplete(conc);
			bool drawProgressBar = !complete && knowledge > 0f;
			Text.Font = GameFont.Medium;
			float titleHeight = Text.CalcHeight(conc.LabelCap, 276f);
			Text.Font = GameFont.Small;
			float textHeight = Text.CalcHeight(conc.HelpTextAdjusted, 296f);
			float num = titleHeight + textHeight + 14f + 5f;
			if (selectedConcept == conc)
			{
				num += 40f;
			}
			if (drawProgressBar)
			{
				num += 30f;
			}
			Rect outRect = new Rect((float)UI.screenWidth - 8f - 200f - 8f - 310f, 8f, 310f, num);
			Rect result = outRect;
			Find.WindowStack.ImmediateWindow(987612111, outRect, WindowLayer.Super, delegate
			{
				outRect = outRect.AtZero();
				Rect rect = outRect.ContractedBy(7f);
				Widgets.DrawShadowAround(outRect);
				Widgets.DrawWindowBackgroundTutor(outRect);
				Rect rect2 = rect;
				rect2.width -= 20f;
				rect2.height = titleHeight + 5f;
				Text.Font = GameFont.Medium;
				Widgets.Label(rect2, conc.LabelCap);
				Text.Font = GameFont.Small;
				Rect rect3 = rect;
				rect3.yMin = rect2.yMax;
				rect3.height = textHeight;
				Widgets.Label(rect3, conc.HelpTextAdjusted);
				if (drawProgressBar)
				{
					Rect rect4 = rect;
					rect4.yMin = rect3.yMax;
					rect4.height = 30f;
					Widgets.FillableBar(rect4, PlayerKnowledgeDatabase.GetKnowledge(conc), ProgressBarFillTex);
				}
				if (selectedConcept == conc)
				{
					if (Widgets.CloseButtonFor(outRect))
					{
						selectedConcept = null;
						SoundDefOf.PageChange.PlayOneShotOnCamera();
					}
					Rect rect5 = new Rect(rect.center.x - 70f, rect.yMax - 30f, 140f, 30f);
					if (!complete)
					{
						if (Widgets.ButtonText(rect5, "MarkLearned".Translate()))
						{
							selectedConcept = null;
							SoundDefOf.PageChange.PlayOneShotOnCamera();
							PlayerKnowledgeDatabase.SetKnowledge(conc, 1f);
						}
					}
					else
					{
						GUI.color = new Color(1f, 1f, 1f, 0.5f);
						Text.Anchor = TextAnchor.MiddleCenter;
						Widgets.Label(rect5, "AlreadyLearned".Translate());
						Text.Anchor = TextAnchor.UpperLeft;
						GUI.color = Color.white;
					}
				}
			}, doBackground: false);
			return result;
		}
Exemple #2
0
 public static void LessonAutoActivatorUpdate()
 {
     if (!TutorSystem.AdaptiveTrainingEnabled || Current.Game == null || Find.Tutor.learningReadout.ShowAllMode)
     {
         return;
     }
     LessonAutoActivator.timeSinceLastLesson += RealTime.realDeltaTime;
     if (Current.ProgramState == ProgramState.Playing && (Time.timeSinceLevelLoad < 8f || Find.WindowStack.SecondsSinceClosedGameStartDialog < 8f || Find.TickManager.NotPlaying))
     {
         return;
     }
     for (int i = LessonAutoActivator.alertingConcepts.Count - 1; i >= 0; i--)
     {
         if (PlayerKnowledgeDatabase.IsComplete(LessonAutoActivator.alertingConcepts[i]))
         {
             LessonAutoActivator.alertingConcepts.RemoveAt(i);
         }
     }
     if (Time.frameCount % 15 == 0 && Find.ActiveLesson.Current == null)
     {
         for (int j = 0; j < DefDatabase <ConceptDef> .AllDefsListForReading.Count; j++)
         {
             ConceptDef conceptDef = DefDatabase <ConceptDef> .AllDefsListForReading[j];
             if (!PlayerKnowledgeDatabase.IsComplete(conceptDef))
             {
                 float num = PlayerKnowledgeDatabase.GetKnowledge(conceptDef);
                 num -= 0.00015f * Time.deltaTime * 15f;
                 if (num < 0f)
                 {
                     num = 0f;
                 }
                 PlayerKnowledgeDatabase.SetKnowledge(conceptDef, num);
                 if (conceptDef.opportunityDecays)
                 {
                     float num2 = LessonAutoActivator.GetOpportunity(conceptDef);
                     num2 -= 0.4f * Time.deltaTime * 15f;
                     if (num2 < 0f)
                     {
                         num2 = 0f;
                     }
                     LessonAutoActivator.opportunities[conceptDef] = num2;
                 }
             }
         }
         if (Find.Tutor.learningReadout.ActiveConceptsCount < 3)
         {
             ConceptDef conceptDef2 = LessonAutoActivator.MostDesiredConcept();
             if (conceptDef2 != null)
             {
                 float desire = LessonAutoActivator.GetDesire(conceptDef2);
                 if (desire > 0.1f && LessonAutoActivator.RelaxDesire < desire)
                 {
                     LessonAutoActivator.TryInitiateLesson(conceptDef2);
                 }
             }
         }
         else
         {
             LessonAutoActivator.SetLastLessonTimeToNow();
         }
     }
 }
 public override void OnActivated()
 {
     PlayerKnowledgeDatabase.SetKnowledge(base.def.concept, 0f);
     base.OnActivated();
 }
 public static void LessonAutoActivatorUpdate()
 {
     if (!TutorSystem.AdaptiveTrainingEnabled || Current.Game == null || Find.Tutor.learningReadout.ShowAllMode)
     {
         return;
     }
     timeSinceLastLesson += RealTime.realDeltaTime;
     if (Current.ProgramState == ProgramState.Playing && (Time.timeSinceLevelLoad < 8f || Find.WindowStack.SecondsSinceClosedGameStartDialog < 8f || Find.TickManager.NotPlaying))
     {
         return;
     }
     for (int num = alertingConcepts.Count - 1; num >= 0; num--)
     {
         if (PlayerKnowledgeDatabase.IsComplete(alertingConcepts[num]))
         {
             alertingConcepts.RemoveAt(num);
         }
     }
     if (Time.frameCount % 15 != 0 || Find.ActiveLesson.Current != null)
     {
         return;
     }
     for (int i = 0; i < DefDatabase <ConceptDef> .AllDefsListForReading.Count; i++)
     {
         ConceptDef conceptDef = DefDatabase <ConceptDef> .AllDefsListForReading[i];
         if (PlayerKnowledgeDatabase.IsComplete(conceptDef))
         {
             continue;
         }
         float knowledge = PlayerKnowledgeDatabase.GetKnowledge(conceptDef);
         knowledge -= 0.00015f * Time.deltaTime * 15f;
         if (knowledge < 0f)
         {
             knowledge = 0f;
         }
         PlayerKnowledgeDatabase.SetKnowledge(conceptDef, knowledge);
         if (conceptDef.opportunityDecays)
         {
             float opportunity = GetOpportunity(conceptDef);
             opportunity -= 0.4f * Time.deltaTime * 15f;
             if (opportunity < 0f)
             {
                 opportunity = 0f;
             }
             opportunities[conceptDef] = opportunity;
         }
     }
     if (Find.Tutor.learningReadout.ActiveConceptsCount < 3)
     {
         ConceptDef conceptDef2 = MostDesiredConcept();
         if (conceptDef2 != null)
         {
             float desire = GetDesire(conceptDef2);
             if (desire > 0.1f && RelaxDesire < desire)
             {
                 TryInitiateLesson(conceptDef2);
             }
         }
     }
     else
     {
         SetLastLessonTimeToNow();
     }
 }
Exemple #5
0
 public static void LessonAutoActivatorUpdate()
 {
     if (TutorSystem.AdaptiveTrainingEnabled && Current.Game != null && !Find.Tutor.learningReadout.ShowAllMode)
     {
         LessonAutoActivator.timeSinceLastLesson += RealTime.realDeltaTime;
         if (Current.ProgramState == ProgramState.Playing)
         {
             if (Time.timeSinceLevelLoad < 8.0)
             {
                 return;
             }
             if (Find.WindowStack.SecondsSinceClosedGameStartDialog < 8.0)
             {
                 return;
             }
             if (Find.TickManager.NotPlaying)
             {
                 return;
             }
         }
         for (int num = LessonAutoActivator.alertingConcepts.Count - 1; num >= 0; num--)
         {
             if (PlayerKnowledgeDatabase.IsComplete(LessonAutoActivator.alertingConcepts[num]))
             {
                 LessonAutoActivator.alertingConcepts.RemoveAt(num);
             }
         }
         if (Time.frameCount % 15 == 0 && Find.ActiveLesson.Current == null)
         {
             for (int i = 0; i < DefDatabase <ConceptDef> .AllDefsListForReading.Count; i++)
             {
                 ConceptDef conceptDef = DefDatabase <ConceptDef> .AllDefsListForReading[i];
                 if (!PlayerKnowledgeDatabase.IsComplete(conceptDef))
                 {
                     float knowledge = PlayerKnowledgeDatabase.GetKnowledge(conceptDef);
                     knowledge = (float)(knowledge - 0.0001500000071246177 * Time.deltaTime * 15.0);
                     if (knowledge < 0.0)
                     {
                         knowledge = 0f;
                     }
                     PlayerKnowledgeDatabase.SetKnowledge(conceptDef, knowledge);
                     if (conceptDef.opportunityDecays)
                     {
                         float opportunity = LessonAutoActivator.GetOpportunity(conceptDef);
                         opportunity = (float)(opportunity - 0.40000000596046448 * Time.deltaTime * 15.0);
                         if (opportunity < 0.0)
                         {
                             opportunity = 0f;
                         }
                         LessonAutoActivator.opportunities[conceptDef] = opportunity;
                     }
                 }
             }
             if (Find.Tutor.learningReadout.ActiveConceptsCount < 3)
             {
                 ConceptDef conceptDef2 = LessonAutoActivator.MostDesiredConcept();
                 if (conceptDef2 != null)
                 {
                     float desire = LessonAutoActivator.GetDesire(conceptDef2);
                     if (desire > 0.10000000149011612 && LessonAutoActivator.RelaxDesire < desire)
                     {
                         LessonAutoActivator.TryInitiateLesson(conceptDef2);
                     }
                 }
             }
             else
             {
                 LessonAutoActivator.SetLastLessonTimeToNow();
             }
         }
     }
 }