Giter Site home page Giter Site logo

edbpreparecarefully's Introduction

EdB Prepare Carefully

Contributing Translations

The more translations, the better--they are a great contribution to the mod community. However, while it is appreciated that people take the time to translate the mod to other languages, it's difficult to keep up with those contributions. Every addition or change to a translation requires a new release of the mod, and taking on that additional effort is not possible.

Therefore, translation pull requests will not be merged into the project. Instead, please consider creating a standalone translation mod for your language. These mods don't include any code--they simply include the translation resources for a given language. With this approach, you can make changes and additions at your own pace, and you can take on the responsibility of releases for the translation.

Building Prepare Carefully

The solution file was created using Xamarin Studio/MonoDevelop, but it should also work in Visual Studio. Note that the project targets the older 3.5 version of the .NET framework used by the Unity engine on top of which RimWorld is built.

Note that the solution has dependencies on the following RimWorld DLLs:

  • Assembly-CSharp.dll
  • UnityEngine.CoreModule.dll
  • UnityEngine.IMGUIModule
  • UnityEngine.InputLegacyModule
  • UnityEngine.TextRenderingModule

Copy those dependencies from the RimWorld game directory into the "Libraries" directory. Be sure to make copies of the originals--don't accidentally move/delete them from the original game directory.

The solution also has a dependency on the following third-party DLL:

  • 0Harmony.dll

The Harmony DLL is available from https://github.com/pardeike/Harmony/releases and should also be placed in the "Libraries" directory. Prepare Carefully uses version 2.0.0.8 of Harmony. When you download Harmony, you'll see multiple versions of the DLL organized into various directories. Be sure to use the one in the "Release/net472" directory.

Only if you must create a build that also supports RimWorld 1.0, you will need to get the DLL from the latest Prepare Carefully release for 1.0, along with the DLL for Harmony 1.2. Place these DLLs into the Resources/Assemblies directory.

The result of the build will be the following DLL:

  • EdBPrepareCarefully.dll

This DLL must be packaged alongside the contents of the Resources directory to create a working mod. The DLL built by the project should be placed inside a 1.1/Assemblies directory along with the Harmony DLL. The directory structure should look like this:

+ EdBPrepareCarefully
  + 1.1
    + Assemblies
      - 0Harmony.dll
      - EdBPrepareCarefully.dll
  + About
  + Assemblies
  + Defs
  + Languages
  + Textures
  - CHANGLELOG.txt
  - LICENSE
  - LoadFolders.xml

If Windows is the OS on which you're developing, you don't need to manually create the mod directory. Instead, you can automatically package up the mod by running the dist.bat script. This will copy all of the mod resources and the DLL into a dist/EdBPrepareCarefully directory. Copy this EdBPrepareCarefully directory into your RimWorld Mods folder to use the mod in your game.

Versioning

Prepare Carefully uses a versioning scheme inspired by semantic versioning that combines the major/minor version of RimWorld with the major/minor version of the mod to end up with the following format:

{RimWorld major version}.{RimWorld minor version}.{mod version for this RimWorld version}

Other conventions used to determine the mod version numbers:

  • Mod version numbers always start at 1 and never start at 0

Some examples:

  • 0.18.2: The second release of the mod for the Beta 18 version of RimWorld
  • 1.0.11: The eleventh release of the mod for RimWorld 1.0
  • 1.1.1: The first release of the mod for RimWorld 1.1

edbpreparecarefully's People

Contributors

br1ght0ne avatar cxong avatar edbmods avatar eedibee avatar thakyz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edbpreparecarefully's Issues

No warning when the custom Genstep has been overwritten

Since the mod relies so heavily on modded map generation, it should warn users if the map generation does not include the mod's custom Genstep class. Otherwise, the user may spend a bunch of time customizing their colonists, only to lose all of those changes when they start the game.

Confusing results when creating relationships

