Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - mcduff

#1
Unfinished / [WIP] Vanilla Apparel Rework
February 23, 2019, 03:47:14 PM
My first attempt at a mod, looking at expanding the vanilla apparel.

First release (v0.0.1) here:
Github

What I've done so far:


  • Introduced a new layer in between Shell and Middle called Armor
  • Created multiple kinds of armor with pieces:

    • Heavy and Light variants of leather, plate and stuffable marine armor
    • Advanced Marine Armor with better stats and Powered Exo Suit pieces which give bad protection but increase move and work speed
    • Each armor now has separate legs, chest and arm pieces
  • You can now wear parkas and dusters on top of armor
  • t-shirts are underwear and you can wear them under shirts
  • there are new kinds of underwear - basic long underwear to supplement the t-shirt, "temperature regulating underwear" which helps in hot weather but reduces cold tolerance, and an advanced temperature regulating bodysuit which gives great temperature performance in hot and cold

There's a lot more to do on this mod - not least of which is graphics, as there are zero new graphics with this right now so a lot of the pieces look completely wrong.

The aim is to try to make it a little bit more involved to balance things like temperature, workspeed and armor. I've tried to do some balancing around this, but it's very early days, and with extra pieces stacking up their temperature modifiers there are likely to be effects I didn't plan for.

Feel free to have a look and let me know if there are any suggestions. And anyone who feels like they might want to contribute some graphics help feel free to let me know!
#2
Mods / Idea: Blood transfusions
February 19, 2019, 05:34:47 PM
How easy would this be to do?

An operation to "give blood" producing an item called a "blood bag".

A treatment for blood loss that uses up a blood bag and restores 20% of lost blood.
#3
Ideas / Let me not care what my walls are made from
February 04, 2019, 03:19:45 PM
When you build things at a table you can get your pawns to make them out of whatever. Marble, granite, steel, plasteel. Doesn't matter - they'll get what's available.

On the other hand if they're building a wall and run out of granite they won't think "hey, limestone or marble is just as good" and go get some of that.

Yes there are some times when you want your walls to be specific things, but quite often it doesn't matter. In fact, especially towards the beginning, having walls/floors made out of different things would add to the "just threw this colony together" feel.

Is there any way of giving buildings a "use stuff from this list but I don't care what stuff" list, like you can with bills at workbenches?
#4
Mods / Manure: what's the reason it can't be done?
February 04, 2019, 02:29:33 PM
There are lots of soil and fertiliser mods that use various means to fertilise soil, but it seems as if the one thing that would make most sense - all the crap from your muffalos and elephants - isn't possible.

Has anyone ever looked into what might be required to make animals drop manure or dung rather than just "filth"? Maybe hijack the egg system somehow? Idk, I am sure that if it were doable it would have been done already, it's just nigglingly annoying that we can't have manure in the game.
#5
Has anyone else encountered this? I sent some pawns out on a caravan mission and they immediately got soaking wet, came down with hypothermia and frostbite. They were all wrapped up warm and their minimum safe temperature was well below what it was.

Is this behaviour that anyone has noticed in vanilla or should I start unloading mods to see where the bug is?
#6
I clicked on the "world" tab just as a caravan was arriving at an event and got the following message.

Called DrawWorldLayers() but already regenerating. This shouldn't ever happen because LongEventHandler should have stopped us.

Full log below

Loading game from file Ghostly with mods Core, 1438693028, 1414907955, 1420241138, 1421806244, RimFridge, A_Dog_Said_1.0, 1454228967, 1442879524
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow(String) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Map\MapIniter\SavedGameLoaderNow.cs:19)
Verse.Root_Play:<Start>m__0() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:46)
Verse.LongEventHandler:RunEventFromAnotherThread(Action) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:455)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:367)

Called DrawWorldLayers() but already regenerating. This shouldn't ever happen because LongEventHandler should have stopped us.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
RimWorld.Planet.WorldRenderer:DrawWorldLayers() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\Rendering\WorldRenderer.cs:134)
RimWorld.Planet.World:WorldUpdate() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\World.cs:230)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:520)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)
#7
I've just had two events where the time has done a forced slowdown as if there was something happening, but without getting a notification beep, and apparently nothing is actually going on.

