Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 3 [4] 5 6

Author Topic: What is a "decent meal"?  (Read 17135 times)

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #45 on: November 14, 2018, 02:14:31 pm »

Thanks for that thread reference, therahedwig, it looks like it contains exactly what I was looking for (and in more detail than I realized I needed)!

I suspect Sun Berries/Sliver barb may be available in trade if conditions are exactly right. If I understand it correctly, the resources available to a civ depends on what's available to the starting site of the civ, and I think those resources are drawn from a rectangle around the site, rather than from a single world tile (and sites tend to be larger than a single world tile and/or straddle world tiles anyway).
When it comes to the revamped system, I'd expect similar effects to the current ones to appear, with some spheres (and their corresponding resources) being too hostile to some or all species you trade with. As your own species can be more or less random (as can the others), what you can have access to in a specific world may probably vary considerably from what's available in another even within the same weirdness/magic level, with mundane worlds being rather mundane and samey in comparison.

Edit: Updated "food_needs" to flag preferences for unobtainable butcher products based on Urist Da Vinci's research:
Spoiler (click to show/hide)

Edit 2: Updated the script above again to flag unavailable items, i.e. items based on plants and creatures that do not exist in the world because they haven't been selected by DF to appear in any region (and aren't common domestic, as some of those don't exist in the wild), possibly because no region has a suitable biome.
« Last Edit: November 16, 2018, 05:54:48 am by PatrikLundell »
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #46 on: November 16, 2018, 08:36:17 am »

Eggs, fish, and raw fish all lack the kind of internal structure (other) animals and plant have, so they can only be preferred as the whole items. Eggs are particular in that the actually have a different internal structure in the form of shell, white, and yolk.
It can also be noted that Feather Tree Eggs are bugged and cannot be acquired, but eleven caravans litter the trade depot with Feather Tree Egg Yolk (which cannot be picked up and used).

After last post some lover of aquatic vermin body parts have appeared in my fortress. Here's excerpt from your (older) script's output:
Code: [Select]
hagfish gut     1
hake    5
hake liver tissue       1

Both hagfish and hake are water vermin, apparently sometimes dwarves are inquisitive enough to find what hides inside these vermin...
The guys who love hake have this preference:
 item_type: 48 (i.e. FISH)
 item_subtype: -1
 mattype: 550 (this one is race ID of the creature, hake in default RAWs)
 matindex: -1

The guy who loves hake's liver has this preference (he also likes a whole vermin fish of another species, he's a fish guy):
 item_type: 47 (i.e. MEAT)
 item_subtype: -1
 mattype: 29 (this means liver)
 matindex: 550 (and here the ID)

So clearly sometimes, when choosing meat, the vermin are considered by game. I don't know why so rarely, but still in my game it's more often than pigs, llamas, cows, horses or other domestic animals, which have zero lovers. Except cheese and milk, yeah, these are preferred by some gourmands.

Quote
My biome hacking includes trees, yes. For some reason it tends to take a few years for saplings of most temperate fruit trees to appear, but since they only take 3 years to mature, it's not a big deal.