Trying to create parent/child relationships can result in unusual results due to the default logic in the pawn relation worker classes.

Should be able to create a 4-person, mother/father/son/daughter set of relationships.

Support missing body parts

There's no way to add missing body part customizations to pawns. We should add it to the injury interface.

Cost calculation results in null pointer exception

When creating the equipment database, some modded items are failing when trying to calculate their cost. This completely breaks the mod, preventing the Prepare Carefully page from appearing.

Need to figure out the cause of the null pointer exception in CostCalculator.GetBaseThingCost() and add better error handling.

Unable to create new game

After using the Prepare Carefully button to customize pawns, the following error happens when clicking Confirm to start a new game:

Exception filling window for EdB.PrepareCarefully.Dialog_Confirm: System.Reflection.TargetException: Non-static field requires a target
  at System.Reflection.MonoField.GetValue (System.Object obj) [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.Controller.ReplaceScenarioParts (RimWorld.Scenario actualScenario, RimWorld.Scenario vanillaFriendlyScenario) [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.Controller.PrepareGame () [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.Controller.StartGame () [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.Page_PrepareCarefully.<ShowStartConfirmation>b__26_0 () [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.Dialog_Confirm.DoWindowContents (Rect inRect) [0x00000] in <filename unknown>:0 
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [0x00000] in <filename unknown>:0 
Verse.Log:Error(String)
Verse.<WindowOnGUI>c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Add a help UI for the relationships tab

The relationships user interface can be confusing. We should add a simple help interface to explain common scenarios:

  • How to create siblings
  • What are temporary pawns for (grandparent/child relationships as an example)
  • What are hidden pawns

Some "start near" scenario items don't spawn

Customize a scenario so that it includes ship chunks as "start near" items. If you prepare carefully and then start the game, those ship chunks will not spawn.

The mod needs to recognize that some items are not the same as customizable equipment. It should preserve any start near scenario parts that are for these special-case items.

Not working But Ty for trying to keep up with the unstable build.

I want to say Ty Lot's of people and I love this mod<3.
(don't know how much it will help) but when I try to open it nothing happened so i used debug and got this. P.s. this is the only mod i'm using.
Debug:
RimWorld 1.0.1967 rev980
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
RimWorld.VersionControl:LogVersionNumber() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Utility\Version\VersionControl.cs:83)
Verse.Root:CheckGlobalInit() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:82)
Verse.Root:Start() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:38)
Verse.Root_Entry:Start() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Entry.cs:16)

Exception filling window for RimWorld.Page_ConfigureStartingPawns: System.InvalidOperationException: Comparison threw an exception. ---> System.MissingMethodException: Method not found: 'Verse.GenderUtility.GetLabel'.
at EdB.PrepareCarefully.EquipmentRecord.get_Label () [0x00000] in :0
at EdB.PrepareCarefully.EquipmentDatabase+<>c.<get_Animals>b__33_1 (EdB.PrepareCarefully.EquipmentRecord a, EdB.PrepareCarefully.EquipmentRecord b) [0x00000] in :0
at System.Array.qsort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 low0, Int32 high0, System.Comparison1 comparison) [0x00025] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1773 at System.Array.Sort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 length, System.Comparison1 comparison) [0x00028] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1700
--- End of inner exception stack trace ---
at System.Array.Sort<EdB.PrepareCarefully.EquipmentRecord> (EdB.PrepareCarefully.EquipmentRecord[],int,System.Comparison1<EdB.PrepareCarefully.EquipmentRecord>) <0x000cc> at System.Collections.Generic.List1<EdB.PrepareCarefully.EquipmentRecord>.Sort (System.Comparison`1<EdB.PrepareCarefully.EquipmentRecord>) <0x0003d>
at EdB.PrepareCarefully.EquipmentDatabase.get_Animals () <IL 0x00041, 0x000da>
at EdB.PrepareCarefully.PrepareCarefully.RandomPet (RimWorld.ScenPart_StartingAnimal) <IL 0x00093, 0x001d4>
at EdB.PrepareCarefully.PrepareCarefully.InitializeDefaultEquipment () <IL 0x001b8, 0x00612>
at EdB.PrepareCarefully.PrepareCarefully.Initialize () <IL 0x00029, 0x00050>
at EdB.PrepareCarefully.HarmonyPatches.DoWindowContentsPostfix (UnityEngine.Rect,RimWorld.Page_ConfigureStartingPawns) <IL 0x0006c, 0x00171>
at (wrapper dynamic-method) RimWorld.Page_ConfigureStartingPawns.DoWindowContents_Patch1 (object,UnityEngine.Rect) <IL 0x000be, 0x0052b>
at Verse.Window/c__AnonStorey0.<>m__0 (int) [0x00223] in C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:202

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.c__AnonStorey0:<>m__0(Int32) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:206)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle) (at C:\buildslave\unity\build\Runtime\IMGUI\Managed\GUI.cs:1817)

Text alignment issue

This message is appearing in the logs:

Alignment was LowerRight at end of frame.

This is likely happening because the display of options for the old point system were commented out in Page_PrepareCarefully.DrawCost(). The lines resetting the alignment to UpperLeft should not have been commented out.

Unable to use

I've loaded this mod on 1.0 and when I click the button to open Prepare Carefully I get no response.

Version 1.0.1958

Adult backstory is not auto-selected when clicking the backstory name

When clicking the name of the adult backstory, the dialog with the list of backstory options opens as expected, however, the current backstory is not selected by default.

If the user then closes the dialog without selecting a new backstory then the childhood backstory is assigned to the adult backstory slot.

share it

Allow me to translate,And share。

Illnesses are not picked up properly

Before scenarios were introduced, all colonists got cryptosickness, so it didn't need to be added to the list of "Injuries..." in the health section.

Cryptosickness is now randomly assigned to colonists in some scenarios, and other illnesses/conditions are assigned in other scenarios (i.e. malnutrition). The code that builds the list of available injuries filters out illnesses, so they do not appear in the Health section in Prepare Carefully. Code in the InjuryManager class and perhaps elsewhere will need to be updated to support them.

Also, "Injuries" maybe isn't the best label anymore if the list now includes illnesses. Not sure if there's a good catch-all alternative.

Missing deploy.bat

EdBPrepareCarefully.csproj contains a reference to a custom command for the Debug build step as follow:

<CustomCommands>
    <CustomCommands>
      <Command type="AfterBuild" command="deploy.bat ${TargetFile}" workingdir="${ProjectDir}" />
    </CustomCommands>
</CustomCommands>

This prevents Xamarin Studio from building the Debug version.

Exceptions when using left / right arrow on traits

output_log.txt

Errors when a trait is selected that cannot exist with another trait. Found by having character have "pretty" trait selected originally as 3rd trait. 1st trait was "teetotaler" - I selected right arrow a few times to see what else was available, as soon as it hit the "ugly" trait, it threw exceptions.

Repeatable.
Fix would be to somehow check for existing traits in all slots and prevent left/right arrow scrolling from selecting traits that cannot be combined.

Also - thanks for the amazing mod!!!
-MrWashingToad
RimWorld name in game: David "Wildfire" Sewell

"ProgressToNextLevel" Problem

needs "ProgressToNextLevel"

it gives a random "ProgressToNextLevel" everytime i start a new game.

for example.

cooking level : 1
ProgressToNextLevel : 200000/2000

it should be under 2000 points like 254/2000

but it won't.

Prepare Carefully button sometimes doesn't appear

In the Steam version of the game, if both the Steam Workshop version of the mod and a version from the forums are installed, the ModController class gets confused about whether or not the mod should be enabled. This results in the button not being displayed.

Need to fix the ModController.ModEnabled property to support this scenario.

Color Changing For Aliens Not Working

When I try to change the color for any alien race such as Xenn for example, I can't seem to change their fur color at all anymore since the 18 update.

0Harmony.dll

Planning to update this dll? You mod is the only one I use with an old version and my OCD is kicking in.

Error Upon Attempt To Use

Error Log Below

|
|
|
/

Exception filling window for RimWorld.Page_ConfigureStartingPawns: System.InvalidOperationException: Comparison threw an exception. ---> System.MissingMethodException: Method not found: 'Verse.GenderUtility.GetLabel'.
at EdB.PrepareCarefully.EquipmentRecord.get_Label () [0x00000] in :0
at EdB.PrepareCarefully.ProviderEquipmentTypes+<>c.<.ctor>b__2_0 (EdB.PrepareCarefully.EquipmentRecord a, EdB.PrepareCarefully.EquipmentRecord b) [0x00000] in :0
at System.Array.qsort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 low0, Int32 high0, System.Comparison1 comparison) [0x00025] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1773 at System.Array.Sort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 length, System.Comparison1 comparison) [0x00028] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1700
--- End of inner exception stack trace ---
at System.Array.Sort<EdB.PrepareCarefully.EquipmentRecord> (EdB.PrepareCarefully.EquipmentRecord[],int,System.Comparison1<EdB.PrepareCarefully.EquipmentRecord>) <0x000cc> at System.Collections.Generic.List1<EdB.PrepareCarefully.EquipmentRecord>.Sort (System.Comparison`1<EdB.PrepareCarefully.EquipmentRecord>) <0x0003d>
at EdB.PrepareCarefully.ProviderEquipmentTypes..ctor () <IL 0x00082, 0x00151>
at EdB.PrepareCarefully.PanelEquipmentAvailable..ctor () <IL 0x0002f, 0x0009b>
at EdB.PrepareCarefully.TabViewEquipment..ctor () <IL 0x00007, 0x0002f>
at EdB.PrepareCarefully.Page_PrepareCarefully..ctor () <IL 0x0000c, 0x0006b>
at EdB.PrepareCarefully.HarmonyPatches.DoWindowContentsPostfix (UnityEngine.Rect,RimWorld.Page_ConfigureStartingPawns) <IL 0x0007c, 0x0019d>
at (wrapper dynamic-method) RimWorld.Page_ConfigureStartingPawns.DoWindowContents_Patch1 (object,UnityEngine.Rect) <IL 0x000be, 0x0052b>
at Verse.Window/c__AnonStorey0.<>m__0 (int) [0x00223] in C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:202

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.c__AnonStorey0:<>m__0(Int32) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:206)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle) (at C:\buildslave\unity\build\Runtime\IMGUI\Managed\GUI.cs:1817)

