Pet feeding tweaks
Summary
Features "Pet feeding tweaks"
Purpose of change
Various aspects of the animal feeding system are unrealistic and/or cumbersome.
Describe the solution
In the notes for pet food it says you can feed dogs and cats raw meat but you cook it just to be safe. I added "raw" versions of pet food which can be made just from chopping up some meat for them. I also made the existing pet food work similarly to cooked meat. You get batch savings. Raw pet food I added can also be prepared into ordinary pet food if you want to for whatever reason.
Bird food in addition is just ripping up some bread at most, or looking at some corn kernels and deciding it's bird food. Similar to turning beans into seeds. So I made it only take a second as item designation instead of 10 minutes to "prepare" a piece of bread for a bird somehow. Cattle fodder is a designation as well. You don't have to do anything to the food that the horse or whatever can't already do with its jaws. You just need it designated so the game knows what you're going to do with it.
I also removed any cooking or survival skills needed in making these "raw" versions of pet food, bird food, and cattle fodder. You don't need survival knowledge to feed a dog meat, a cow hay, or to throw bread crumbs at a bird. More importantly it shouldn't train these skills. Canning methods for pet food still train appropriate skills. Knowing the difference between dog food and cat food is a bit iffy in my opinion, because I think most dogs would be happy to eat cat food. I didn't mess with that. But in real life a dog will probably accept any cut of meat.
tl;dr: 1.Raw cat and dog food items are added 2.Raw cat food can be produced quickly by cutting up meat and adding water 3.Raw dog food is produced similarly but with vegetables added too 4.Wet dog and cat food can also be produced from these raw versions of the food 5.Wet dog and cat food receives batch time savings similar to cooked meat 6.Bird food and all cattle fodder take 1 second to make per unit (down from 10 minutes)
Describe alternatives you've considered
In the future it might be better to just present any kind of food to a monster with the 'e' button rather than having to prepare a specific item. I think this is legacy stuff that goes back to where you used dog food specifically to recruit dogs. You didn't feed them later or anything like that. The current system is jerry rigged to also use this for domestic animal feeding. You might rather 'e' the cat, an option for 'feed' pops up, and you can choose to present it with any item in your inventory. If it has meat the cat could eat it. Domestic herbivorous animals too will eat junk food if offered and even meat sometimes.
I also remember when I played rat prince once and rats would just eat whatever junk was on the ground. It was a satisfying way of getting rid of extra food. I don't know why all animals don't do this. I recently dumped a bunch of leftover mutant meat on a plate in front of some pet cats hoping they would eat but they just hung around until the meat went rotten. I understand now it's because rats use the [EAT_FOOD] special attack. It would be ideal if there was a modifier for it so less flexible creatures could do the same but stick to their preferred food groups. Dumping leftover monster meat on the floor for pets is pretty easy to do.
Testing
Tested on my computer in debug mode.
Additional context
I would definitely like animal feeding to resemble the real world situation where you typically place food down for the animal(s) (unless you're trying to create goose fat liver), so you'd feed the cows by dumping cattle food/hay bales into the paddock or pen and then leave it up to the animals to eat when "hungry".
However, I suspect the food eating attack doesn't actually feed the critters, just removes the "food" and sets some timer for the next attack.
I would definitely like animal feeding to resemble the real world situation where you typically place food down for the animal(s) (unless you're trying to create goose fat liver), so you'd feed the cows by dumping cattle food/hay bales into the paddock or pen and then leave it up to the animals to eat when "hungry".
However, I suspect the food eating attack doesn't actually feed the critters, just removes the "food" and sets some timer for the next attack.
They already do this, and EAT_FOOD does feed them actual kcal. Ditto for EAT_CARRION, GRAZE, and BROWSE. The only problem with the floor method is that they have no AI to tell them to seek out food, they need to randomly step on it to see it and eat it.
The only problem with the floor method is that they have no AI to tell them to seek out food, they need to randomly step on it to see it and eat it.
If you keep their "pen" relatively small it's effective enough. Generally you have to pen everything in some way because monsters are not very smart at all and will randomly walk into pits. I originally did this with rats before the feeding mechanics were even in the game just as a fun way to dispose of excess meat and other junk. It works but if there are no restrictions I assume cats will eat cookies and things like that.
If you can use a pen that way, wouldn't it also work to tie animals down with ropes and dump the food directly onto their tiles (I haven't dealt with animals since the feeding requirement was introduced)?
It should, unless being tied prevents animals from using special attacks.
Sorry for the derail...
Dumping cattle food for a tied down cow seems to work:
- Debug spawned short rope and 100 cattle food.
- Debug spawned cow.
- Tamed cow with cattle food.
- Tied cow down.
- Dropped the 99 remaining cattle food at the feet of the cow.
- The cow apparently spawned famished and ate 1 cattle food when it was dumped or immediately after that.
- Walked away a little bit, but no more eating (98 cattle food left).
- Teleported away.
- Debug waited 5 days.
- Walked back.
- Saw message about the cow eating.
Working as intended then. Nice 😎
I put "used skills" for the recipes back in to reflect how it's done with seeds. Cattle fodder and bird food now train level 0 survival like preparing seeds for planting. I also put cooking as the used skill on the raw pet food recipes because using it for level 0 food handling seems alright.
does the cat food help you sleep?