Open
Description
This a meta-issue for the farming improvements project: https://github.com/CleverRaven/Cataclysm-DDA/projects/11
I am developing a list of things that make farming and ranching annoying, so hopefully they can be turned into tasks and fixed.
I. Ranching:
A. Acquiring and relocating livestock
- Farm livestock only spawn in a few places (farms, dairy farms, sometimes ranches). They should probably spawn a little more often than that - an infrequent dogpack or moose could be some feral cattle instead.
a. Similarly, cattlefodder should spawn at ranches and farms. Currently, the one place you'd expect to have food for cattle does not have it. - Livestock spawn sites may not be good sites for the survivor to set up a ranch - a dairy farm next to a mall, a farm too far away from anything interesting to make scavenging practical. It is possible to relocate friendly livestock, but it's a huge hassle.
a.Animals can't be transported by vehicles, so you have to walk them to wherever they're going. This may or may not be feasible, depending on distances and monster density. See Can't have friendly animals in vehicles #11381 . Probably the best solution is to make a vehicle part with the CAPTURE_MONSTER_ACT action and monster_size_capacity LARGE.Livestock stalls exist and are sufficient for transporting animals.
b. Animals can detect danger, often at a greater distance than the PC's effective line of sight. It is a huge hassle to herd cattle any distance, because they just stop following the PC for no obvious reason. This might be resolved as part of the fix for Can't have friendly animals in vehicles #11381. - Moving while at a fortified ranch or similar concept is a huge pain, too.
a. Animals will follow the PC at a random distance but often adjacent. It is nearly impossible to walk out of a barn that has 3+ sheep in it and close the door behind you, because the sheep will crowd the door, and when the PC pushes one away, another takes up the space. The PC has to build "airlocks" out of wire fence (because the PC can climb over a wire fence but livestock can't) but wire fencing takes a huge amount of wires and time to build. Making animals not enter a door space if the PC is adjacent to the door would probably solve this problem and is relatively straightforward.
b. A short rope can be used to tie an animal in place, and then the PC can swap places to get controlled movement, but this is tedious. Leading animals by a long rope or something would be great.
B. Interacting with livestock
The interface for milking is a huge hassle to use. Examine an animal, select milk, choose a container, repeat 9+ times... and if there isn't a suitable container, that unit of milk is lost. Milking should probably become a recipe that requires livestock with milk, or should reuse some of the logic from the siphon or unload liquid container code. Siphoning seems to be the preferred approach.
Single long action that doesn't lose fluid if there isn't a container: Better milking: make milking a long action that gets all the milk it can #24665
b. milking is too quick in game time (roughly 2 minutes for 2.5L, should be about 3x that) and needs to be written as a player_activity after game: refactor handle_liquids() #24684 goes in.- With the new animal waste and carrion system, animals produce a huge amount of waste. It's slightly depressing to think of your post-apocalyptic mutant cyborg zombie slayer going around with a shovel and bucket, cleaning up cow-patties to prevent being overwhelmed by mutant cockroaches while fermenting hard cheese. In practice, it's hugely tedious. Much like milking, this needs to become a recipe or long action or something where the player presses a button or two, some time passes, and the waste is dealt with. Instead of requiring the player to walk the survivor to each cow-patty, grab it, and then drop a huge stack on a fire pit. I don't object to the ingame time, I object to spending my time pathing to cow-patties.
a. I just realized that if you tell an NPC to pick up items, and put animal waste on their pick-up list, they'll go around picking it up as you walk around. That's a quick 70% solution.
C: Keeping livestock alive
- The half-life of livestock in a world of roving zombie hordes is about 2 weeks. Sooner or later a zombie spawns with the reality bubble while the PC is far enough away to not see or hear it, and it kills all the livestock. This has happened on almost every farm I've ever made (except the one on the rooftop of the large firehouse) and it's really, really annoying.
a. The new rockwheel helps a bit here, and letting rockwheels or an excavator dig full pits would help a lot. Adding an engineering machine that can set fence posts and string barbed wire would also be really helpful.
b. There's still the fundamental problem that any time the PC performs a long action when he's 45-55 tiles away from his livestock, there's a risk of a zombie spawn on the edge of the reality bubble next to the livestock and killing them. There really needs to be a system for understanding barricades/fortifications and preventing monsters from spawning inside of them.
Farming
A. Single tile model of farming
- C:DDA requires the player to plow, plant, fertilize, and harvest plants one tile at a time. Powered farm equipment helps some here, but the fundamental equation is a bunch of actions per tile. Driving a tractor across a bunch of tiles is not very interesting but needs to be done by hand. Again, this needs to turn into some kind of recipe or long action where the player designates a zone, selects the seeds to plant or crops to fertilize/harvest, presses a button (craft recipe? construction menu?) and game time passes. The player spends less time doing boring bits, and can get back to raiding labs and hunting jabberwockies or whatever.
Hopefully being addressed Farming plot zone - QoL improvement features #24826
Comments? Additional issues? Suggested fixes?
Activity