Ideally, migrant (and petitioner) preferences ought to be based on their background, which means it ought to be based on what was available in the places they've lived (which ought to include what's available via trade). I agree preferences ought to develop over time, with newborn being blank slates, but if so, the process ought to be capable of blocking stuff exposed to (i.e. I've only ever eaten Plump Helmet, and I don't like it and will never do so. Please let me try other things! Hm, Cave Wheat. Novel, but no, I won't grow attached to that either). However, currently newborn are fully formed with preferences, views, personality traits, etc.

Yep, their initial state should be blank, though they should have some preference chances. But even if it remained like it is, it should be more rational when choosing. You can't like something no one ever seen ;)

Quote
Edit: Looking more into preferences, I see no whole creature preferences in my fortress, except for vermin (moghopper) and vermin fish, while there is a preference for Pike Kidney Tissue (and looking at the raws for Pike shows it's a creature, not vermin).
I've also found that mead isn't actually booze cookable.

Ah, so they won't make mead roasts.  But it's a kind of moot point, you see, because of peculiar behaviour of eaters and drinkers who do not have their preferred food: they choose whatever was produced or brewed recently. In case of food it's often horse tripe or pig intestine (i.e. not a big deal usually), but in case of alcohol it can be mead - which is rarely made. I have over 20 hives, and when mead is made, even if it's more than one unit, it's all gone before sunset, because of this behaviour. So I wouldn't be able to make a mead roast anyway.

In case of meat I sometimes butcher the extra rare creature surrounded by common creatures - for example a beak dog, an eagle (rare), a llama and another llama. This usually "saturates" the market so the rare eagle parts won't be instantly eaten by some boor who can't appreciate them. But this can tedious, and I can do it only for the most valued dwarves anyway.

As for aquatic vermin parts - as seen in my example above, they can happen. But they are quite rare for some reason.

Quote
Edit 2: Is it known what the size limits for butchering and slaughtering are, and if there's more than just bones that won't appear if the creature is too small to yield anything but skull and meat? I'm fairly sure a Magpie is too small to be butchered (to satisfy a need for Magpie Gut), but would a Buzzard (which appears to be a borderline species that sometimes yields just a skull and meat, and sometimes a more complete result) produce a Gut part in either or both cases?

Edit 3: I've found that the "[NOT_BUTCHERABLE]" token from the raws can be accessed from the creature raw to determine if a creature is labelled as butcherable (which showed that the Magpie in Edit 2 is marked as [NON_BUTCHERABLE]).

A marginally updated food_needs script that flags the impossible items I know of as impossible (butcher products from creatures that can't be butchered, bumblebee honey/mead, feather tree egg parts).

I've run the new script (after modifying to count my long-term residents) and here's the part about vermin:
Spoiler (click to show/hide)

These are some queer preferences, I'd say.

Now, about the script: it proved most useful, but I had to make some modifications, and there's a part which apparently works differently for you. The modifications I made are logging (because output is too big for my console's buffer), and determination of long-term residents (because otherwise only full citizens are counted, and my fortress has more long-terms than citizens). As a side note, the flag "resident" means that the critter is a and underground cave dweller (I don't know why it's named resident, "underground" or "caverns" would be better), just like "underworld" means that it is a hell dweller.

The part I do not understand is the one which checks the plots (and zones), specifically compares their name to the material id. In my game this field contains the nickname of the field the player can give, so the result of comparison is always false, i.e. #drink_demands and #food_demands will be always zero. Do you use a script which populates these names with IDs maybe?
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #47 on: November 16, 2018, 09:09:15 am »

Given that "normal" vermin body parts can appear, it might not be too surprising aquatic can appear as well. The output pasted also show Dwarven Cheese flagged incorrectly, as it's supposed to be possible to milk purring maggots.

If the "resident" flag means "cavern denizen", how do you determine if a non citizen is a resident (and not e.g. a visitor from your own civ)?

The plot and zone name matching are indeed based on other scripts I use, and shouldn't be used in scripts shared with others (unless the others are as well, as part of a package). I use one script for logging to spare useful trees and, in its latest version, set up gathering zones around them (I did that manually previously), and another one yearly to enable/disable farm plots and zones to attempt to keep a desired booze supply. The script names plots after what's planted on them by the player and uses the name to find fallow plots allocated to a given crop when it's time to plant again. However, it's tailored to my play style of trying to grew crops in spring (those that can't be planted in spring are allocated to the earliest possible season), harvest fruit in summer, catch up on all the hauling that's built up over the first half of the year, and R&R (and militia training) during winter.
Logged

Starver

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #48 on: November 16, 2018, 10:32:23 am »

Again, perhaps a reason to (internally) sandbox the possibility of an animal-type and only proceed to choose its component parts if it's sandbox-butcherable thing (if, as it might well be, DF is just making the assumption that they exist for everything it picks). You'd expect it to at least directly reference the raws (to make it sensitive to modding) to look for possible subtrees, but with my "pick something rare (yet possible)" scheme it does the spadework for the other circumstantials involved.

But, really, I was wanting to post about the image Dwarf with "LOVE" and "HAKE" tattooed on their knuckles.
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #49 on: November 16, 2018, 02:39:56 pm »

Given that "normal" vermin body parts can appear, it might not be too surprising aquatic can appear as well. The output pasted also show Dwarven Cheese flagged incorrectly, as it's supposed to be possible to milk purring maggots.

It's not surprising that it appears, what I find surprising is that it seems to be much rarer than the proper (whole) vermin, which supposedly is an artefact of the algorithm which determines the whole preference. I think it may run and choose whether a dwarf wants a vermin or a meat (or whatever), and if it wants meat, is just runs through all, including vermin. And maybe aquatic vermin are counted separately.

Ad for purring maggot, yes, that's how it shows. But I would love to see actual purring maggot and processing of it - maybe it is bugged in game, and the script shows truth?

Quote
If the "resident" flag means "cavern denizen", how do you determine if a non citizen is a resident (and not e.g. a visitor from your own civ)?

I just include your script with modifications I made (i.e. one with logging and with counting citizens and long-term residents). I use a function I made for other script. Similarly to isCitizen() function, it checks flags and conditions - it calls isCitizen() in the beginning, and only performs checks if false is returned. I assume that it is faster than rewriting the isCitizen() in Lua to account for the long-term residents, also it's easier to customize (for example it returns 3 for visitors and diplomats, but not merchants, since merchants don't use my taverns while diplomats do).

At the end the total sum of citizens and LTRs is shown, and it should be the same as number of people in the Citizen tab in "u"-screen. If it is different, then there's something wrong. I had to make this function for my scripts, because sometimes there are goblins or necromancers with visitor flags, and other irregularities. But the most important is determination of all guys in the Citizen tabs, since they do most stuff, like eating, drinking, clothes wearing etc.

Spoiler (click to show/hide)

Quote
The plot and zone name matching are indeed based on other scripts I use, and shouldn't be used in scripts shared with others (unless the others are as well, as part of a package). I use one script for logging to spare useful trees and, in its latest version, set up gathering zones around them (I did that manually previously), and another one yearly to enable/disable farm plots and zones to attempt to keep a desired booze supply. The script names plots after what's planted on them by the player and uses the name to find fallow plots allocated to a given crop when it's time to plant again. However, it's tailored to my play style of trying to grew crops in spring (those that can't be planted in spring are allocated to the earliest possible season), harvest fruit in summer, catch up on all the hauling that's built up over the first half of the year, and R&R (and militia training) during winter.

OK, clear then. I think I can modify it to look for plants in the structure of fields, at least. Anything, this part of the script is useful anyway, because it shows all these poor critters and their preferences as it is. And now I can log it, to maybe make some statistics if I do it for more forts, to satisfy my curiosity.

One thing about the too small items - this is probably more a warning that exact declaration, because bigger specimens could potentially bring these items (like dog's spleen or coyote's heart), right? My non available items now look like this. Very singular tastes, these dwarves have :)

Spoiler (click to show/hide)
« Last Edit: November 16, 2018, 03:52:15 pm by Saiko Kila »
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #50 on: November 17, 2018, 12:20:55 pm »

Purring maggots have the Underground Chasm biome, a.k.a. muddy cavern, so it might not be too surprising they're not found more frequently (I've never seen one as far as I know, but I don't look too carefully after vermin). If I read the raws correctly mog juice isn't alcoholic and is edible only if cooked, and I haven't found any other LIQUID MISC preferences that cannot be "eaten" (i.e. drunk) raw. Apart from vermin butchering, I don't think there's any relation between butcherability and creature extraction (such as mog juice and dwarven milk), and I don't think there should be any.

Creepy crawlers do not, in fact have the NOT_BUTCHERABLE tag, while all (?) other vermin do, so it ought to be legal for creepy crawler meat to be a preference as they're large enough to provide it.

I don't think DF should generate a preference for a body part that can only be obtained through butchering of the very largest specimens of a species (with necro bacon processing being the extreme of that), while I consider it reasonable to allow preferences for items that may be missing on smaller than standard members.

df.global.ui contains a number of useful fields, by the way (I don't know how far back those fields existed):
- civ_id = you civ entity id
- site_id = fortress site id
- group_id = fortress entity id
- race_id = civ race

Edit: An attempt to make a script that fixes food need bugs (but does NOT do anything to address "unreasonable", but technically possible, preferences). Note that it's been tested very little, and as it changes preferences, I'd try it on a freshly loaded save that can be discarded.
Spoiler (click to show/hide)

The script replaces vermin parts with the whole vermin, unobtainable butchery products with muscle (which is checked that it should be possible to obtain), and otherwise replaces unavailable drinks with a random possible one, and unavailable food with a random possible one.
« Last Edit: November 17, 2018, 01:54:44 pm by PatrikLundell »
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #51 on: November 17, 2018, 05:36:39 pm »

I'd look at it when I have time tomorrow (since it would be 7th version I'd need to to modify for my fortress :) ) but there's one bug I noticed earlier: the thresholds for animal size are one order of magnitude too high. This is reason why things like wolf's spleen is tagged as "too small". The thresholds are apparently in grams (the same as in real RAWs, for example 40000 for wolf's adult size), while the raw structure in dfhack uses decagrams (the same as in-game displayed size for traps, or body size in unit structures, for example 4000 for wolf). So line
Code: [Select]
          if min_butcher_size [material.material.id] > material.creature.adultsize thenshould be
Code: [Select]
          if min_butcher_size [material.material.id] > material.creature.adultsize*10 thento account for that.
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #52 on: November 18, 2018, 03:33:43 am »

Thanks. I'll adjust the size structure rather than try to hunt down the usages, though.

I've updated the booze_cooker script:
- It now covers residents as well as citizens
- All food item slots are populated, not just the last ("booze") one. The logic tries to select cookable items that exist in the fortress, excluding STRUCTURAL plants unless they yield fruit (because the structure is what produces seeds and everything else). Seeds are permitted to be cooked only if there are at least 50 of them or they're from trees.
- An attempt at a "just in time" cooking order is used, so the script adds up to 3 cooking jobs (it seems you can't actually do more than at most 2 in a week).
- Very limited testing. It's likely some things don't work as intended. I offer only the money (0) back, but don't accept damages!
Spoiler (click to show/hide)
« Last Edit: November 20, 2018, 07:32:11 am by PatrikLundell »
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #53 on: November 20, 2018, 06:25:42 pm »

Regarding the first script, the one http://www.bay12forums.com/smf/index.php?topic=172335.msg7888383#msg7888383
I've spent more time with testing it. First technical, the script is a quote not a "code", needs to be copied, and since some lines are too long for my web browserI had to edit it to prevent related errors. Not a big deal if someone knows Lua commenting style, but there it is. Second technical was I had to change
Spoiler (click to show/hide)
because new_str is treated as userdata data type, not as a string and it throws an error.
Third technical was I had to change lines
Spoiler (click to show/hide)
I suppose this is how it was intended, but I note it in case it causes some funny things.

Now about the workings, the actual working and changes to dwarves. During first pass it caused some changes, for instance
  IMPOSSIBLE bumblebee mead [bumblebee]
  to
  dwarven milk [purring maggot]
You may say that it's changing something impossible to something theoretically possible, so it's theoretically fine, but it also does change alcohol into non-alcohol. Now I don't know if it at all matters to the dwarf to have one alcohol, but sans the one hillock generated imigrant (which was created by the game de novo, like seven initital dwarves) all people do have one alcohol preference, and sometimes (often, I would say) it's the only food preference they have. So I think it would be good after change to still have one alcohol (or two).

Another change was
  TOO SMALL desert tortoise gizzard tissue [desert tortoise]
  to
  donkey stomach tissue [donkey]
which was OK, but after I ran the script second time (because there were still two impossible foods) this happened
  donkey stomach tissue [donkey]
  to
  giant slug liver tissue
Hm. Only reason I can think of is some residual cache of Lua, a problem which I also run into sometimes with my scripts, when they can reuse a variable between different runs (instead of having it reinitialised/cleared). So in this cases the variable needs to be cleared explicitly or something. Not that big deal overall, but something which can surprise an user.

However, third weird change I noticed was harder to explain:
  cow cheese [cow]
  to
  UNAVAILABLE roc muscle [roc]
It was on the first run. This was changed again in the second run:
  UNAVAILABLE roc muscle [roc]
  to
  hippo heart tissue
Which is OK. But why change the perfectly fine cheese to roc meat in the first place?

There was similar issue with other dwarf:
  penguin muscle [penguin]
  to
  UNAVAILABLE giant damselfly stomach tissue [giant damselfly]
which in second run was repaired with this change:
  UNAVAILABLE giant damselfly stomach tissue [giant damselfly]
  to
  giant hedgehog pancreatic tissue
There were of course many other changes (I ran it on fortress of 160 people), but these struck me as somewhat strange. You may keep an eye on cases like this.

----------

Regarding the second script, the booze cooker, this is first time I ran it, so I didn't fully know what to expect. First a technical: it throws an error (or rather warning) of "take_stock encountered unexpected LIQUID_MISC material mode: inorganic          0       33", which is caused by milk of lime. I added lines         
Code: [Select]
elseif i == "liquid_misc" and
               material.mode == "inorganic" then
in appropriate place, and the error disappeared.
      
            
As for the working, it seems it is working. I'm not quite accustomed to reading scripts of other people, this is the third dfhack script I read (other than mine own), so I don't fully understand what it is doing yet, but apart from one error once (it was expecting integer in line "job.job_items [l].item_type = df.item_type [vector [categor_iterator]]", I don't know why it wasn't getting an integer), it creates up to three jobs per kitchen, with seemingly preference for powder (flour) in the first three, but maybe it's because they are the freshest thing.
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #54 on: November 21, 2018, 03:55:22 am »

Thanks for the testing. I'll try to understand what's happening and fix the problems.

The booze cooker script is set up to generate a callback every 7 days, at which time it tries to fill each kitchen queue up to 3 lavish meal orders. The reason you get flour in the first 3 spots is because of how the script tries to allocate resources. The take_stock function collects what's available at every callback, while an iterator group of 3 variables iterates over all items deemed suitable for filling out meals. This iteration starts with the first category you have in your fortress, which seems to be powder_misc, and allocates one item to each of the first 3 slots (they should all be different flours). When all powder_misc entries have been sampled, it moves over to the next category to take one of each of those. Note that the iteration is a rather convoluted construction because it's intended to iterate over the whole stock over several iterations, taking into account that the stock will change between the callbacks. This means that the next week you may get more flour containing roasts, while the week after you'll get one with the last kinds of flour, and the rest taken from the next category (whichever that is). If it works as intended, it should eventually return back to powders again when all items have been sampled.

Edit: I've updated the fix_food_needs script:
Spoiler (click to show/hide)

I think my mistake of adding quote rather than code is what caused the indices to go missing (I think the board tries to create a bullet list, or something like that), as they weren't missing in my version (and the index should be "i" in both cases, which might be responsible for some of the weird things you saw (and when I tried this with brackets rather than quotes in this paragraph, the preview shows my subsequent text in italics, so that's probably what it did)).

- I've changed the drinks replacement to ensure booze is replaced with booze.
- I've added setting of item_type and item_subtype on the preferences: the combination of "PLANT" and hippo brain is not a valid one. I didn't see any effect from subtype, but it ought to be provided correctly anyway.
- I wasn't able to replicate any of the weirdness seen. In particular, I modded my first dorf to have the first food preference set to cow cheese, and the script did not try to replace it. Also, I've never seen replacements when the script has been run a second time.
- I've split the longest lines.
- I've added tostring () where indicated, although I've never seen any problem without it (and I don't see any problem with it either, so adding it doesn't seem to cause any trouble).

« Last Edit: November 21, 2018, 07:27:13 am by PatrikLundell »
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #55 on: November 21, 2018, 08:01:36 am »

Allright, I'll try with changes. Also I removed a follow up answer,  where I've seen such things like replacing cow, pig, alpaca and sheep milk and cheese (but not from other animals), and also one instance of replacing available milk with unavailable booze. But this was with this flawed copy of your script, so maybe it was caused by these "printing errors".

OK, I've found an issue, but it is very rare. Sometimes I need a few thousand dwarves to run before it happens. It terminates the script with "attempt to index a number value (field '?')", which always happens in one of
Code: [Select]
preference.item_subtype = edible [rng_number].subtype lines. There are some of these, and I had the error in three of them. Last time it was when trying to replace something with phantom spider, and it was when "Replacing unbutcherable".
« Last Edit: November 21, 2018, 09:30:04 am by Saiko Kila »
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #56 on: November 21, 2018, 01:28:53 pm »

Ah, bugger. The "preference.item_type = edible [rng_number].subtype" entries where the script has just checked that "edible [rng_number]" is a number rather than a struct will blow up when used as if it was a struct, of course... There are 3 of those.
The element is a number when it references a vermin animal (which may be a fish).
I don't think the field is used in that case, and that it probably ought to be set to -1 (which I haven't done below).

