public void ClearChallenge() { Log.Message("Clearing challenge"); currentChallenge = new ChallengeWorkerNone(null); currentChallengeDef = null; progress = 0; }
public override void PreOpen() { base.PreOpen(); if (selectedChallenge == null) { selectedChallenge = DefDatabase <ChallengeDef> .AllDefs.RandomElementWithFallback(null); } }
public void StartChallenge(ChallengeDef challengeDef) { if (HasChallenge()) { currentChallenge.Interrupt(); } if (challengeDef != null) { Log.Message("Picked a challenge: " + challengeDef); currentChallengeDef = challengeDef; currentChallenge = (ChallengeWorker)Activator.CreateInstance(challengeDef.workerClass, challengeDef); } }
private void ListScenariosOnListing(Listing_Standard listing, IEnumerable <ChallengeDef> challenges) { bool flag = false; foreach (ChallengeDef current in challenges) { if (flag) { listing.Gap(12f); } ChallengeDef scen = current; Rect rect = listing.GetRect(62f); this.DoScenarioListEntry(rect, scen); flag = true; } if (!flag) { GUI.color = new Color(1f, 1f, 1f, 0.5f); listing.Label("(" + "NoneLower".Translate() + ")", -1f); GUI.color = Color.white; } }
private void DoScenarioListEntry(Rect rect, ChallengeDef challenge) { bool isSelected = this.selectedChallenge == challenge; bool canPick = challenge.CanStartNow; Widgets.DrawOptionBackground(rect, isSelected); Rect rect2 = rect.ContractedBy(4f); if (!canPick) { GUI.color = new Color(1f, 1f, 1f, 0.5f); } else { MouseoverSounds.DoRegion(rect); } Text.Font = GameFont.Small; Rect rect3 = rect2; rect3.height = Text.CalcHeight(challenge.LabelCap, rect3.width); Widgets.Label(rect3, challenge.LabelCap); Text.Font = GameFont.Tiny; Rect rect4 = rect2; rect4.yMin = rect3.yMax; Widgets.Label(rect4, challenge.description); GUI.color = Color.white; if (canPick) { if (!isSelected && Widgets.ButtonInvisible(rect, false)) { this.selectedChallenge = challenge; SoundDefOf.Click.PlayOneShotOnCamera(null); } } }
internal bool isFinished(ChallengeDef def) { return(challenges.Contains(def)); }
public void AddCompleted(ChallengeDef def) { challenges.Add(def); }
internal static void checkFinished(ChallengeDef def) { CompletedChallengesList completed = instance.GetSettings <CompletedChallengesList>(); def.IsFinished = completed.isFinished(def); }
internal static void ChallengeComplete(ChallengeDef def) { instance.GetSettings <CompletedChallengesList>().AddCompleted(def); instance.WriteSettings(); }
internal void setChallenge(ChallengeDef selectedChallenge) { Log.Message("Picking challenge..."); ChallengeManager.instance.StartChallenge(selectedChallenge); }