[A17] Pawns Are Capable! (No more disabled work!) Updated to V3.2!

Started by Rimrue, June 18, 2017, 01:26:26 AM

Previous topic - Next topic

dburgdorf

Quote from: mrsebseb on July 26, 2017, 08:00:25 AMIn fact I quite frequently spend a long time writing a well thought out response and posting it, only to read it over later and realize I sound like a crazy drunk person because I missed typing out several words necessary in making my thoughts even remotely comprehensible.

I'm a native English speaker with (I believe) reasonable competency in communication. And I STILL do that far more often than I care to admit. :D
- Rainbeau Flambe (aka Darryl Burgdorf) -
Old. Short. Grumpy. Bearded. "Yeah, I'm a dorf."



Buy me a Dr Pepper?

moonra

As a perfectionist with a fear of failure that has English as a second language as well, sometimes I write a reply/message/comment/etc and don't post it because I can't find the right word for something or things like that, it's annoying.

SpaceDorf

Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

skullywag

Im also getting a conflict with my WIP rimbots mod:

Exception in Tick (pawn=CleanBot1570007, job=Clean A=Thing_FilthDirt1569925, CurToil=4): System.NullReferenceException: Object reference not set to an instance of an object
at PawnsAreCapable.HarmonyPatches.Pawn_RecordsTracker_Increment.Prefix (RimWorld.RecordDef,RimWorld.Pawn_RecordsTracker) <0x00036>
at (wrapper dynamic-method) RimWorld.Pawn_RecordsTracker.Increment_Patch1 (object,RimWorld.RecordDef) <0x00015>
at RimWorld.JobDriver_CleanFilth/<MakeNewToils>c__Iterator26.<>m__76 () <0x00097>
at Verse.AI.JobDriver.DriverTick () <0x00322>
lastJobGiver=RimBots.JobGiver_Clean, curJob.def=Clean, curDriver=RimWorld.JobDriver_CleanFilth


I have a custom set of jobs using custom workgiver_scanners hooked into their thinktree, weird how in both errors on this thread its cleaning filth related.

In this instance these bots may as well be animals they dont have skills, backstories or anything else that would make them humanlike, so if your code is looking at anything in that area, that may be the issue.
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

SpaceDorf

Quote from: skullywag on August 12, 2017, 11:30:11 AM
I have a custom set of jobs using custom workgiver_scanners hooked into their thinktree, weird how in both errors on this thread its cleaning filth related.

In this instance these bots may as well be animals they dont have skills, backstories or anything else that would make them humanlike, so if your code is looking at anything in that area, that may be the issue.

You're the man Skully .. it's so obvious now .. of course does the code look into this area to determine if a pawn is doing something he does not like. .. And the code has to look because Minions and Slaves are based on the humanlike body def.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

skullywag

hmmm, need something to check before going into that bit of code, something that your code needs to work. Does a backstory suffice? most pawns that have backstory would be full fledged pawns, my bots dont so theyd be free from this error, slaves I guess are similar???
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

Modo44

I think the mood debuffs this mod introduces are too severe. It's basically an automatic mental break after a day of doing anything a pawn doesn't like. Might make sense to risk it during a raid, but really never otherwise.

skullywag

It has options. Lower the penalties if you feel its too much.
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

sirgzu

Not sure if it is related to this mod but I have 3/10 colonists with identical nicknames and backstories.

I started with the one dude scenario and two more joined, with same nicks and backstories, although different stats/age.

Oblitus

Quote from: sirgzu on August 15, 2017, 07:15:00 AM
Not sure if it is related to this mod but I have 3/10 colonists with identical nicknames and backstories.

I started with the one dude scenario and two more joined, with same nicks and backstories, although different stats/age.
Probably pre-made characters (from backer rewards). Not related to the mod.

dburgdorf

Quote from: skullywag on August 12, 2017, 02:27:38 PMhmmm, need something to check before going into that bit of code....

I haven't had a chance to look into the problem yet myself, but this mod doesn't touch any WorkGiver code at all. It alters backstories to provide forced traits instead of disabled work tags or types, and then adds Hediffs and ThoughtWorkers to make sure that pawns who are told to do something they don't like, complain about it.  I'll need to get around to looking at the code of the mods causing problems to track down the overlap, as I'm not sure why there even *would* be overlap.  ;)

Quote from: Modo44 on August 15, 2017, 05:10:51 AMI think the mood debuffs this mod introduces are too severe....

First, as Skullywag already pointed out, the severity is configurable. But more importantly, the fact that you're complaining about what happens "after a day" suggests that you're misusing the mod. The point of this mod is *not* to turn a pawn who won't ever do a certain type of work under any circumstances into a pawn who you can just leave assigned to that type of work indefinitely without any trouble. The point is to turn a pawn who won't ever do a certain type of work under any circumstances into a pawn who can do that type of work *in emergencies*.

If you take a pawn who hates a particular type of work to the point that under vanilla rules he'd never do it at all, and leave him assigned to that type of work for more than a day, then, yeah, you *should* be seeing some potentially major mood problems.

This isn't designed as an "easy mode" mod so you can just ignore the fact that some pawns don't like certain types of work. It's designed to give you extra options when your colony's survival depends on it. But those options come with risks.

Quote from: sirgzu on August 15, 2017, 07:15:00 AMNot sure if it is related to this mod but I have 3/10 colonists with identical nicknames and backstories.

This mod has absolutely no connection to assignment of names or backstories, so your issue is either just simple, albeit odd, "luck of the draw," or a problem related to another mod in your list.
- Rainbeau Flambe (aka Darryl Burgdorf) -
Old. Short. Grumpy. Bearded. "Yeah, I'm a dorf."



Buy me a Dr Pepper?

skullywag

Its not the workgivers its simply null ref errors when calling anything pawn backstory/skill/etc related due to the the patches in this mod (i think) so imagine i have a pawn that is technically an animal but it does jobs would any part of the code have a null ref (based on the error i posted)
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

dburgdorf

Ugh. OK, yeah, I really should know better than to respond after just skimming. The posted error messages are actually pretty clear.

There's a patch in the base version of PAC (which actually predates my involvement with the mod) for the Pawn_RecordsTracker method. That patch references Pawn.story.traits without first making sure that Pawn.story.traits isn't null. If your modded critters reference that method but don't have backstories, well, voila, there's the reason for the null exception. :)

The good news is, it should be a trivially easy fix on our end. I'll get in touch with RimRue and see about getting it taken care of.
- Rainbeau Flambe (aka Darryl Burgdorf) -
Old. Short. Grumpy. Bearded. "Yeah, I'm a dorf."



Buy me a Dr Pepper?

skullywag

Thanks thats what I was trying to say in my usual roundabout way. :)
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

rambo