Corrected script:

Spoiler (click to show/hide)
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #57 on: November 22, 2018, 06:12:04 am »

It seems it works in newer games. But I have issue in older games, imported from v0.40.06 (but run in 0.44.12). It gives an error "attempt to index a nil value (global 'mat')" in line
Code: [Select]
old_str =  mat.material.prefix .. " " .. mat.material.state_name.Solid Is this "mat" declared at all?

Also regarding the changes: one of them was logged as:
Replacing unavailable bumblebee royal jelly with one-humped camel's milk on `MERC Hode /' Siegeplunged
However, the milk is actually from one-humped camel man... :)

I was also thinking more generally about replacements like of worm's gut by gut, or fly's brain by fly. Are creatures like these available as food normally in any way? I mean a dwarf can eat them if very hungry and has no other choice I believe (and has to catch them, and the mood change is probably negative), but how to make him eat them under normal circumstances? They can't be butchered, they can't be used as a part of roast, I don't think they can't be obtained other than by trade - but I'm not sure if it's in the form allowing eating (the are live).

I think that only aquatic vermin are obtained in a way allowing eating them (either from trade or from fishing, after preparing)? The only others are maybe purring maggots, moghoppers and various spiders, which are killed after extraction, but I don't remember last time I saw it, so don't know if they are edible (in the same state as prepared vermin fish), or just remains to be thrown away.
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: What is a "decent meal"?
« Reply #58 on: November 22, 2018, 10:02:19 am »

