RimWorld

RimWorld

Vanilla Psycasts Expanded
Losing a psycast (i.e. unequipping a psyring) A. resets cooldown and B. causes red errors on a later saveload
A bit of a bug and a bit of a balance issue, rolled into one:

"Create psyring" is so absurdly overpowered / unbalanced already, it's quite silly levels of fun, so I doubt you'll want to put a lot of effort into 'balancing' it, but - at the moment, even multi-day-cooldowns are reset when unequipping/reequipping a psyring. ("Timeskip meditation" psyring? Yep, your casters are all now level 99 within a single game day.)

For the same reason (losing-psycast-also-loses-object-reference), later game-loads cause a red error like this:

Could not resolve reference to object with loadID Ability_VPE_TimeskipMeditation_Thing_Human454808 of type VFECore.Abilities.Ability. Was it compressed away, destroyed, had no ID number, or not saved/loaded right? curParent=Moleslayer curPathRelToParent= UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Warning (string) Verse.LoadedObjectDirectory:ObjectWithLoadID<VFECore.Abilities.Ability> (string) Verse.CrossRefHandler:TakeResolvedRef<VFECore.Abilities.Ability> (string,Verse.IExposable) Verse.CrossRefHandler:TakeResolvedRef<VFECore.Abilities.Ability> (string) Verse.Scribe_References:Look<VFECore.Abilities.Ability> (VFECore.Abilities.Ability&,string,bool) VFECore.Abilities.CompAbilities:PostExposeData () (wrapper dynamic-method) Verse.ThingWithComps:Verse.ThingWithComps.ExposeData_Patch3 (Verse.ThingWithComps) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.ExposeData_Patch6 (Verse.Pawn) (wrapper dynamic-method) Verse.CrossRefHandler:Verse.CrossRefHandler.ResolveAllCrossReferences_Patch0 (Verse.CrossRefHandler) (wrapper dynamic-method) Verse.ScribeLoader:Verse.ScribeLoader.FinalizeLoading_Patch0 (Verse.ScribeLoader) (wrapper dynamic-method) Verse.Game:Verse.Game.LoadGame_Patch7 (Verse.Game) (wrapper dynamic-method) Verse.SavedGameLoaderNow:Verse.SavedGameLoaderNow.LoadGameFromSaveFileNow_Patch5 (string) Verse.Root_Play/<>c:<Start>b__1_1 () (wrapper dynamic-method) Verse.LongEventHandler:Verse.LongEventHandler.RunEventFromAnotherThread_Patch0 (System.Action) Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__27_0 () System.Threading.ThreadHelper:ThreadStart_Context (object) System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) System.Threading.ThreadHelper:ThreadStart ()

(I doubt it's relevant, but to be a good open-source citizen - full Hugslib log[gist.github.com]!)
< >
Showing 1-2 of 2 comments
legodude17  [developer] 27 Feb, 2023 @ 2:28pm 
The cooldown issue is basically impossible to solve without rewriting how cooldowns work entirely. The error I don't recall ever reproducing, but I can look into it.
fwiw the error causes no actual gameplay issues that I could detect; don't waste your time on it unless you're already in the process of rewriting cooldowns from the ground up or something. :)
< >
Showing 1-2 of 2 comments
Per page: 1530 50