Initializing new game with mods Core, 1442734859, 1428784080, 1445442785, 1420979918, 1414907955, 1414697588, 1421075921, 1442749388, 1439674443, 1434784449, 1433870451, 1414302321, 1434137894, 1428628928, 1428255107, 1421806244, 1420241138, 1437612522, 1321849735, EdBPrepareCarefully
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
Verse.Game:InitNewGame_Patch1(Object)
Verse.Root_Play:m__1() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:60)
Verse.LongEventHandler:RunEventFromAnotherThread(Action) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:455)
Verse.LongEventHandler:m__1() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:367)

Loaded file (Scenario) is from version 1.0.1964 rev6, we are running version 1.0.1969 rev1042.
Verse.Log:Warning(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:59)
Verse.ScribeMetaHeaderUtility:LoadGameDataHeader(ScribeHeaderMode, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\SaveLoad\Scribe\ScribeMetaHeaderUtility.cs:86)
Verse.GameDataSaveLoader:TryLoadScenario(String, ScenarioCategory, Scenario&) (at C:\Dev\RimWorld\Assets\Scripts\Verse\SaveLoad\GameDataSaveLoader.cs:75)
RimWorld.ScenarioFiles:RecacheData() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Scenario\ScenarioLister\ScenarioFiles.cs:44)
RimWorld.ScenarioLister:RecacheData() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Scenario\ScenarioLister\ScenarioLister.cs:93)
RimWorld.ScenarioLister:RecacheIfDirty() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Scenario\ScenarioLister\ScenarioLister.cs:84)
RimWorld.c__Iterator1:MoveNext() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Scenario\ScenarioLister\ScenarioLister.cs:35)
System.Linq.Enumerable:FirstOrDefault(IEnumerable1) RimWorld.Page_SelectScenario:EnsureValidSelection() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\Entry\Page_SelectScenario.cs:265) RimWorld.Page_SelectScenario:PreOpen() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\Entry\Page_SelectScenario.cs:38) Verse.WindowStack:Add(Window) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\WindowStack.cs:339) RimWorld.MainMenuDrawer:<DoMainMenuControls>m__1() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\Entry\MainMenuDrawer.cs:133) Verse.ListableOption:DrawOption(Vector2, Single) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\OptionListingUtility.cs:35) Verse.OptionListingUtility:DrawOptionListing(Rect, List1) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\OptionListingUtility.cs:127)
RimWorld.MainMenuDrawer:DoMainMenuControls(Rect, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\Entry\MainMenuDrawer.cs:226)
RimWorld.MainMenuDrawer:MainMenuOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\Entry\MainMenuDrawer.cs:102)
Verse.UIRoot_Entry:DoMainMenu() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Entry\UIRoot_Entry.cs:125)
Verse.UIRoot_Entry:UIRootOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Entry\UIRoot_Entry.cs:66)
Verse.Root:OnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:164)