The "mat" is an error: it should be "old_mat". There's another bug in the vicinity, however, causing the no part branch above to be incorrect as well.

Dorfs eat eggs from animal people, so why not milk/cheese? ;) However, I agree that ought to be changed.

Vermin can be caught in vermin traps, and DF obviously generate preferences for eating vermin, but I haven't seen or heard of anyone catching and eating them except to stave off starvation. I don't know if dorfs with a preference for vermin can actually eat trapped vermin, though. If a dorf caught vermin to eat for a preference it shouldn't generate a bad thought though, as the dorf isn't forced to eat vermin.
The only vermin I know can be eaten "normally" is creepy crawler, which apparently can be slaughtered after being caught. I would expect that the non "fish" vermin that can be processed in other ways wouldn't leave any edible results, but I have never processed any.

I looked into the one humped camel man milk issue, and found it's common to all animal people that yield milk and cheese, namely that the product is named after the base creature, not the man variant. The bug tracker is unavailable at the moment, but I'll write a bug report later.

I tried to get the script to replace vermin, but ran into an unexpected problem: Not all the vermin fish that are edible according to the wiki Vermin page have the VERMIN_FISH flag set. The set of any_vermin and CASTE_MUST_BREATH_WATER includes Moon Snail but excludes Lungfish and Pond Turtle.
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: What is a "decent meal"?
« Reply #59 on: November 22, 2018, 03:08:42 pm »