Could provide a save if necessary.
#8
For a long time I've been absolutely on board with the idea of not having literally impassable defenses, as too much of a capacity to create an insta-win situation. The more I've been thinking about it recently, though, the less I've been convinced.

In real life if you're fortifying a location you'd have walls with guards on them, or towers. Something so the enemy, if it tried to rush you, would get mowed down. You should have an advantage as a defender.

Back in the day, vs a simpler "send a bunch of pawns to rush you" raid mechanic, this just meant raids could become basically meat grinders with no risk.

However, now they can get past it. Sure, their first raid might get chewed up, but they they'll come back with mortars or sappers. And the bigger your base is, the more difficult and expensive it is to defend against even vaguely smart enemies (such as people who come in more than one group with sappers.)

If you think about it, the "door peek" exploit is basically just trying to replicate embrasures with micro and game mechanics rather than building a wall with a hole in it to poke a gun out of. People are doing this because it works. They won't need the exploit if there's an existing mechanic in the game which does it.

I understand the design decisions behind not having embrasures, and other things like making turrets paper thin and effectively indefensible against swarms of melee pawns, but the thing is that the game has kind of both "nerfed" viable strategies *AND* made it so raiders have valid ounter-strategies.

TL;DR, you can put in embrasures and strong turrets, and it won't be game breaking as long as you make it so that a faction that raids and gets mashed just comes back with mortars, sappers, or even both next time.
#9
Bugs / Bug when trying to change restricted area
July 24, 2018, 02:58:46 PM
Loaded a save from the previous version, get an error every time I change pawn area restrictions.

RimWorld 1.0.1974 rev542
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)

ChangeDresser Harmony Patches:
  Prefix:
    CompTemperatureRuinable.DoTicks - Will return false if within a RimFridge
  Postfix:
    GameComponentUtility.StartedNewGame
    GameComponentUtility.LoadedGame
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
RimFridge.HarmonyPatches:.cctor()
System.Runtime.CompilerServices.RuntimeHelpers:RunClassConstructor(IntPtr)
System.Runtime.CompilerServices.RuntimeHelpers:RunClassConstructor(RuntimeTypeHandle) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Runtime.CompilerServices/RuntimeHelpers.cs:101)
Verse.StaticConstructorOnStartupUtility:CallAll() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\StaticConstructorOnStartup.cs:26)
Verse.PlayDataLoader:<DoPlayLoad>m__2() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Defs\Databases\PlayDataLoader.cs:279)
Verse.LongEventHandler:ExecuteToExecuteWhenFinished() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:489)
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:402)
Verse.LongEventHandler:LongEventsUpdate(Boolean&) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:257)
Verse.Root:Update_Patch1(Object)
Verse.Root_Entry:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Entry.cs:38)

[HugsLib] v5.0.0 initialized MapReroll
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
HugsLib.Utils.ModLogger:Message(String, Object[])
HugsLib.HugsLibController:LoadReloadInitialize()
Verse.LongEventHandler:RunEventFromAnotherThread(Action) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:455)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:367)

Loading game from file West Hadhiera with mods Core, 1417078111, EdBPrepareCarefully, 1438693028, 1414907955, 1420241138, 1421806244, MapReroll, RimFridge, A_Dog_Said_1.0
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow(String) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Map\MapIniter\SavedGameLoaderNow.cs:19)
Verse.Root_Play:<Start>m__0() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:46)
Verse.LongEventHandler:RunEventFromAnotherThread(Action) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:455)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:367)

Loaded file (Map) is from version 1.0.1973 rev1175, we are running version 1.0.1974 rev542.
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.SavedGameLoaderNow:LoadGameFromSaveFileNow(String) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Map\MapIniter\SavedGameLoaderNow.cs:33)
Verse.Root_Play:<Start>m__0() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:46)
Verse.LongEventHandler:RunEventFromAnotherThread(Action) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:455)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:367)

