安装 Steam
登录
|
语言
繁體中文(繁体中文)
日本語(日语)
한국어(韩语)
ไทย(泰语)
български(保加利亚语)
Čeština(捷克语)
Dansk(丹麦语)
Deutsch(德语)
English(英语)
Español-España(西班牙语 - 西班牙)
Español - Latinoamérica(西班牙语 - 拉丁美洲)
Ελληνικά(希腊语)
Français(法语)
Italiano(意大利语)
Bahasa Indonesia(印度尼西亚语)
Magyar(匈牙利语)
Nederlands(荷兰语)
Norsk(挪威语)
Polski(波兰语)
Português(葡萄牙语 - 葡萄牙)
Português-Brasil(葡萄牙语 - 巴西)
Română(罗马尼亚语)
Русский(俄语)
Suomi(芬兰语)
Svenska(瑞典语)
Türkçe(土耳其语)
Tiếng Việt(越南语)
Українська(乌克兰语)
报告翻译问题








the following loop exists
int i = 0;
for (i = 0; i < toAssign; i++)
{
if (commitable.Count == 0)
break;
AssignWorkToPawn(current, commitable.Dequeue());
toAssign--;
}
This both decreases the number it wants to assign and also increases the indexing variable meaning it will only run the AssignWorkToPawn function, toAssign/2 times when this for loop runs. This makes it so the top assignments are not necessarily assigned first as when this loop concludes it puts the assignment to the back of the queue. Removing toAssign--; would fix this.
I really appreciate the bug reports, and your efforts to locate the bugs in the code!
A) Firefight: 1, Patient: 2, Doctor: 1
B) Patient: 2, Doctor: 1
I believe something about the fact that it is unable to assign to its full target of both pawns for some reason sends the assignment directly after it to the back of the list. So it assigns firefight, then doctor, then patient when it should be firefight, patient, then doctor.
else if (assignmentList.Count > 0)
{
var spec = assignmentList[0];
assignmentList.RemoveAt(0);
assignmentList.Add(spec);
}
But I am not sure if simply removing this block would cause problems with commitment or incremental since I haven't quite figured out how those are meant to work
My theory is that the maxCommitment loop doesn't check if there are any actually applicable pawns available, causing it to reach maxCommitment without doing anything, meaning the assignmentList.Remove(current) statement on line 220 is executed, removing the Firefight work from the list. Then, the loop end, the lines you pointed out are executed, moving the now zero-positioned Patient to the back of the list. I'll have to do some debugging to verify this though.
Thank you for the detailed description of your setup, I'll use it for debugging the issue.
1.5x:
https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=3470580518
1.0x:
https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=3470715007
1)
Exception filling window for Lomzie.AutomaticWorkAssignment.UI.ExcludeColonistsWindow: System.NullReferenceException: Object reference not set to an instance of an object
[Ref 98B54AD5] Duplicate stacktrace, see ref for original
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch2 (string)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
2)
Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch2 (string)
Verse.Widgets:EnsureMousePositionStackEmpty ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Root.Update_Patch1 (Verse.Root)
Verse.Root_Play:Update ()