Exception filling window for RimWorld.Page_ConfigureStartingPawns: System.InvalidOperationException: Comparison threw an exception. ---> System.MissingMethodException: Method not found: 'Verse.GenderUtility.GetLabel'.
at EdB.PrepareCarefully.EquipmentRecord.get_Label () [0x00000] in :0
at EdB.PrepareCarefully.ProviderEquipmentTypes+<>c.<.ctor>b__2_0 (EdB.PrepareCarefully.EquipmentRecord a, EdB.PrepareCarefully.EquipmentRecord b) [0x00000] in :0
at System.Array.qsort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 low0, Int32 high0, System.Comparison1 comparison) [0x00025] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1773 at System.Array.Sort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 length, System.Comparison1 comparison) [0x00028] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1700
--- End of inner exception stack trace ---
at System.Array.Sort<EdB.PrepareCarefully.EquipmentRecord> (EdB.PrepareCarefully.EquipmentRecord[],int,System.Comparison1<EdB.PrepareCarefully.EquipmentRecord>) <0x000cc> at System.Collections.Generic.List1<EdB.PrepareCarefully.EquipmentRecord>.Sort (System.Comparison`1<EdB.PrepareCarefully.EquipmentRecord>) <0x0003d>
at EdB.PrepareCarefully.ProviderEquipmentTypes..ctor () <IL 0x00082, 0x00151>
at EdB.PrepareCarefully.PanelEquipmentAvailable..ctor () <IL 0x0002f, 0x0009b>
at EdB.PrepareCarefully.TabViewEquipment..ctor () <IL 0x00007, 0x0002f>
at EdB.PrepareCarefully.Page_PrepareCarefully..ctor () <IL 0x0000c, 0x0006b>
at EdB.PrepareCarefully.HarmonyPatches.DoWindowContentsPostfix (UnityEngine.Rect,RimWorld.Page_ConfigureStartingPawns) <IL 0x0007c, 0x0019d>
at (wrapper dynamic-method) RimWorld.Page_ConfigureStartingPawns.DoWindowContents_Patch1 (object,UnityEngine.Rect) <IL 0x000be, 0x0052b>
at Verse.Window/c__AnonStorey0.<>m__0 (int) [0x00223] in C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:202

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.c__AnonStorey0:<>m__0(Int32) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:206)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle) (at C:\buildslave\unity\build\Runtime\IMGUI\Managed\GUI.cs:1817)

Error when saving a preset

Hey there,

when I'm trying to save a preset, I'm getting an exception and the preset file is cut off, meaning that the XML tags are not properly closed and it ended in the middle of saving a value like the colonist's apparell.

Exception filling window for EdB.PrepareCarefully.Dialog_LoadPreset: System.Xml.XmlException: unexpected end of file. Current depth is 4 Line 1945, position 21.
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in :0
at Mono.Xml2.XmlTextReader.Read () [0x00000] in :0
at System.Xml.XmlTextReader.Read () [0x00000] in :0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.ReadNode (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.Load (System.Xml.XmlReader xmlReader) [0x00000] in :0
at Verse.ScribeLoader.InitLoading (System.String filePath) [0x00000] in :0
Verse.Log:Error(String)
Verse.c__AnonStorey2C4:<>m__1B1(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Prepare carefully button does not open a window.

When attempting to click on prepare carefully, the game will freeze for a minute and nothing will happen.
A few things I think are worth mentioning:

On world generation, this error is spit out:
Could not find player faction.
Verse.Log:Error(String)
RimWorld.Faction:get_OfPlayer()
RimWorld.Planet.TileFinder:RandomStartingTile()
ThatsAMoon.WorldGenStep_Moons:AddDestroyedMoon()
ThatsAMoon.WorldGenStep_Moons:GenerateFresh(String)
RimWorld.Planet.WorldGenerator:GenerateWorld(Single, String, OverallRainfall, OverallTemperature)
RimWorld.Page_CreateWorldParams:m__0()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:m__1()

Clicking on the buttom will freeze the game, and after a while this error is spit out:
Exception filling window for RimWorld.Page_ConfigureStartingPawns: System.NullReferenceException: Object reference not set to an instance of an object
at EdB.PrepareCarefully.ProviderFactions..ctor () <0x000fe>
at EdB.PrepareCarefully.PrepareCarefully.InitializeProviders () <0x0019f>
at EdB.PrepareCarefully.PrepareCarefully.Initialize () <0x00023>
at EdB.PrepareCarefully.HarmonyPatches.DoWindowContentsPostfix (UnityEngine.Rect,RimWorld.Page_ConfigureStartingPawns) <0x00171>
at (wrapper dynamic-method) RimWorld.Page_ConfigureStartingPawns.DoWindowContents_Patch1 (object,UnityEngine.Rect) <0x0052b>
at Verse.Window/c__AnonStorey0.<>m__0 (int) <0x00735>

Verse.Log:Error(String)
Verse.c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Full log: https://pastebin.com/SvEXnnQ1

I am on Rimworld V18.722, the minimum version that PrepareCarefully will run.

Missing manifest file

EdBPrepareCarefully.csproj references a manifest file (ScenPart_PlayerPawnsArriveMethodCarefully.manifest) which is not present as part of the repository. I'm not sure if it was intended to be included and wasn't or is not necessary to the build.

v0.15.1.1 crash when built from source

Building EdBPrepareCarefully from tag v0.15.1.1 and copying the assemblies into the appropriate folder having RimWorld with Core followed by EdB Prepare Carefully causes a crash on startup. When removing the assemblies and restarting RimWorld the Debug log reports the following:

mod errors

Mod can get stuck in loop when spawning misconfigured items

If an item that is marked as "made from stuff" is added to a scenario with no stuff assigned to it, the mod will fail to add that item during map generation. This error will cause the map generation to get stuck in a while loop due to a logic flaw in GenStep_ScenParts.SpawnColonistsWithEquipment().

Error when saving a character

Hey there,
when I'm saving a character (multiple times by overwriting the existing one) I'm getting this exception:

Called InitSaving() but current mode is Saving
Verse.Log:Error(String)
Verse.ScribeSaver:InitSaving(String, String)
EdB.PrepareCarefully.ColonistSaver:SaveToFile_Patch0(CustomPawn, String)
EdB.PrepareCarefully.ControllerPawns:SaveCharacter(CustomPawn, String)
EdB.PrepareCarefully.<>c__DisplayClass12_0:b__1(String)
EdB.PrepareCarefully.Dialog_SaveColonist:DoSpecialSaveLoadGUI(Rect)
EdB.PrepareCarefully.Dialog_Colonist:DoWindowContents(Rect)
Verse.c__AnonStorey2C4:<>m__1B1(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, GUISkin, Int32, Single, Single, GUIStyle)

The file of the colonist is empty afterwards.

Error log when I Hit the randomize dice for Backstory

I was making a crash landing group, everything was working fine. Didn't have an age up issue (14 to 24). But I was testing the randomize buttons. It works for the avatar, traits, and name, but I got this when I clicked on it for the backstory, does it every time:

Exception` filling window for EdB.PrepareCarefully.Page_PrepareCarefully: System.NullReferenceException: Object reference not set to an instance of an object
  at EdB.PrepareCarefully.ControllerPawns.RandomizeBackstories () [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) EdB.PrepareCarefully.PanelBackstory/RandomizeBackstoriesHandler:invoke_void__this__ ()
  at EdB.PrepareCarefully.PanelBackstory.DrawPanelContent (EdB.PrepareCarefully.State state) [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.PanelBase.Draw (EdB.PrepareCarefully.State state) [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.TabViewPawns.Draw (EdB.PrepareCarefully.State state, Rect rect) [0x00000] in <filename unknown>:0 
  at EdB.PrepareCarefully.Page_PrepareCarefully.DoWindowContents (Rect inRect) [0x00000] in <filename unknown>:0 
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [0x00000] in <filename unknown>:0 
Verse.Log:Error(String)
Verse.<WindowOnGUI>c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Randomising on start.

It worked for some quite fine. Have few saves with preset colonists for now . Then i made a new game with default 3 just to check seed. And after that it started randomising them all the time:). Tryed reinstalling mod/disabling mods/ i dont know only thing left is to delete game and start again i gues :)

Incompatibility with Fluffy's WorkTab

Hello,

So I've been getting errors with my mods and did a TON of testing, and I've found an incompatibility with Fluffy's Work Tab and Prepare Carefully.

After starting a game with only 3 mods, then upon SAVING and Loading the game thereafter, I receive this error log: https://git.io/fA1o1

Pic of the error: https://i.imgur.com/sKzspwF.png

The Mod List:

  • Core
  • HugsLib
  • EdB Prepare Carefully
  • Work Tab

Some info from testing:

  • When I do not choose "prepare carefully" at the start, the errors Do Not happen after saving then loading the game.

  • If I remove WorkTab, but choose prepare carefully, the errors Do Not happen.

  • If I add WorkTab AFTER starting and saving a game with Prepare Carefully, the errors Do Not happen.

The Errors DO happen when I:

Start a new game, choose prepare carefully with 3 colonists, change no settings at all, save game, quit to main menu, load game. Each time I load, the errors happen.

Hopefully this helps!!

Error Upon Clicking Prepare Carefully Button

I can't open Prepare Carefully ingame at the pawn selection screen; this error pops up in console every time I click the button.

I'm running 1.0.1962 with version 4 of the mod, with no other mods activated.

RimWorld 1.0.1962 rev1190
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
RimWorld.VersionControl:LogVersionNumber() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Utility\Version\VersionControl.cs:83)
Verse.Root:CheckGlobalInit() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:82)
Verse.Root:Start() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:38)
Verse.Root_Entry:Start() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Entry.cs:16)