Exception filling window for RimWorld.MainTabWindow_Restrict: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_PlayerSettings.set_AreaRestriction (Verse.Area value) [0x00036] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\PlayerSettings\Pawn_PlayerSettings.cs:106
  at RimWorld.AreaAllowedGUI.DoAreaSelector (Rect rect, Verse.Pawn p, Verse.Area area) [0x00126] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:92
  at RimWorld.AreaAllowedGUI.DoAllowedAreaSelectors (Rect rect, Verse.Pawn p) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:34
  at RimWorld.PawnColumnWorker_AllowedArea.DoCell (Rect rect, Verse.Pawn pawn, RimWorld.PawnTable table) [0x00018] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnColumnWorkers\Misc\PawnColumnWorker_AllowedArea.cs:40
  at RimWorld.PawnTable.PawnTableOnGUI (Vector2 position) [0x002a5] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnTable.cs:162
  at RimWorld.MainTabWindow_PawnTable.DoWindowContents (Rect rect) [0x00028] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_PawnTable.cs:52
  at RimWorld.MainTabWindow_Restrict.DoWindowContents (Rect fillRect) [0x00003] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Restrict.cs:30
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [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.<WindowOnGUI>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 /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)

Word wrap was false at end of frame.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Log:ErrorOnce(String, Int32, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:105)
Verse.Text:StartOfOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Text.cs:220)
Verse.UIRoot:UIRootOnGUI_Patch1(Object)
RimWorld.UIRoot_Play:UIRootOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\UIRoot_Play.cs:33)
Verse.Root:OnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:164)

Alignment was MiddleLeft at end of frame.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Log:ErrorOnce(String, Int32, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:105)
Verse.Text:StartOfOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Text.cs:225)
Verse.UIRoot:UIRootOnGUI_Patch1(Object)
RimWorld.UIRoot_Play:UIRootOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\UIRoot_Play.cs:33)
Verse.Root:OnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:164)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Widgets:EnsureMousePositionStackEmpty() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\Widgets.cs:2176)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:83)

Exception filling window for RimWorld.MainTabWindow_Restrict: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_PlayerSettings.set_AreaRestriction (Verse.Area value) [0x00036] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\PlayerSettings\Pawn_PlayerSettings.cs:106
  at RimWorld.AreaAllowedGUI.DoAreaSelector (Rect rect, Verse.Pawn p, Verse.Area area) [0x00126] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:92
  at RimWorld.AreaAllowedGUI.DoAllowedAreaSelectors (Rect rect, Verse.Pawn p) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:34
  at RimWorld.PawnColumnWorker_AllowedArea.DoCell (Rect rect, Verse.Pawn pawn, RimWorld.PawnTable table) [0x00018] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnColumnWorkers\Misc\PawnColumnWorker_AllowedArea.cs:40
  at RimWorld.PawnTable.PawnTableOnGUI (Vector2 position) [0x002a5] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnTable.cs:162
  at RimWorld.MainTabWindow_PawnTable.DoWindowContents (Rect rect) [0x00028] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_PawnTable.cs:52
  at RimWorld.MainTabWindow_Restrict.DoWindowContents (Rect fillRect) [0x00003] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Restrict.cs:30
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [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.<WindowOnGUI>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 /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Widgets:EnsureMousePositionStackEmpty() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\Widgets.cs:2176)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:83)

