Akien {l Wrote}:Maybe we can reuse the exact same values that for the idle behaviour? Or if it doesn't make sense (maybe we want some creatures to go a lot to the training room, but not necessarily to be the quickest to train on top of that), maybe add an optional second numeric value that would define their "skill" at using this room, e.g.:
Forge 5 3
TrainingHall 2 2
That's also the ideas I had. Good to see we all go to the same point. That may not be too stupid

But I can also see bad points with these options:
Solution 1 : As you already noticed, we might want to have creatures that go to training but that do not train so much better than others. For training room, we could handle it easily with the xp table but for some other rooms, it could be trickier.
Solution 2: The problem with this is that it would prevent from using default values. The only solution I can see if we want default values is to let the room handle them. but we may also want to not have default values at all and if you want a creature to be able to use a room, you have to add it in its definition. After thinking a bit more, it might be a better solution actually. It would avoid forgetting that most creatures won't like torturing and to see them go there because we forgot to add the corresponding value to their definition.
Bertram {l Wrote}:I like hwoarangmy's proposal, while I'd make an exception with dormitory and hatchery, or at least the default value for these rooms shouldn't be 0, IMHO.
Good reminder but it was also clear in my mind that we were not talking about theses rooms. They will be hardcoded to not allow any creature to go there so giving any value won't change anything

Bertram {l Wrote}:IMHO, this should be defined next to the dig, and claim rates. And also a default value of maybe 0 should be defined for special rooms.
Last but not least, a creature with a specific room use rate set to 0 shouldn't use that room, just like they don't dig/claim when their corresponding rates are 0.
I wouldn't merge the room likeliness and efficiency values together in case you already thought about it, since we might want to have creatures that are, for instance, good at the forge but prefer go to eat, or be tortured.

Ok, so I think we all agree on solution 2. So, here is my final proposition. if everybody agrees, I will open an issue on github:
To have something easy to configure, I would propose to allow to add in the creature definition file a list of usable rooms and a value. The higher the value is the most likely the creature will go there if the room has empty space. For example, a troll would have something like:
Forge 5 5
TrainingHall 2 3
The first value is the creature likeness to the room. A value of 0 means that the creature won't go there alone.
The second value is the creature efficiency. A value of 0 means that the creature is not good in this room. A value > 0 will be handled by the room itself.
A value of 0 in efficiency will prevent a creature to work in a room (whatever its likeness is) even if dropped. If a creature has a likeness = 0 and an efficiency > 0 for a room, it won't go there by itself but it will agree to work if dropped.
By default (if a room is not present in the creature definition), the likeness will be 0 and efficiency will be 0.
Do we agree ?