[WIP] Britnoth's experiments thus far

Started by Britnoth, December 16, 2015, 12:42:37 PM

Previous topic - Next topic

Britnoth

Quote from: faltonico on April 17, 2017, 06:37:24 AM
This would probably never happen in a normal situation but, if you draft a pawn with a mele weapon and set it to attack a downed colonist, the animal hunting warning pops up.
Just to let you know ;)

I know. As I want the mod to work with any other mod I decided to keep the check as simple as possible so that if, say, someone added a predator that was considered human the mod would still give you the alert, or if a mod that caused your own animals to turn against you for food, then again.. the mod would warn you.

Also I find it funny.  :P

Re: Removing SID from an existing game I assume you mean? Should be okay? The mod uses its own replacement for Jobdriver_Wait, which is used when pawns are drafted etc to find enemies to fight so I would try removing it when no fighting was going on.

khor

Quote from: Britnoth on April 20, 2017, 05:33:43 AM
Quote from: faltonico on April 17, 2017, 06:37:24 AM
This would probably never happen in a normal situation but, if you draft a pawn with a mele weapon and set it to attack a downed colonist, the animal hunting warning pops up.
Just to let you know ;)

I know. As I want the mod to work with any other mod I decided to keep the check as simple as possible so that if, say, someone added a predator that was considered human the mod would still give you the alert, or if a mod that caused your own animals to turn against you for food, then again.. the mod would warn you.

Also I find it funny.  :P

Re: Removing SID from an existing game I assume you mean? Should be okay? The mod uses its own replacement for Jobdriver_Wait, which is used when pawns are drafted etc to find enemies to fight so I would try removing it when no fighting was going on.
ok thanks for the information

BlackSmokeDMax

Hi, just wondering if you are still around and planning to update any of your mods for A17?

Thanks!

TrustyShoes

Also wondering if there are any plans for an A17 release?  I am desperately looking for a mod like Pandora Dark that increases the size of raids if anyone can recommend another mod in the meantime.

Britnoth

I am still here. Just updated the UI ones, Pandora + co. will be along shortly.  ;)

BlackSmokeDMax

Quote from: Britnoth on June 03, 2017, 02:03:44 AM
I am still here. Just updated the UI ones, Pandora + co. will be along shortly.  ;)

Thanks!

Juujika

Quote from: Britnoth on June 03, 2017, 02:03:44 AM
I am still here. Just updated the UI ones, Pandora + co. will be along shortly.  ;)
Thank You^^
Do you have a Steam Workshop?

Britnoth

Nope, I'm a filthy casual and don't use Steam. Sorry.  :P

poolday

Hi! I am really enjoying the mods, and I have a small request to ask: can you make the Workflex compatible with the Urgent Hauling from the Allow Tool mod?
I can see a lot of potential in Workflex and it works well for me specially at small communities.
I'm sorry in advance if this was already requested or answered
Cheers

Britnoth

Hmm, Urgent Hauling adds another hauling work type with a priority higher than flicking?

A simple way would be to add the <emergency>true</emergency> flag to its WorkGiverDef. Then any pawns allowed to would do that before any normal work in the same way they fight fires - the check for emergency work is made before the main behaviour, including annoyances like eating, sleeping, socialising or changing clothes.

Patient Sanity makes some use of it (and after losing a pawn this alpha to malnutrition because a doctor went to bed instead of feeding a patient, next version will probably use it even more. :P  ).

faltonico

Hello there!
Thank you for the updates!
I have a question though, with WorkFlex, if a pawn can't find a job in the nearest 12 tile radius, what does it do?

Britnoth

Quote from: faltonico on June 26, 2017, 02:24:02 AM
I have a question though, with WorkFlex, if a pawn can't find a job in the nearest 12 tile radius, what does it do?

What it would do anyway - follow its normal work priority.

WorkFlex just duplicates the existing check but with a limited range - it isn't very complicated :3

faltonico

Quote from: Britnoth on June 26, 2017, 01:14:33 PM
Quote from: faltonico on June 26, 2017, 02:24:02 AM
I have a question though, with WorkFlex, if a pawn can't find a job in the nearest 12 tile radius, what does it do?

What it would do anyway - follow its normal work priority.

WorkFlex just duplicates the existing check but with a limited range - it isn't very complicated :3
The thing is that though it could (the pawn) move 1 tile and search again, if nothing found repeat the same, i was basically worried of a resource hog.
Thank you for clearing that out.

stigma

#73
Some very good ideas here. I love the new zone controls. Uniform growing zone is really handy to mark out those rich soil spots. Before I always went all OCD and "had" to check and mark every single tile that was rich soil. Now it's eeeeasy :D

Workflex intrigues me - and I've only had limited experience with it so far.
It seems like a good idea and results in a lot of good efficiency choices like "hey, why not haul that thing next to you back to base while you are already out there"