Exception filling window for RimWorld.MainTabWindow_Restrict: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_PlayerSettings.set_AreaRestriction (Verse.Area value) [0x00036] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\PlayerSettings\Pawn_PlayerSettings.cs:106
  at RimWorld.AreaAllowedGUI.DoAreaSelector (Rect rect, Verse.Pawn p, Verse.Area area) [0x00126] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:92
  at RimWorld.AreaAllowedGUI.DoAllowedAreaSelectors (Rect rect, Verse.Pawn p) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:34
  at RimWorld.PawnColumnWorker_AllowedArea.DoCell (Rect rect, Verse.Pawn pawn, RimWorld.PawnTable table) [0x00018] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnColumnWorkers\Misc\PawnColumnWorker_AllowedArea.cs:40
  at RimWorld.PawnTable.PawnTableOnGUI (Vector2 position) [0x002a5] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnTable.cs:162
  at RimWorld.MainTabWindow_PawnTable.DoWindowContents (Rect rect) [0x00028] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_PawnTable.cs:52
  at RimWorld.MainTabWindow_Restrict.DoWindowContents (Rect fillRect) [0x00003] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Restrict.cs:30
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [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.<WindowOnGUI>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 /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Widgets:EnsureMousePositionStackEmpty() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\Widgets.cs:2176)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:83)

Exception filling window for RimWorld.MainTabWindow_Restrict: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_PlayerSettings.set_AreaRestriction (Verse.Area value) [0x00036] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\PlayerSettings\Pawn_PlayerSettings.cs:106
  at RimWorld.AreaAllowedGUI.DoAreaSelector (Rect rect, Verse.Pawn p, Verse.Area area) [0x00126] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:92
  at RimWorld.AreaAllowedGUI.DoAllowedAreaSelectors (Rect rect, Verse.Pawn p) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:34
  at RimWorld.PawnColumnWorker_AllowedArea.DoCell (Rect rect, Verse.Pawn pawn, RimWorld.PawnTable table) [0x00018] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnColumnWorkers\Misc\PawnColumnWorker_AllowedArea.cs:40
  at RimWorld.PawnTable.PawnTableOnGUI (Vector2 position) [0x002a5] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnTable.cs:162
  at RimWorld.MainTabWindow_PawnTable.DoWindowContents (Rect rect) [0x00028] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_PawnTable.cs:52
  at RimWorld.MainTabWindow_Restrict.DoWindowContents (Rect fillRect) [0x00003] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Restrict.cs:30
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [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.<WindowOnGUI>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 /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Widgets:EnsureMousePositionStackEmpty() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\Widgets.cs:2176)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:83)

Exception filling window for RimWorld.MainTabWindow_Restrict: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_PlayerSettings.set_AreaRestriction (Verse.Area value) [0x00036] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\PlayerSettings\Pawn_PlayerSettings.cs:106
  at RimWorld.AreaAllowedGUI.DoAreaSelector (Rect rect, Verse.Pawn p, Verse.Area area) [0x00126] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:92
  at RimWorld.AreaAllowedGUI.DoAllowedAreaSelectors (Rect rect, Verse.Pawn p) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:34
  at RimWorld.PawnColumnWorker_AllowedArea.DoCell (Rect rect, Verse.Pawn pawn, RimWorld.PawnTable table) [0x00018] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnColumnWorkers\Misc\PawnColumnWorker_AllowedArea.cs:40
  at RimWorld.PawnTable.PawnTableOnGUI (Vector2 position) [0x002a5] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnTable.cs:162
  at RimWorld.MainTabWindow_PawnTable.DoWindowContents (Rect rect) [0x00028] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_PawnTable.cs:52
  at RimWorld.MainTabWindow_Restrict.DoWindowContents (Rect fillRect) [0x00003] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Restrict.cs:30
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [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.<WindowOnGUI>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 /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Widgets:EnsureMousePositionStackEmpty() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\Widgets.cs:2176)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:83)