The "mat" is an error: it should be "old_mat". There's another bug in the vicinity, however, causing the no part branch above to be incorrect as well.

Right.

Quote
Dorfs eat eggs from animal people, so why not milk/cheese? ;) However, I agree that ought to be changed.

Because it's gross ;) No, seriously I was more concerned that the item is described as camel's milk, but also because I don't see it can be obtained in any
meaningful way.

Quote
Vermin can be caught in vermin traps, and DF obviously generate preferences for eating vermin, but I haven't seen or heard of anyone catching and eating them except to stave off starvation. I don't know if dorfs with a preference for vermin can actually eat trapped vermin, though. If a dorf caught vermin to eat for a preference it shouldn't generate a bad thought though, as the dorf isn't forced to eat vermin.

There are vermin which can't be caught in traps, at least not in baited ones (there's a tag for it), and since some are in places not accessible to animal trappers, I think that these can't be really caught. An being non-fish, can't be bought.

Quote
The only vermin I know can be eaten "normally" is creepy crawler, which apparently can be slaughtered after being caught. I would expect that the non "fish" vermin that can be processed in other ways wouldn't leave any edible results, but I have never processed any.

I wonder what causes it. Maybe because it has no [NOT_BUTCHERABLE] tag.

Quote
I looked into the one humped camel man milk issue, and found it's common to all animal people that yield milk and cheese, namely that the product is named after the base creature, not the man variant. The bug tracker is unavailable at the moment, but I'll write a bug report later.

I noticed after changes that I had three dwarves with three different one-humped camel milk requirements. One of these was normal, another was from giant version, and third was from animal man, despite the same name. Talk about fussy eaters.

Quote
I tried to get the script to replace vermin, but ran into an unexpected problem: Not all the vermin fish that are edible according to the wiki Vermin page have the VERMIN_FISH flag set. The set of any_vermin and CASTE_MUST_BREATH_WATER includes Moon Snail but excludes Lungfish and Pond Turtle.

It think the [FISHITEM] is what causes vermin to be available both in stocks category (as fish), and in trade. It is available in caste flags, I'm not sure if also in general race flags. Since this tag is related specifically to their edibility, I would say it is a good choice for tests. Quite possible it's also the tag which creates this general (no specific part) food preference in the dwarves.
Logged
Pages: 1 2 3 [4] 5 6