That said it also worries me greatly that it seems to lack a good control mechanism from going overboard and ignoring your priorities. I haven't noticed too many critical situations popping up yet in a small starter colony, but I fear the potential for big issues will increase later on in the game as things start to scale up.

- As you mention, long-term or "unending" jobs like research may never stop being prioritized just because it is nearby, even though there is critically important other work that needs to be done.

- If your pawn enters an area with loads of low-priority jobs nearby (hauling, cleaning ect.), they might end up effectively deadlocked doing nothing else - and that sort of describes any late-stage base. (basically the same issue as the one above, but for another reason).

- It breaks "haul urgently" pretty much, or renders it's priority not all that urgent, which is not so great. (added by a popular mod as I'm sure you know).

The only control mechanism you mention is that if you set the schedule to "work" then this effectively disables the "nearby work" check in that time period. This lets you have some control I guess, but it still seems a little weak and is very reliant on you being able to judge very accurately exactly how much work-scheduling you actually need to have during a day to make critical work priorities don't get ignored. If you don't constantly keep on top of this then there is definitely a chance that things could go very badly wrong ("I'm gonna go research since it's close instead of treating that colonist who is infected with plague")

I feel that a better control/deadlock mechanism is REALLY needed here... Exactly what is optimal is hard to say but something along these lines:

- Exclude priorities (in workflex) that are obvious or very likely long-term or unending. Research and art definitely (I don't see any need for workflex to act on these at all), crafting, cooking, smithing ect. are also pretty much in that boat. A lot of other stuff too like bedrest probably don't really belong. Having workflex consider all types of jobs is a mistake I think. I think there is a very valid argument to be made that hauling (and maybe cleaning) is maybe the only really critical job workflex should take into account.... (and it would be so GREAT if you could adjust this to your liking in an in-game options menu!)

- Have some sort of automatic limiter on workflex, so that no matter what you don't get deadlocked and high priority work WILL get done at least intermittently. I don't know the best implementation of the top of my head, but for example you could have a check that "if a pawn has been doing only workflex-tasks for X amount of time then disable workflex priorities for Y amount of time for this pawn". A timeout is probably also required (especially if longerm/unending jobs are considered),  so something like "if current workflex-job has taken more than X time, stop the job and re-evaluate what to do). This should break any deadlocks that prevent normal high-priority jobs from ever being done due to workflex.

TLDR:
Until there is some sort of automatic system for dealing with deadlocks I am really hesitant to use workflex even though I really see it as having huge potential (especially in hauling efficiency). I'd also looove to see an ingame options menu to let you adjust the most important variables like range - and what job-types workflex considers.

A few quick questions:
- Can you remove workflex from an existing save safely?
- If you set the range in XML to be 0, does this effectively disable workflex? (in case you can't remove it safely this would be a workaround).
- in your description you say that even "sleep" scheduling is ignored to do workflex tasks. I assume this doesn't mean that pawns will potentially ignore sleep needs? ... I haven't seen this happening so far at least. Will they still go sleep if they run out of rest?

Thanks for the hard work on the mods so far - and I really hope that you will expand on workflex to resolve the issues it currently has and bring out it's true potential :D

-Stigma

Britnoth

Quote("I'm gonna go research since it's close instead of treating that colonist who is infected with plague")

Doctor/patient AI being broken is an issue in vanilla. Also why I made Patient Sanity. They work together fairly well.

Quote- Exclude priorities (in workflex) that are obvious or very likely long-term or unending.

Easy to say, not so easy to define what those are when it is entirely likely that another mod can add a work type that can be just as time consuming.
Marking a small area for mining to expand a room could be done fairly quickly. Deep drilling 2000 plasteel involves staying in one place for a long time. But they are both mining work.

Quotesome sort of automatic system for dealing with deadlocks

Strongly against this kind of game behaviour. Yes, it is perfectly possible to screw up your work priorities with it. You can also do that in the vanilla game.
The level of player interference to stop you being able to do this sounds both prohibitive and frustrating. Why isn't Johnny working on stone cutting like I expected him to? etc etc.

I usually have my doctor/warden/researcher type colonists on alternating hours of anything and work, to avoid them being work locked like that.

QuoteA few quick questions:
- Can you remove workflex from an existing save safely?
- If you set the range in XML to be 0, does this effectively disable workflex? (in case you can't remove it safely this would be a workaround).
- in your description you say that even "sleep" scheduling is ignored to do workflex tasks. I assume this doesn't mean that pawns will potentially ignore sleep needs? ... I haven't seen this happening so far at least. Will they still go sleep if they run out of rest?

- Adding/removing with an existing save has always been fine for me.
- Range of zero I have not tried. Might give an error, but probably would only have them consider work at range zero (same square).
- The work priority is higher than the default work check, but still lower as to not interfere with normal sleep or joy tasks.

This was actually my first mod.  :) I have a few ideas how to improve it, but I have no coding experience, so adding its own shiny UI is... not easy.