Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
The DPS of a weapon is Damage * Accuracy * (60 / (WarmupTicks + CooldownTicks + BurstTicks * (BurstCount - 1)). Travel time isn't even a factor in it.
Edit: here's an example, I ran a quick patch on this weapon to have a 0.5 projectile speed, but left all of the other stats the same. The mod now thinks the weapon does 3.08 DPS at Touch, when it should be reporting 11.55. 9 damage per shot * 6 projectile = 54 damage per burst. 60 ticks warmup, 102 ticks cooldown, 8 ticks burst * 5 burst count less one = 202 ticks total firing cycle. 72% accuracy at Touch. (54 * 0.72) / (202/60) = 11.5485.
Your mod is factoring in the 10.00s travel time, but as the second image shows, there's 3 volleys in the air and the pawn is aiming for a 4th, clearly showing that the travel time is overlapping with the cooldown (and the subsequence warmup and such, because it's so long). It'll take a good 2 minutes for those rounds to get to his target in this exaggerated example, but once the first burst gets there, it'll be doing 11.54 DPS, not 3.08. In more realistic examples, the projectile(s) would strike the target somewhere during the cooldown or possibly the following warmup, depending on speed and their tick lengths. It'd only be valid to include the travel time in the DPS equation if the cooldown didn't start until the projectile hit the target (which isn't the case, as evidenced in the screenshot).
https://imgur.com/a/dIabR9O
Exception occurred processing mod finalize events! Details: System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0008c] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.PatchProcessor.Patch () [0x000fc] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <c38a8c3281a047488dac8c9d063b7abb>:0
at Mehni.Misc.Modifications.HarmonyPatches..cctor () [0x001dd] in <acf8997ad89f4326bbb89d838e1afb11>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) [0x0002a] in <eae584ce26bc40229c1b1aa476bfa589>:0
at BetterLoading.Stage.InitialLoad.StageRunStaticCctors+<StaticConstructAll>d__16.MoveNext () [0x00073] in <1b38b4c8227d46ebb2bf64926b6f02ea>:0
Is an ongamestart error in the latest unstable. May present a problem down the road, may not. No way to be sure until the next version is officially released.
Or after choosing Fluid, choosing your Structure, Memes, and Precepts:
Or just any progression at all to begin a new game with this mod on the latest unstable. Unsure what else to do other than report it this way, let me know if I can help any other way.
Exception from asynchronous event: System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
1.3.3146 unstable build.
https://gist.github.com/HugsLibRecordKeeper/00a135388fea2ad3b3cf2b8b4c176418
I've reported this bug to Mehni because currently I have no extra time to do modding.
After he finished this bug, I will upload the new version ASAP.
https://gist.github.com/HugsLibRecordKeeper/79059db5f5e55ba5d460e1f947bf853f
Exception ticking CrafterHunter (at (143, 0, 5)): System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0008c] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.PatchProcessor.Patch () [0x000fc] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <c38a8c3281a047488dac8c9d063b7abb>:0
at Mehni.Misc.Modifications.HarmonyPatches..cctor () [0x001dd] in <acf8997ad89f4326bbb89d838e1afb11>:0
--- End of inner exception stack trace ---
at (wrapper dynamic-method) Verse.Pawn.Verse.Pawn.Tick_Patch1(Verse.Pawn)
at (wrapper dynamic-method) Verse.TickList.Verse.TickList.Tick_Patch2(Verse.TickList)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch0 (string)
(wrapper dynamic-method) Verse.TickList:Verse.TickList.Tick_Patch2 (Verse.TickList)
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch5 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch3 (Verse.Game)
(wrapper dynamic-method) Verse.Root_Play:Verse.Root_Play.Update_Patch0 (Verse.Root_Play)
Error in static constructor of Mehni.Misc.Modifications.HarmonyPatches: System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0008c] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.PatchProcessor.Patch () [0x000fc] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <c38a8c3281a047488dac8c9d063b7abb>:0
at Mehni.Misc.Modifications.HarmonyPatches..cctor () [0x001dd] in <acf8997ad89f4326bbb89d838e1afb11>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
at (wrapper dynamic-method) System.Runtime.CompilerServices.RuntimeHelpers.System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor_Patch1(System.RuntimeTypeHandle)
at StartupImpact.Patch.StaticConstructorOnStartupUtilityCallAll.Prefix () [0x00059] in <844a17ebd71c4d8bb5a7958aa41b3802>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch3 (string)
StartupImpact.Patch.StaticConstructorOnStartupUtilityCallAll:Prefix ()
(wrapper dynamic-method) Verse.StaticConstructorOnStartupUtility:Verse.StaticConstructorOnStartupUtility.CallAll_Patch2 ()
Verse.PlayDataLoader/<>c:<DoPlayLoad>b__4_3 ()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished ()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent ()
Verse.LongEventHandler:LongEventsUpdate (bool&)
(wrapper dynamic-method) Verse.Root:Verse.Root.Update_Patch1 (Verse.Root)
Verse.Root_Entry:Update ()