Exception filling window for RimWorld.Page_ConfigureStartingPawns: System.InvalidOperationException: Comparison threw an exception. ---> System.MissingMethodException: Method not found: 'Verse.GenderUtility.GetLabel'.
at EdB.PrepareCarefully.EquipmentRecord.get_Label () [0x00000] in :0
at EdB.PrepareCarefully.EquipmentDatabase+<>c.<get_Animals>b__33_1 (EdB.PrepareCarefully.EquipmentRecord a, EdB.PrepareCarefully.EquipmentRecord b) [0x00000] in :0
at System.Array.qsort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 low0, Int32 high0, System.Comparison1 comparison) [0x00025] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1773 at System.Array.Sort[EquipmentRecord] (EdB.PrepareCarefully.EquipmentRecord[] array, Int32 length, System.Comparison1 comparison) [0x00028] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1700
--- End of inner exception stack trace ---
at System.Array.Sort<EdB.PrepareCarefully.EquipmentRecord> (EdB.PrepareCarefully.EquipmentRecord[],int,System.Comparison1<EdB.PrepareCarefully.EquipmentRecord>) <0x0012c> at System.Collections.Generic.List1<EdB.PrepareCarefully.EquipmentRecord>.Sort (System.Comparison`1<EdB.PrepareCarefully.EquipmentRecord>) <0x00062>
at EdB.PrepareCarefully.EquipmentDatabase.get_Animals () <IL 0x00041, 0x00140>
at EdB.PrepareCarefully.PrepareCarefully.RandomPet (RimWorld.ScenPart_StartingAnimal) <IL 0x00093, 0x0029b>
at EdB.PrepareCarefully.PrepareCarefully.InitializeDefaultEquipment () <IL 0x001b8, 0x00873>
at EdB.PrepareCarefully.PrepareCarefully.Initialize () <IL 0x00029, 0x000ad>
at EdB.PrepareCarefully.HarmonyPatches.DoWindowContentsPostfix (UnityEngine.Rect,RimWorld.Page_ConfigureStartingPawns) <IL 0x0006c, 0x00226>
at (wrapper dynamic-method) RimWorld.Page_ConfigureStartingPawns.DoWindowContents_Patch1 (object,UnityEngine.Rect) <IL 0x000be, 0x00542>
at Verse.Window/c__AnonStorey0.<>m__0 (int) [0x00223] in C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:202

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.c__AnonStorey0:<>m__0(Int32) (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\Window.cs:206)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle) (at C:\buildslave\unity\build\Runtime\IMGUI\Managed\GUI.cs:1817)

Health conditions aren't removed when generating a random character

This applies to A17 Test 4. If you generate a random character in place of an existing one, it won't remove existing health conditions but it will generate new ones. Since I'm trying to generate mostly random characters and slightly adjust them to match the roles I want, this results in massive stacks of health conditions. The colonist probably wouldn't be able to stand the residual pain from all the old gunshots and scars.

Black screen

nothing shows up, just a black screen while opening the mod, using it on rimworld steam

Better error handling for CustomPawn.GetStuffColor

Need to handle null references in the CustomPawn.GetStuffColor() method. It looks like there is some condition where this code:

ThingDef stuffDef = this.selectedStuff[layer];

results in a null pointer.

Unclear what the root cause is, but it was reported to have happened when loading a preset. It could be related to loading a preset that has modded items in it that are no longer available because that mod has been disabled.

Textures are lost when switching languages

After switching languages, mod textures are lost and are not reloaded when clicking the Prepare Carefully button. This results in an exception and an empty page.

This may also happen in some situations after enabling or disabling mods.

Consider using detour for overriding Genstep_ScenParts

Should consider using the detouring technique for overriding Genstep_ScenParts instead of map generation. This would avoid a lot of the compatibility issues that come up with other map generation mods. It may, however, introduce its own issues.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.