Exception filling window for RimWorld.MainTabWindow_Restrict: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_PlayerSettings.set_AreaRestriction (Verse.Area value) [0x00036] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\PlayerSettings\Pawn_PlayerSettings.cs:106
  at RimWorld.AreaAllowedGUI.DoAreaSelector (Rect rect, Verse.Pawn p, Verse.Area area) [0x00126] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:92
  at RimWorld.AreaAllowedGUI.DoAllowedAreaSelectors (Rect rect, Verse.Pawn p) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\AreaAllowedGUI.cs:34
  at RimWorld.PawnColumnWorker_AllowedArea.DoCell (Rect rect, Verse.Pawn pawn, RimWorld.PawnTable table) [0x00018] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnColumnWorkers\Misc\PawnColumnWorker_AllowedArea.cs:40
  at RimWorld.PawnTable.PawnTableOnGUI (Vector2 position) [0x002a5] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\PawnTable\PawnTable.cs:162
  at RimWorld.MainTabWindow_PawnTable.DoWindowContents (Rect rect) [0x00028] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_PawnTable.cs:52
  at RimWorld.MainTabWindow_Restrict.DoWindowContents (Rect fillRect) [0x00003] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Restrict.cs:30
  at Verse.Window+<WindowOnGUI>c__AnonStorey0.<>m__0 (Int32 x) [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.<WindowOnGUI>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 /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Widgets:EnsureMousePositionStackEmpty() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Utility\Widgets.cs:2176)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:83)
#10
Ideas / Granularity/Bills Tab for colonist work.
July 24, 2018, 05:41:42 AM
The new bills tab is excellent and really lets you set it up so your colonists keep themselves in food, weapons and clothing without having to micromanage everything.

However, there are still some frustrations with some of the lack of granularity of priorities for other tasks.

The work tab is a good way of seeing what all your colonists can do at a glance. But, it would be nice to give colonists a "bills tab" of their own.

So you could give everyone a bill "haul food from the fields to the freezer" but only some people "haul everything to everywhere."

Or you could put "clean the hospital and kitchen" at a higher priority than "clean blood off the ground outside."

Smithing, crafting, cooking and tailoring can be mostly sorted with workbench bills, although having some extra control here would be nice too. But hunting, hauling, doctoring, cleaning, mining, constructing etc are all fiddly.

I don't know how exactly to do it, but perhaps one solution would be to replace the number based priority system with an "edit details" button for each pawn.

So, if you just put a tick in the box, the game automatically adds a "do all work of this type" bill at the priority it lives in the list.

If you click "edit details" you can edit, rearrange and add new versions of the bills.

Back on the main grid, clicking to remove the tick in the box would disable all bills of that work type.

