diff --git a/1.3/Assemblies/ResearchWhatever.dll b/1.3/Assemblies/ResearchWhatever.dll index 03c018b..322c1e9 100644 Binary files a/1.3/Assemblies/ResearchWhatever.dll and b/1.3/Assemblies/ResearchWhatever.dll differ diff --git a/Source/ResearchWhatever13/Patches/WorkGiver_ResearcherPatch.cs b/Source/ResearchWhatever13/Patches/WorkGiver_ResearcherPatch.cs index ff0eeee..8fb8821 100644 --- a/Source/ResearchWhatever13/Patches/WorkGiver_ResearcherPatch.cs +++ b/Source/ResearchWhatever13/Patches/WorkGiver_ResearcherPatch.cs @@ -45,7 +45,6 @@ namespace ResearchWhatever.Patches static void Prefix(Pawn pawn, Thing t, bool forced) { - ResearchProjectDef currentProj = Find.ResearchManager.currentProj; if (currentProj != null) return; Building_ResearchBench bench = t as Building_ResearchBench; @@ -60,8 +59,9 @@ namespace ResearchWhatever.Patches where Find.Storyteller.difficulty.AllowedBy(x.hideWhen) && !x.IsFinished && x.TechprintRequirementMet - && x.PrerequisitesCompleted + && x.PrerequisitesCompleted && (x.requiredResearchBuilding == null || x.requiredResearchBuilding == bench.def && bench.hasFacilities(x.requiredResearchFacilities)) + && x.GetModExtension()?.ignore != true select x); if (projects.NullOrEmpty()) @@ -70,7 +70,7 @@ namespace ResearchWhatever.Patches Messages.Message("ResearchWhateverNothingLeftToResearch".Translate(bench.Label).CapitalizeFirst(), new TargetInfo(bench.Position, bench.Map, false), MessageTypeDefOf.NeutralEvent); return; } - projects.SortBy(x => x.CostApparent); + projects.SortBy(x => x.GetModExtension()?.lowPriority == true ? 100000000f + x.CostApparent : x.CostApparent); ResearchProjectDef def = projects.First(); projects.TryRandomElementByWeight(x => x.CostApparent == def.CostApparent ? 1f : 0f, out def); diff --git a/Source/ResearchWhatever13/ResearchWhatever.csproj b/Source/ResearchWhatever13/ResearchWhatever.csproj index e220e89..48e2371 100644 --- a/Source/ResearchWhatever13/ResearchWhatever.csproj +++ b/Source/ResearchWhatever13/ResearchWhatever.csproj @@ -67,6 +67,7 @@ + diff --git a/Source/ResearchWhatever13/ResearchWhateverExtansion.cs b/Source/ResearchWhatever13/ResearchWhateverExtansion.cs new file mode 100644 index 0000000..2990846 --- /dev/null +++ b/Source/ResearchWhatever13/ResearchWhateverExtansion.cs @@ -0,0 +1,10 @@ +using Verse; + +namespace ResearchWhatever +{ + public class ResearchWhateverExtansion : DefModExtension + { + public bool ignore = false; + public bool lowPriority = false; + } +} diff --git a/change.log b/change.log index a5b980d..ae31b68 100644 --- a/change.log +++ b/change.log @@ -1,4 +1,8 @@ -1.0.2 +1.0.3 +- added an extension to make it possible to ignore some research or prioritize last; +- made so repeatable research from firefoxpdm.ResearchableStatUpgrades us always bottom priority; + +1.0.2 - option gets disabled if building is not of player faction; 1.0.1