CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.61k stars 4.17k forks source link

Feeding and taming should consume calories depending on stomach size of the target, to get it full. #70449

Closed freijie closed 8 months ago

freijie commented 10 months ago

Is your feature request related to a problem? Please describe.

With introduction of actual calorie consumption by animals in #69249, two issues got exposed:

Solution you would like.

  1. Reduce animal feed unit size to 0.25L size for fodder and 0.1L size for others.
  2. Upon manual feeding or taming, consume as many units of activated animal food item to get animal full as needed, using inventory and adjacent tiles. Its important to use same item id rather than tag to avoid mishaps.

Describe alternatives you have considered.

auto split of feed item into smaller portions on partial consumption use certain(100-200) amount of calories as food unit instead of volume

Additional context

While trying to figure out how to output fodder item for fodder PR i got stuck with dilemma:

You need huge amount of calories per fodder item for convenient manual feeding, yet it gets too easy to overfeed by leaving fodder on the ground, especially with animal offspring being in the mix. Its also hard to estimate desired size of food item unit considering that animals may get some food on their own.

fairyarmadillo commented 10 months ago

I'd prefer obscuring the number of kcal an animal needs to eat, as this isn't common knowledge and I'm not sure there are phone apps for it, though I suppose there's probably an app for everything these days. We could absolutely make fullness on examine much more granular so the player would know about how much food the animal still needed.

It may be difficult for other items, but in the case of fodder it should be possible for an animal who isn't hungry enough to eat the full thing to instead transform (auto-split) it into a smaller fodder bundle, both in the case of hand-feeding and when they eat stuff that's on the ground.

Taming should definitely fill the animal's stomach relative to what you gave it.

My thoughts for taming are that animals should have a tameness score which could be impacted by your survival skill, the quantity of food you gave them, and any traits like terrifying, animal discord, animal empathy, etc. We could even roll in an animal husbandry proficiency. That way, getting a horse to trust you enough to follow you might involve visiting it a few times over the course of a week, and getting it to let you ride might be more difficult unless you knew what you were doing.

We also definitely need faction camp jobs to automate this stuff. My idea there was that you'd simply select an NPC shepherd and a nearby field tile and they'd spend 8 hours doing that, then come back with a bunch of full animals. It would be ideal if we could somehow get this process on a schedule so that you only had to tell them to do this once, and then they'd automatically do it every day. Once that was up and running, we could check things like marksmanship or whether the NPC had a dog with them to handle predators or monsters occasionally eating one of your cows.

If we got scheduling working, we could probably also create a feed silo that you could build in your faction camp that would store feed calories in the same way that the "distribute food" job does, and a job to feed the animals from that storehouse, which should probably also work on a schedule. If we could also automate milking that would be amazing.

freijie commented 10 months ago

I'd prefer obscuring the number of kcal an animal needs to eat, as this isn't common knowledge and I'm not sure there are phone apps for it, though I suppose there's probably an app for everything these days. We could absolutely make fullness on examine much more granular so the player would know about how much food the animal still needed.

I think simply auto-feeding til animal is full would give player good enough guesstimate about animal's food consumption rate while keeping it somewhat realistic. Anyway, if feed-til-full mechanic existed making base food item more granular would make things easier, instead of resorting to 'spit out' mechanic and manually crafting/splitting piles of certain volume.

My thoughts for taming are that animals should have a tameness score which could be impacted by your survival skill, the quantity of food you gave them, and any traits like terrifying, animal discord, animal empathy, etc. We could even roll in an animal husbandry proficiency. That way, getting a horse to trust you enough to follow you might involve visiting it a few times over the course of a week, and getting it to let you ride might be more difficult unless you knew what you were doing.

While it certainly matches what i'd imagine as an ideal, but i can hardly think how it would work with wild horses in particular, simply because there is no territorial behavior AI, they will simply run away at 200 movespeed on any hostile target in sight. Plus horses are simply hardly worth the effort now, gameplay aside. For cows, in particular its a rather difficult mechanic for player to deal with due to the fact that cows are mostly spawned in diary farm grouped up with calves, so getting near the same cow would be both complicated and annoying due to randomness of erratic animal movement and aggro. With non-standard spawn rates issue would be even worse(it could get really crowded in diary farm, turning it into bullet hell type of game this way.

I think reasonable middle ground would be 2-stage taming. Turn animal to your faction animal on full feeding, but allow actions aside from leading by leash/tying(milking, equipping, riding, playing etc) only after several days of tending to it. Could have several taming levels and gate actions after specific taming level. Milking horse would need higher level than for cow, for example, but for riding it would be the opposite.

I love idea with feed silo and herders. It probably needs camp NPCs being able to handle liquids first, to milk animals, since the goal is to get rid of repetitive micro as much as possible? Or maybe making diary farm milk machine functional and giving a workaround using it.

github-actions[bot] commented 9 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.