Rimworld: What The Deuce
Description:In a nutshell, this mod transforms all humanoid pawns into colonically active individuals that have the urge to go potty.
This mod at the moment only adds negative things, though it will cause Raiders to also have the need to do number 2's at the moment there isn't much benefit to it. I felt that once you've got a strong kill box setup, constant food supplies, there isn't much else that could defeat your colony, now there is.
This is my first real attempt at anything substantial in C# and so far it's been a pretty sweet adventure. Really have to give props to Tynan for some awesomely written code.
Current FeaturesBuildings - Currently a long drop and a toilet, now with added graphics!
Jobs - System is based on the food/rest system, the Pawns have various levels of poo-ness and respond as they can.
Thoughts - Various poo related thoughts, as I couldn't edit the UI without a heap of messing about I gave access to the Pawn's "poo level" via thoughts, plus I like to use EdB Interface and would have to have made that incompatible as well.
Soiled Pants - Hacked up a system that, should your Pawn manage to poo themselves, their pants will become soiled and give a negative thought, soiled pants can be taken off or now washed in the washing machine.
Washing Machine - a bill giving machine that can turn your soiled gear back into more comfortable (though not as warm) kit. (Note, warmth of soiled pants is not yet implemented)
Intestines - Connected to the Digestion activity.
Digestion - Determines how fast poo is made and is linked to hunger levels during illness
Diseases - Viral gastroenteritis, giardiasis, cholera, polio, hepatitis A and hepatitis E, all with various incubation times
Soiled Foods - Either by pooing on/near food or via an event, food can be soiled but it's hard to tell which food
Item - For now poo can be collected from toilets and stored as you wish
Change Log 1.3a-Fixed the "Soiled clothing crashes game on load" bug reported by ItchyFlea
-Fixed the "Washing machine NullRef with bills in it" bug reported by ItchyFlea
-Fixed the "Colonists soil themselves in less than 6 hours game time" reported by ItchyFlea
-Changed the way soiled apparel is created and cleaned, should let power armor stay the same color now
-The mod will now dynamically update it's own XML def files, which is the first two fixes above. This enables the mod to accept all modded clothing and update itself as new clothing is encountered, it will however cause errors if a mod is removed later, this mod just needs to be deleted and extracted again to reset the def files.
Change Log 1.3-Added poo as an item that can be hauled
-Added toilet cleaning jobs to get the poo item, this job is automatic, not bill based, works similar to other cleaning jobs
-Started to look into further expansions of the poo resource, various assets/XML are added but not yet functional
-Sorry, no "someone saw me poo" thoughts yet, should be arriving with 1.4 along with other goodies...
Change Log 1.2a-Fixed toilet use issue, properly using the reservation system now
-Cleaned up some of the toilet finding code
-Fixed up a possible issue on creation of soiled food
Change Log 1.2-Added the Digestion activity to assist in calculating how often poo comes
-Changed the way poo fullness is calculated, now linked with food and the new digestion activity, which is linked to the stomach and intestines
-Colonist hunger is now also linked to the Digestion activity, certain diseases lower Digestion efficiency which causes the colonist to get hungry faster
-Added the ability for food stuffs to be contaminated, eating contaminated food has a chance to cause one of the diseases below
-Contaminated food doesn't obviously show you that it's contaminated, a small negative thought occurs to the pawn eating it however
-Contaminated food can contaminate other foods nearby if they're both indoors in the same room
-Added 6 diseases, viral gastroenteritis, giardiasis, cholera, polio, hep A and hep E
Gastro - severity increases rapidly, not fatal, immunity gained in ~3 days
Giardiasis - severity increases slower than gastro, not fatal, no immunity, will pass in 5 days
Cholera - severity increases very rapidly, will kill in 2 days without medical aid, heals on it's own after 4 days
Polio - slow disease, not fatal, immunity gained in ~16 days, affects many parts of the body, sets the stage for lasting paralysis
Hep A and E - both slow diseases, non fatal, immunity gained in ~13 days, liver/blood filtration mostly hit, can cause chronic hepatitis later
-The diseases all have different incubation times and it's impossible to tell if someone has an incubating disease
-Added 7 incidents, large and small gastro and cholera outbreaks, a food contamination event as well as post-polio syndrome and chronic hepatitis
Change Log 1.1-Re-wrote the SoiledApparel class to duplicate stats of the original Apparel, it now also dynamically creates recipes for the washing machine as different soiled items appear, should hopefully work with mods that add gear that cover legs.
-Washing machine - In the production menu, now you can wash your soiled pants/tribal wear/power armor, I've tested with these and it seems to work, though it appears power armor gets a random color on spawn as it's not made of Stuff, unsure how to overwrite it yet.
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/washingmachine.jpg)
-New workgivers/jobdrivers for the washing machine, the DoBill classes really want to have Stuff in the ingredients, all my washed clothes were turning into dearskin, lol
-Split off the ThinkNode_SatisfyNeeds class from my own for easier compatibility
-The Latrine has a texture!
-Negative thoughts for wearing soiled clothes is now working more or less as intended
Future PlansEvents - Only a couple of ideas so far, but would likely be related to the toilets and diseases
Smell - If it's even possible, might see if the stank from your toilets can affect mood and spread indoors, even ward off invaders
Thoughts - More of them, mostly relating to using the toilet, but possibly connected to seeing/smell poo
Item - An actual poo item to be used in processing at the packer
Buildings:
- Fudge Packer, to compress the poo - Partial XML done, graphic.. done, no real use as yet so not included
- Septic tank, where poo naturally goes - not touched
- Biowaste power/heating, put that packed poo to good use - not touched
- Poo tubes, to transport the poo - some coding done, deciding to use a general PowerNet feature like electricity does, or a more flow based system.
Compatibility IssuesThis mod uses a subclass of Verse.Pawn and so it is incompatible with any mod that also does the same, ie Enhanced Defense: Phoenix Edition's Personal Shield module, though as I do enjoy that mod I just might see if a compatibility patch can be whipped up.
I haven't tried them together yet though I suspect when creating one of the shielded pawns you will remove the pawn's poo capabilities, or it may explode.
Other Known IssuesPower armor gets a random color after being soiled and after being washed.
Recruiting the pawn doing the washing or changing their job will instantly cause clean clothes to pop out, bypassing the washing time.
Any other issues or incompatibilities please let me know.
ScreenshotsMore screenshots are at Moddb (http://www.moddb.com/mods/rimworld-what-the-deuce)
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/cleanuptime.jpg)
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/dropitlikeitshot.jpg)
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/clear_colon.jpg)
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/poopypantsoff.jpg)
Author/Mod Teamleondrel
DownloadRimworld: What The Deuce 1.3a (http://www.moddb.com/mods/rimworld-what-the-deuce/downloads/rimworld-what-the-deuce-13a)
Mod is small so it'll always be attached to this post.
How to install:- Unzip the contents and place them in your RimWorld/Mods folder.
- Activate the mod in the mod menu in the game.
[attachment deleted due to age]
This is a "shitty" mod
I have to try this out at some point, it made me laugh :P
Your moddb download is nonfunctional at the moment
also I would be very interested in an about section that explains why you spent time with c# for this.
And Leondrel makes a "dirty" return with a "dripping" overtake. Its quite jaw "dropping".
I honestly can say that while this mod doesn't deserve the first place, it does serve as a remarkable number two
Sounds interesting actually. With all the survival changes Tynan has made I'm surprised that he nor anyone else didn't create a shit/pee mechanic. Oh well. Anywho, some suggestions:
Occasional events similar to how diseases work (where there is a % chance of it occurring each day) such as:
-> Diarrhea (the runs)
-> Constipation (all clogged up)
-> Silent, but Deadly farts
One-use items that could be consumed:
-> Laxatives (to help cure Constipation); alternatively gives someone the diarrhea that doesn't have it.
-> One-Use Adult Diapers to negate the pooped in pants effect if wearing one; no effect on already pooped in pants.
this mod with the pants free colony mod sounds interesting
Quote from: palandus on January 01, 2015, 11:03:09 PM
-> Diarrhea (the runs)
-> Constipation (all clogged up)
-> Silent, but Deadly farts
(http://i.imgur.com/ntJgwcJ.png)
please prioritize on finding a way to clean the pants otherwise I can't use this mod.
Brings a whole new meaning to the name "Rim World"
Okay, so C# is nothing at all like Powershell...
Just realised that making something "equal" something means they're still the same thing, not a new object with the same properties... hhnngggg
First poopy accident turns all pants into soiled pants... HA!
It appears to be just in code, haven't play tested enough to see the effects, but it's definitely not good.
Next update will fix that, and hopefully a washing machine or something to clean pants if they're messed.
If your happy and you know it sh*t your pants.
If your happy and you know it drop the pants on the floor cause they are full of sh*t If you're smart and you know it don't sh*t the pants
If you're smart and you know it take the pants off fiiiiiiiiirst!
Just updated the mod, fixed the issue with all pants becoming soiled as well as added a washing machine bill giver that can turn soiled gear back into it's original form, ready to be worn with pride.
Also the latrine has an awesome graphic courtesy of my Paint.NET skills
I just want to say when I heard about the crapping all the pants glitch I immediately thought of the line from the MST3K of Phantom Planet, "I just filled my pants, in fact, I think I just filled your pants too."
Also this mod needs the Poopie Suit: https://www.youtube.com/watch?v=tWKZ11toaXY
yay you added in cleaning but does it work with modded pants as well?
Yes it appears so, below are the soiled shots, the washing machine turns them back to normal after.
Also found an interesting bug, if you start the washing, then recruit the washer, clean pants come out instantly, skipping the usual time, probably the same happens if you change to a priority job, on the todo list.
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/soiledcybernetic.jpg)
(http://media.moddb.com/cache/images/mods/1/27/26433/thumb_620x2000/cyberwashing.jpg)
Change Log 1.2
-Added the Digestion activity to assist in calculating how often poo comes
-Changed the way poo fullness is calculated, now linked with food and the new digestion activity, which is linked to the stomach and intestines
-Colonist hunger is now also linked to the Digestion activity, certain diseases lower Digestion efficiency which causes the colonist to get hungry faster
-Added the ability for food stuffs to be contaminated, eating contaminated food has a chance to cause one of the diseases below
-Contaminated food doesn't obviously show you that it's contaminated, a small negative thought occurs to the pawn eating it however
-Contaminated food can contaminate other foods nearby if they're both indoors in the same room
-Added 6 diseases, viral gastroenteritis, giardiasis, cholera, polio, hep A and hep E
Gastro - severity increases rapidly, not fatal, immunity gained in ~3 days
Giardiasis - severity increases slower than gastro, not fatal, no immunity, will pass in 5 days
Cholera - severity increases very rapidly, will kill in 2 days without medical aid, heals on it's own after 4 days
Polio - slow disease, not fatal, immunity gained in ~16 days, affects many parts of the body, sets the stage for lasting paralysis
Hep A and E - both slow diseases, non fatal, immunity gained in ~13 days, liver/blood filtration mostly hit, can cause chronic hepatitis later
-The diseases all have different incubation times and it's impossible to tell if someone has an incubating disease
-Added 7 incidents, large and small gastro and cholera outbreaks, a food contamination event as well as post-polio syndrome and chronic hepatitis
Got a minor bug report:
When someone is heading off the to toilet to do their business, if you order them to do someone else before they get there, the toilet remains set as 'In Use' and stays that way until the save is reloaded.
Interesting mod and now my colonists seem a little more human now that they have to do human things once every day or so.
EDIT:
Is it possible to empty a latrine? It's full and is starting to create a mess in my bathroom.
Just fixed up the issue with the toilets being in use, I didn't understand how the reservation system worked in the base game and made a poor substitute, I know how it works now (kinda) so it appears to be without issue.
As for emptying toilets, no, not yet, it's what I want to put in for 1.3
Deconstructing the toilet is unfortunately the easiest way to stop that poop flowing.
1.3 should be done this week at some point.
not sure if this is possible, but perhaps give the colonists a positive thought for using the only toilet in an enclosed room. sort of like how colonists like to sleep in a private room, I imagine they would also like to do their business in a private room :p
Also, i get this error in the console (attached) in my fresh colony. I also use a lot of mods though, so perhaps that is the cause if you can't reproduce it on your end.
[attachment deleted due to age]
Yes it is possible and is along the lines of something I was wanting to try and add, as well as negative thoughts for being seen by others while using the toilet.
As for that error I would guess that it's because the body part I added, Intestines, has been overwritten by another mod that changes the body.
I'll have to have a look into a solution, I think that RecipeNurse mod can fix it.
Oh dear god all my toilets are full to the brim and theres crap everywhere what do i do
Quote from: Baguette on January 17, 2015, 02:24:23 PM
Oh dear god all my toilets are full to the brim and theres crap everywhere what do i do
He said something like 4 or 5 posts before that actually, there's no solution other than deconstruct the toilet and rebuild it.
Yeah sorry about that, haven't had much chance to update this during the week. And was being a boss out on a boat today with my pashmina afgan.
Been working on getting poo cleaning happening, as well as creating the poo resource that will be used for methane power/heat generators which are in various stages of progress. Just picture prisoners powering your base with all their shit....
Just been having some trouble getting the toilet cleaning 'Toil' to fail when there's no viable storage to place the poo in. At the moment it errors like a nub telling me that the storage location is invalid, which I damn well know already...
The "art" and other XML stuff is in already, it's just this Toil issue that's preventing release, should hopefully figure out what I'm doing wrong in the next couple of hours.
Updated to 1.3
We now have a poo item that can be collected from toilets! Excellent!
Pawns will now want to clean that loo after the toilets reach 50% capacity, this cleaning activity creates a poo resource, which currently can't be used, but it will be useful in 1.4
Still working on the poo piping system, once that's done it should be no problem to add in the various power/heat buildings. I'm thinking of a poo-source to destination type system, toilets are always sources and gas heaters are always destinations, so vaguely emulating pipes full of poo that head off to the de-pooing facility, different from the PowerNet system that is used for power distribution.
I have some time off next weekend so I will be having a good long look at all this poo.
As always, let me know of any issues, I'm just one amazing man and can't cover all variables.
Make a Polished Turd Ball Art recipe :D We know the Mythbusters had done it, so it's doable!
You asked to be advised of issues, so I've got some bug reports for you:
Bug 1: Soiled clothing crashes game on load.
Description: If a colonist's clothing gets soiled, save and quit the game, then reload the saved game, the game crashes.
Repro steps:
1) Let a colonist soil themselves.
2) Save the game.
3) Exit RimWorld completely.
4) Start RimWorld and load the save.
From output_log:
InvalidOperationException: SaveableFromNode exception: System.InvalidOperationException: SaveableFromNode exception: System.InvalidOperationException: SaveableFromNode exception: System.NullReferenceException: Object reference not set to an instance of an object
at Verse.Thing.ExposeData () [0x00000] in <filename unknown>:0
at Verse.ThingWithComponents.ExposeData () [0x00000] in <filename unknown>:0
at Verse.ScribeExtractor.SaveableFromNode[Apparel] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<li Class="Everyone_Poops.SoiledApparel"><def>Soiled_Apparel_Pants</def><id>Soiled_Apparel_Pants35988</id><pos>(-1000, -1000, -1000)</pos><health>100</health><stuff>Synthread</stuff></li>
at Verse.ScribeExtractor.SaveableFromNode[Apparel] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
at Verse.Scribe_Collections.LookList[Apparel] (System.Collections.Generic.List`1& list, System.String listLabel, LookMode lookMode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
at Verse.Scribe_Collections.LookList[Apparel] (System.Collections.Generic.List`1& list, System.String listLabel, LookMode lookMode, System.Object singleCtorArg) [0x00000] in <filename unknown>:0
at RimWorld.Pawn_ApparelTracker.ExposeData () [0x00000] in <filename unknown>:0
at Verse.ScribeExtractor.SaveableFromNode[Pawn_ApparelTracker] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<apparel><wornApparel><li Class="Everyone_Poops.SoiledApparel"><def>Soiled_Apparel_Pants</def><id>Soiled_Apparel_Pants35988</id><pos>(-1000, -1000, -1000)</pos><health>100</health><stuff>Synthread</stuff></li><li Class="Apparel"><def>Apparel_BasicShirt</def><id>Apparel_BasicShirt35856</id><pos>(-1000, -1000, -1000)</pos><health>100</health><stuff>Synthread</stuff></li><li Class="Everyone_Poops.SoiledApparel"><def>Soiled_Apparel_PowerArmor</def><id>Soiled_Apparel_PowerArmor36166</id><pos>(-1000, -1000, -1000)</pos><health>100</health><color>RGBA(0.439, 0.332, 0.332, 1.000)</color><colorActive>True</colorActive></li></wornApparel></apparel>
at Verse.ScribeExtractor.SaveableFromNode[Pawn_ApparelTracker] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
at Verse.Scribe_Deep.LookDeep[Pawn_ApparelTracker] (RimWorld.Pawn_ApparelTracker& target, System.String label, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
at Verse.Scribe_Deep.LookDeep[Pawn_ApparelTracker] (RimWorld.Pawn_ApparelTracker& target, System.String label, System.Object singleCtorArg) [0x00000] in <filename unknown>:0
at Verse.Pawn.ExposeData () [0x00000] in <filename unknown>:0
at Everyone_Poops.PooPawn.ExposeData () [0x00000] in <filename unknown>:0
at Verse.ScribeExtractor.SaveableFromNode[Thing] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<thing Class="Everyone_Poops.PooPawn"><def>Human</def><id>Human35854</id><pos>(171, 0, 77)</pos><rot>2</rot><faction>Colony2008059589</faction><kindDef>Colonist</kindDef><jailerFaction>null</jailerFaction><story><name.first>Alexander</name.first><name.last>Wilshire</name.last><name.nick>Crunchy</name.nick><childhood>Scout-1463904967</childhood><adulthood>MidworldChef-104605339</adulthood><skinColor>RGBA(0.949, 0.929, 0.878, 1.000)</skinColor><hairColor>RGBA(0.310, 0.280, 0.260, 1.000)</hairColor><crownType>Narrow</crownType><headGraphicPath>Things/Pawn/Humanoid/Heads/Male/Male_Narrow_Pointy</headGraphicPath><hairDef>Wavy</hairDef><traits><allTraits><li Class="Trait"><def>Nerves</def><degree>-1</degree></li><li Class="Trait"><def>PsychicSensitivity</def><degree>-2</degree></li></allTraits></traits></story><apparel><wornApparel><li Class="Everyone_Poops.SoiledApparel"><def>Soiled_Apparel_Pants</def><id>Soiled_Apparel_Pants35988</id><pos>(-1000, -1000, -1000)</pos><health>100</health><stuff>Synthread</stuff></li><li Class="Apparel"><def>Apparel_BasicShirt</def><id>Apparel_BasicShirt35856</id><pos>(-1000, -1000, -1000)</pos><health>100</health><stuff>Synthread</stuff></li><li Class="Everyone_Poops.SoiledApparel"><def>Soiled_Apparel_PowerArmor</def><id>Soiled_Apparel_PowerArmor36166</id><pos>(-1000, -1000, -1000)</pos><health>100</health><color>RGBA(0.439, 0.332, 0.332, 1.000)</color><colorActive>True</colorActive></li></wornApparel></apparel><equipment><primary IsNull="True" /></equipment><mind><MindState><lastJobTag>Idle</lastJobTag><duty IsNull="True" /><enemyTarget>null</enemyTarget></MindState></mind><playerController><drafter><autoUndrafter><lastNonWaitingTick>21200</lastNonWaitingTick></autoUndrafter></drafter></playerController><jobs><curJob><def>Wait</def><targetC>(0, 0, 0)</targetC><targetQueueA IsNull="True" /><targetQueueB IsNull="True" /><placedTargets IsNull="True" /><numToBring IsNull="True" /><expiryTime>21402</expiryTime><bill>null</bill><commTarget>null</commTarget><eqToUse>null</eqToUse></curJob><curJobDriver Class="JobDriver_Wait"><curToilIndex>0</curToilIndex><ticksLeftThisToil>-7</ticksLeftThisToil><curToilCompleteMode>Never</curToilCompleteMode></curJobDriver></jobs><ageTracker><age>26</age><dateOfBirthDay>9</dateOfBirthDay><dateOfBirthMonth>Jul</dateOfBirthMonth></ageTracker><healthTracker><pawnHealth>25</pawnHealth><bodyModel><healthDiffs /><diseaseImmunity /></bodyModel><operationsBillStack><bills /></operationsBillStack></healthTracker><pather><moving>False</moving><nextCell>(171, 0, 77)</nextCell><totalMoveDuration>30</totalMoveDuration><pathMode>OnCell</pathMode></pather><inventory><container><maxStacks>99999</maxStacks><contents><li Class="ThingWithComponents"><def>DoorKey</def><id>DoorKey35857</id><pos>(-1000, -1000, -1000)</pos><health>30</health></li></contents></container></inventory><filth><carriedFilth><li Class="Filth"><def>FilthDirt</def><id>FilthDirt36266</id><pos>(-1000, -1000, -1000)</pos><thickness>1</thickness><sources /></li></carriedFilth></filth><food><pieceFood><curLevel>41.63175</curLevel></pieceFood></food><rest><pieceRest><curLevel>55.04523</curLevel></pieceRest></rest><carryHands><container><maxStacks>1</maxStacks><contents /></container></carryHands><psychology><thoughts><thoughts><li Class="Thought_Observation"><def>ObservedLayingCorpse</def><age>2100</age><targetHash>5403</targetHash></li><li Class="Thought"><def>SocialTalk</def><age>8250</age></li><li Class="Thought"><def>SocialTalk</def><age>7050</age><instancePowerFactor>0.4</instancePowerFactor></li><li Class="Thought"><def>PoodPants</def><age>2250</age></li><li Class="Thought"><def>PoodPantsCont</def><age>450</age></li><li Class="Thought"><def>PoodPantsCont</def><age>150</age></li><li Class="Thought"><def>PoodPantsCont</def><age>1200</age></li><li Class="Thought"><def>PoodPantsCont</def><age>900</age></li><li Class="Thought"><def>PoodPantsCont</def><age>600</age></li><li Class="Thought"><def>PoodPants</def><age>5250</age></li><li Class="Thought"><def>PoodPants</def><age>3750</age></li><li Class="Thought"><def>EnvironmentDark</def><age>0</age></li><li Class="Thought"><def>Poo</def><age>0</age></li></thoughts></thoughts><mood><curLevel>27.95884</curLevel></mood><environment><curLevel>47.53286</curLevel></environment><openness><curLevel>85</curLevel></openness><recentMemory><lastLightTick>16978</lastLightTick><lastOutdoorTick>21178</lastOutdoorTick></recentMemory></psychology><prisoner IsNull="True" /><ownership><ownedBed>null</ownedBed></ownership><talker><lastTalkTime>21061</lastTalkTime></talker><skills><skills><li Class="SkillRecord"><def>Construction</def><level>4</level><xpSinceLastLevel>2817.982</xpSinceLastLevel></li><li Class="SkillRecord"><def>Growing</def><level>3</level><xpSinceLastLevel>481.2798</xpSinceLastLevel><passion>Minor</passion></li><li Class="SkillRecord"><def>Research</def><level>3</level></li><li Class="SkillRecord"><def>Mining</def><level>3</level><xpSinceLastLevel>3130.728</xpSinceLastLevel><passion>Minor</passion></li><li Class="SkillRecord"><def>Shooting</def><level>6</level><xpSinceLastLevel>4023.283</xpSinceLastLevel><passion>Minor</passion></li><li Class="SkillRecord"><def>Melee</def><level>3</level><xpSinceLastLevel>1772.935</xpSinceLastLevel></li><li Class="SkillRecord"><def>Social</def><level>5</level><xpSinceLastLevel>2483.462</xpSinceLastLevel></li><li Class="SkillRecord"><def>Cooking</def><level>9</level><xpSinceLastLevel>1545.807</xpSinceLastLevel><passion>Minor</passion></li><li Class="SkillRecord"><def>Medicine</def><level>3</level><xpSinceLastLevel>1094.354</xpSinceLastLevel></li><li Class="SkillRecord"><def>Artistic</def><level>3</level></li><li Class="SkillRecord"><def>Crafting</def><level>5</level><xpSinceLastLevel>4719.216</xpSinceLastLevel></li></skills></skills><workSettings><workPriorities><keys><li>Cooking</li><li>Crafting</li><li>Warden</li><li>Hunting</li><li>Repair</li><li>Construction</li><li>Patient</li><li>Firefighter</li><li>Research</li><li>Art</li><li>Cleaning</li><li>Hauling</li><li>PlantCutting</li></keys><values><li>4</li><li>4</li><li>4</li><li>4</li><li>4</li><li>4</li><li>4</li><li>4</li><li>0</li><li>0</li><li>0</li><li>0</li><li>0</li></values></workPriorities></workSettings><diseaseTracker><diseaseIncubation>-1</diseaseIncubation><diseaseIncubating /></diseaseTracker><poo><insidePoo><curLevel>37.42027</curLevel><ticksToNextPooDrop>1500</ticksToNextPooDrop></insidePoo></poo></thing>
at Verse.ScribeExtractor.SaveableFromNode[Thing] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
at Verse.Scribe_Collections.LookList[Thing] (System.Collections.Generic.List`1& list, System.String listLabel, LookMode lookMode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
at Verse.Scribe_Collections.LookList[Thing] (System.Collections.Generic.List`1& list, System.String listLabel, LookMode lookMode, System.Object singleCtorArg) [0x00000] in <filename unknown>:0
at Verse.MapIniter_LoadFromFile.InitMapFromFile (System.String mapFileName) [0x00000] in <filename unknown>:0
at VerseBase.RootMap.Start () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
Platform assembly: C:\Games\RimWorld\RimWorld Alpha 8f\RimWorld671Win_Data\Managed\Boo.Lang.dll (this message is harmless)
NullReferenceException: Object reference not set to an instance of an object
at Verse.MapDrawer.MapMeshDrawerUpdate_First () [0x00000] in <filename unknown>:0
at Verse.Map.MapUpdate () [0x00000] in <filename unknown>:0
at VerseBase.RootMap.Update () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException: Object reference not set to an instance of an object
at Verse.ThingOverlays.ThingOverlaysOnGUI () [0x00000] in <filename unknown>:0
at RimWorld.UIRoot_Map.UIRootOnGUI () [0x00000] in <filename unknown>:0
at VerseBase.Root.OnGUI () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException: Object reference not set to an instance of an object
at Verse.ThingOverlays.ThingOverlaysOnGUI () [0x00000] in <filename unknown>:0
at RimWorld.UIRoot_Map.UIRootOnGUI () [0x00000] in <filename unknown>:0
at VerseBase.Root.OnGUI () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException: Object reference not set to an instance of an object
at Verse.MapDrawer.MapMeshDrawerUpdate_First () [0x00000] in <filename unknown>:0
at Verse.Map.MapUpdate () [0x00000] in <filename unknown>:0
at VerseBase.RootMap.Update () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException: Object reference not set to an instance of an object
at Verse.ThingOverlays.ThingOverlaysOnGUI () [0x00000] in <filename unknown>:0
at RimWorld.UIRoot_Map.UIRootOnGUI () [0x00000] in <filename unknown>:0
at VerseBase.Root.OnGUI () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException: Object reference not set to an instance of an object
at Verse.ThingOverlays.ThingOverlaysOnGUI () [0x00000] in <filename unknown>:0
at RimWorld.UIRoot_Map.UIRootOnGUI () [0x00000] in <filename unknown>:0
at VerseBase.Root.OnGUI () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException: Object reference not set to an instance of an object
at Verse.MapDrawer.MapMeshDrawerUpdate_First () [0x00000] in <filename unknown>:0
at Verse.Map.MapUpdate () [0x00000] in <filename unknown>:0
at VerseBase.RootMap.Update () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
Bug 2: Washing machine NullRef with bills in it.
Description: The game will throw nullref's when you open the bills tab on a washing machine after save, quit, reload.
Repro steps:
1) Build a washing machine.
2) Give it a clean soiled clothing bill.
3) Save the game.
4) Quit the game.
5) Open game, reload save.
6) Select washing machine and open bills tab.
From output_log:
Could not load reference to Verse.RecipeDef named Clean_Soiled_Apparel_Pants
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
Could not load reference to Verse.ThingDef named Soiled_Apparel_Pants
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
Platform assembly: C:\Games\RimWorld\RimWorld Alpha 8f\RimWorld671Win_Data\Managed\Boo.Lang.dll (this message is harmless)
Exception doing inspect pane: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.Bill.get_Label () [0x00000] in <filename unknown>:0
at RimWorld.Bill.get_LabelCap () [0x00000] in <filename unknown>:0
at RimWorld.Bill.DrawInterface (Rect rect) [0x00000] in <filename unknown>:0
at RimWorld.BillStack.DrawListing (Rect rect, System.Func`1 recipeOptionsMaker, UnityEngine.Vector2& scrollPosition, System.Single& viewHeight) [0x00000] in <filename unknown>:0
at RimWorld.ITab_Bills.FillTab () [0x00000] in <filename unknown>:0
at Verse.ITab.DoTabGui () [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.DoTabs (IEnumerable`1 tabs) [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.InspectPaneOnGUI () [0x00000] in <filename unknown>:0
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
Exception doing inspect pane: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.Bill.get_Label () [0x00000] in <filename unknown>:0
at RimWorld.Bill.get_LabelCap () [0x00000] in <filename unknown>:0
at RimWorld.Bill.DrawInterface (Rect rect) [0x00000] in <filename unknown>:0
at RimWorld.BillStack.DrawListing (Rect rect, System.Func`1 recipeOptionsMaker, UnityEngine.Vector2& scrollPosition, System.Single& viewHeight) [0x00000] in <filename unknown>:0
at RimWorld.ITab_Bills.FillTab () [0x00000] in <filename unknown>:0
at Verse.ITab.DoTabGui () [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.DoTabs (IEnumerable`1 tabs) [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.InspectPaneOnGUI () [0x00000] in <filename unknown>:0
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
(Filename: Line: 398)
Exception doing inspect pane: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.Bill.get_Label () [0x00000] in <filename unknown>:0
at RimWorld.Bill.get_LabelCap () [0x00000] in <filename unknown>:0
at RimWorld.Bill.DrawInterface (Rect rect) [0x00000] in <filename unknown>:0
at RimWorld.BillStack.DrawListing (Rect rect, System.Func`1 recipeOptionsMaker, UnityEngine.Vector2& scrollPosition, System.Single& viewHeight) [0x00000] in <filename unknown>:0
at RimWorld.ITab_Bills.FillTab () [0x00000] in <filename unknown>:0
at Verse.ITab.DoTabGui () [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.DoTabs (IEnumerable`1 tabs) [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.InspectPaneOnGUI () [0x00000] in <filename unknown>:0
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
(Filename: Line: 398)
Exception doing inspect pane: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.Bill.get_Label () [0x00000] in <filename unknown>:0
at RimWorld.Bill.get_LabelCap () [0x00000] in <filename unknown>:0
at RimWorld.Bill.DrawInterface (Rect rect) [0x00000] in <filename unknown>:0
at RimWorld.BillStack.DrawListing (Rect rect, System.Func`1 recipeOptionsMaker, UnityEngine.Vector2& scrollPosition, System.Single& viewHeight) [0x00000] in <filename unknown>:0
at RimWorld.ITab_Bills.FillTab () [0x00000] in <filename unknown>:0
at Verse.ITab.DoTabGui () [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.DoTabs (IEnumerable`1 tabs) [0x00000] in <filename unknown>:0
at RimWorld.InspectPane.InspectPaneOnGUI () [0x00000] in <filename unknown>:0
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
(Filename: Line: 398)
Bug 3: Colonists soil themselves in less than 6 hours game time. (About 30 seconds play time when playing at 3x speed)
Description: See above.
Repro steps:
1) Start a new colony.
2) Open colonist thought tab and run game at 3x speed.
First 2 bugs I was hoping didn't occur, but I believe there is a way to fix it.
3rd seems I must have left a switch on that speeds up poo time for debugging.
All 3 should be sorted shortly.
Yeah, first time I played this mod and I had the extra fast soil bug to. My guys go to toilet every 10 sec in game in X3 speed o-O and 100% soil themself every time they go to sleep.
According to the internet its normal to poop once a day at least
i rarely poop. Should i be worried?
Baguette, I poop like 3 times a week, as long as you're not pushing super hard I reckon it's ok ;)
I might see if there's a way to get the guys to wake up if they're sleeping to poo, might be a bit awkward (coding wise), haven't really looked into it but I've noticed that if pawns are sleepy, they REALLY want to sleep.
If I can't force them to wake up I think I can prevent them pooping themselves during sleep.
I think this mod is hilarious. Personally use it for a couple games. :P
Alrighty, released version 1.3a, fixed the bugs that ItchyFlea reported and changed a couple of things.
If I get a good stretch of time I should be able to release 1.4 over the weekend.
Still sorting out the poo piping system at the moment. I'm looking at doing it based on flow, so it'll flow from toilets and down pipes until the destination is reached, it will also evenly distribute itself at junctions along the way so piping design is somewhat important.
are you going to do a compatibility patch for ed personal shields?
Got another bug to report:
Bug: NullRef when washing power armour.
Description: The game shits itself (pun intended) when washing soiled power armour.
Other info: This also locks the affected pawn. My colonist hart is stuck at the washing machine, and attempting to force her to do another task fails. Even destroying the washing machine and the soiled power armour with dev tools failed to fix the problem.
Relevant output_log info:
Exception ticking Hart: System.NullReferenceException: Object reference not set to an instance of an object
at Verse.ThingMaker.MakeThing (Verse.ThingDef def, Verse.ThingDef stuff) [0x00000] in <filename unknown>:0
at Everyone_Poops.JobDriver_DoBillWash+<>c__DisplayClass10.<DoWashingWork>b__e () [0x00000] in <filename unknown>:0
at Verse.AI.Toil.Cleanup () [0x00000] in <filename unknown>:0
at Verse.AI.JobDriver.Cleanup (JobCondition condition) [0x00000] in <filename unknown>:0
at Verse.AI.Pawn_JobTracker.EndCurrentJob (JobCondition condition) [0x00000] in <filename unknown>:0
at Verse.AI.JobDriver.EndJobWith (JobCondition condition) [0x00000] in <filename unknown>:0
at Verse.AI.JobDriver.DriverTick () [0x00000] in <filename unknown>:0
at Verse.AI.Pawn_JobTracker.JobTrackerTick () [0x00000] in <filename unknown>:0
at Verse.Pawn.Tick () [0x00000] in <filename unknown>:0
at Everyone_Poops.PooPawn.Tick () [0x00000] in <filename unknown>:0
at Verse.TickList.SingleTick () [0x00000] in <filename unknown>:0
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
Failed to find Verse.ThingDef named . There are 765 defs loaded.
(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
ItchyFlea - That's fixed now =D. It seems to appear if the power armor wasn't soiled properly, possibly loaded from a save where it wasn't create the same way internally, it was missing a reference inside the SoiledApparel class, changed the way I was doing that so it doesn't rely on that reference anymore. Just tried spawning a bunch of random soiled power armors and no exceptions this time around.
I've managed to get the poo piping mostly working, though it seems a bit harder to get the pipes functioning similar to power conduits with their connectivity to buildings. Right now the pipes don't connect to the building. Pretty sure if I walk away and come back I'll have thought of a way around it, I'm probably just overlooking something silly. Dream in coooooode.
I've also got poo silos more or less working the way I want, they can be set to Store or Flow modes, Store mode they'll take up any poo from their pipe and hold it in internal storage, flow they will only take poo out of the pipe if there's too much in the pipe, then when there's less poo in the pipe they'll let it flow back out.
There's a big silo that holds a lot but doesn't let you take the Fresh Poo items out, and a smaller one will generate those items as the poo comes into their storage, it's a 1x1 building and can hold 75 Fresh Poo items on top and another 150 "poo fluids" (75 Fresh Poo) inside. Basically works as a storage container for the Fresh Poo. The big silo is 2x2 and holds 500 of the pipe-able goodies.
The pipes and silos are unlocked via research so there'll still be toilet cleaning jobs until that's researched.
Now I want to work on the poo fueled heating and power generators.... soon I'll be able to have all my prisoners powering my base...
As for the compatibility patch I'll have to talk to Jaxxa and see if they're fine with it. I'll have to check the new version of ED too, if anything has changed in the way that shielded pawns are made then the patch would have to be altered, but shouldn't be too much trouble.
the poo silo sounds cool but the latrine has a very small storage because after 8 pawns pooping in it it was full to the brim
Quote from: leondrel on January 24, 2015, 04:56:06 AM
ItchyFlea - That's fixed now =D. It seems to appear if the power armor wasn't soiled properly, possibly loaded from a save where it wasn't create the same way internally, it was missing a reference inside the SoiledApparel class, changed the way I was doing that so it doesn't rely on that reference anymore. Just tried spawning a bunch of random soiled power armors and no exceptions this time around.
I obtained that power armour by locking a broken visitor in a special little room I built just for him. He kept eating my colonists fine meals and using the longdrop and just wouldn't go away.
I'm looking forward to being able to pipe this stuff everywhere.
This might either be a feature request or a bug report.
I've got a couple of colonists who wait until the last possible moment to do their business, and are soiling themselves on a regular basis, despite there being toilets and longdrops all over the place. I'd like to be able to tell them to go to the loo when they start feeling the urge, so as to be able to potentially avoid this if catch them avoiding the loo.
Especially since one of them who does this the most often is also one of my cooks.
Aside from that, I'm really liking this mod, simply for the fact that it makes my colonists seem more human.
May I recommend Flaming Bag of Poo?
Collect poo, compress it, and then allow it to be equippable - and turn it into a makeshift molotov.
I think their is a compatibility issue between this mod and cybernetic storm.
When I have activated your mod, I couldn't install by surgery any of body part added by cyber storm and the intestin from this mod replaced the stomach from cyber storm mod in the surgery menu.
When I have desactivated your mod, the stomach was back and I was able to install body part from cyber storm so everything was back to normal exept I can't use your mod xD
ItchyFlea: I could certainly look into it but I don't think it's possible as I modeled it after the same code as eating and sleeping, I'll probably have to alter the way the 'urge' comes along and maybe force it to a higher priority? I think I can just change the time that they want to poo or lengthen the time before they have an accident, it should end up with the desired effect.
TheSilencedScream: That was one of my original thoughts before making this mod, haha, a burning poo bag that makes the bad guys feel really nasty to increase their chance of breaking and running away. Also things like poo mine's and just smearing the floor with poo, would cause raiders to think twice before invading!
HBKRKO619: Yeah I think it does, as adding extra recipes to the pawns also breaks the poo pawns, I've been tinkering with a way of changing that, rather than having the poo-able pawns being a class, I could make it a "comp" and it could just be inserted into existing pawns, haven't gotten it to work yet but I think it's possible.