Yes, there is the possibility that you could get yourself tied up if you forgot you made a bill restrictive, but you can do that now anyway, especially with workbench bills (for eg, I forgot I'd set one of my cooking bills to be specific to a single pawn until waaaaay far through my latest playthrough.)

I think this would really help with some basic bits of micromanagement like keeping hospitals clean and getting crops in from fields, even if you haven't got the pawns available to be dedicated cleaners and haulers.
#11
Ideas / Flak Armor Expansion
July 23, 2018, 07:15:50 AM
Said this a couple of times in the big 1.0 megathread but I should probably be polite and make it a formal suggestion.

There are various frustrations with the armor system. Pawns can't change quickly into armor, and  in any event it has to be micromanaged. There's no good way of having decent armor and also good temperature regulation.

My suggestion - flak variants of clothes.

Rather than a specific "flak jacket" that always uses steel and cloth, the capacity to make a jacket out of whatever material you like, and fix wood/steel/plasteel/gold/uranium plates to it.

The plates would give a bit of a movement debuff but an armor buff.

Same with pants, dusters, cowboy hats, tuques.

If you ever split up crafting, this would be a good "dual skill" task requiring tailoring/crafting. As it is they're the same skill at the moment anyway so it wouldn't really matter.

I think this would make the flak stuff a *lot* more useful, and also would help with the lore/story stuff of having colonists armor be more ragtag and obviously patched together, rather than literal suits of plate armor/power armor.
#12
Mechanoids are a bit of a weird one. They show up a lot, and early, with massive firepower, and leave behind... a few components and a bit of plasteel.

The risk/reward of mechanoids is a bit unbalanced.

At the same time, I can understand why you wouldn't necessarily want to just give people free miniguns and inferno cannons after their first centipede battle.

What follows is not intended to be an exhaustively balanced system, but a set of ideas which I think would be a good basis for expanding the risk/reward balance.



  • Mechanoid Components

    • Not just another kind of component like the "advanced" version, but rather specific sub-parts of mechanoids that can't be used by themselves but can be repurposed.

    • You wouldn't be able to get it straight away, you'd assume most of the components would be damaged, but by salvaging a bunch of them you'd get enough to open up some interesting mechanoid-based things.

    • The simplest thing here is turrets. It's probably OP to let players rebuild a whole centipede, but it's interesting to see how it would play out to let them basically stick a basic turret AI in a machine made out of a couple of centipede corpses as a minigun or inferno cannon turret.

    • Scythers and Lancers could be similarly repurposed into charge lance turrets, or a new kind of trap that basically melee attacks whatever is in the square next to it, but can't move.

    • You could also see use in a centipede carcass as a "pack animal". Hollow it out, use it as a high capacity, brainless "truck" to shuttle steel back from LRMS sites.

    • Similarly there was a mod that introduced little robots that did hauling and cleaning. This might be something that mechanoid components could be used for.

    • There are other options as well. The key mechanism involved, though, is getting various different components from mechanoid carcasses that then get stuck together into things that are useful, but not the same as having an army of rewired mechanoids to do your bidding.


  • Mechanoid research
    • Make some high reward research branches that require mechanoid components, which are consumed/destroyed in the process. Things like advanced medicine, mechanite research etc.

    • You could also have some branches that go quicker if you're researching with a mechanoid component giving a boost. The obvious ones would be charged shot and bionics.

    • I like the new mechanism of making some things rely on multiple skills, so this could be a "crafting/intelligence" double skill task.

I hope that's fairly clear. The aim of the idea is to add to the benefits of being attacked by swarms of advanced, ancient machines, but in a more interesting and involved way than just having them drop more loot when you beat them.
#13
Mods / [Mod Request] Job specific outfits
July 12, 2018, 05:53:31 AM
Are there any mods that let you set outfits for your pawns to wear depending on what they're doing? So for eg if you have clothes that give buffs to cooking or crafting they'll change into them before doing those jobs?
#14
If you don't include bedrooms in assigned areas, colonists won't go and sleep or get food. This makes setting up areas complicated.

Looking at the docs I thought that colonists were supposed to only pick jobs in the area, not use them for eating and sleeping etc?
#15
Ideas / Hostage ransom/trade
April 20, 2015, 06:09:19 AM
If I have a couple of prisoners from a raid stashed in my prison, it would be nice to be able to call up their faction and say "hey, I'll give you your guys back in exchange for some stuff!"

Maybe this could also open up a prisoner exchange deal where you get captured colonists back?
#16
Ideas / Movies
April 18, 2015, 08:42:56 PM
The TV already apparently shows "movies." Where do they come from?

Well, how about the colonists buy them from traders. You can have "new movies" and "old movies." New movies are pretty rare, get a lot of colonists around to watch them the first time, and give a lot of joy. They are then consumed, leaving an old movie. Old movies can be watched over and again by individuals or groups and aren't consumed, but only give a moderate amount of joy. The TV cycles through old movies on a loop if no new movies are available - the fewer movies are available, the less joy they bring over time.

Possible additional bit of furniture - video cabinet.

Expansion on this idea: buyable Hi-Fi, "new music," "old music". Add beer and coloured lights and you have a party :D
#17
Hi there.

I'm loving this game. I also play quite a bit of Factorio, and while the intent of those games are very different there's a lot of stuff that can be thought of as similar between them.

One thing I'm finding about RW is that there's only one kind of circuit, and you need to leave a full square's gap between cable runs if you're trying to isolate something for switching.

One idea that could be stolen from Factorio is the idea of colour codes giving you independent networks. So you have "red cable" "blue cable" "green cable" and they only connect to similarly coloured cables. This would enable you to have, say, a lighting ring that you can turn off during the day, or a ring to turn coolers off in winter and heaters off in summer.

If the ducting system from RedistHeat ever makes it into the base game, it would be useful for separating hot and cold heating circuits too :D