Dwarf Fortress Bug Tracker - Dwarf Fortress
View Issue Details
0008571Dwarf FortressDwarf Mode -- Tradepublic2014-11-21 06:452017-06-02 11:46
Quietust 
 
normalminorhave not tried
acknowledgedopen 
0.40.18 
 
0008571: Plant oil soap does not imply plant kill, can be safely traded to Elves
In previous versions of Dwarf Fortress (namely, 0.28.181.40d and earlier), soap implied both plant and animal kills due to the usage of Lye (made from wood) and Tallow (made from animals), and both of these could potentially sour trade negotiations (though since ethics were introduced, Elves stopped caring about animal kills).

As of version 0.31, however, soap is only flagged with [IMPLIES_ANIMAL_KILL] (which means vanilla elves won't mind trading it), and plant soap (introduced in 0.31.19) has no trade restrictions at all (so nobody will possibly be offended by it).

As of version 0.43.05, tallow soap is being handled properly (turns out it just checks for BARs made of any CREATURE_MAT or histfig material), but plant oil soap is definitely not being rejected as it should be.

Both plant and animal soap should probably be given a new [IMPLIES_PLANT_KILL] flag, along with the other wood-derived materials - charcoal, ash, lye, potash, and pearlash, but not coke (which may result in other difficulties, since coke and charcoal currently use the same material definition).
Intentional/Expected?
Issue History
2014-11-21 06:45QuietustNew Issue
2014-11-22 06:47ptb_ptbNote Added: 0031113
2014-11-24 07:06FootkerchiefTag Attached: Intentional/Expected?
2017-05-28 20:31QuietustNote Added: 0036571
2017-05-29 10:23chaosvoltNote Added: 0036572
2017-05-29 10:25chaosvoltNote Edited: 0036572bug_revision_view_page.php?bugnote_id=0036572#r14752
2017-05-29 10:46QuietustNote Added: 0036573
2017-05-29 14:55chaosvoltNote Added: 0036575
2017-06-01 16:35QuietustNote Added: 0036582
2017-06-01 17:45LociStatusnew => acknowledged
2017-06-01 17:45LociSummarySoap does not imply plant kill, can be safely traded to Elves => Plant oil soap does not imply plant kill, can be safely traded to Elves
2017-06-01 17:45LociDescription Updatedbug_revision_view_page.php?rev_id=14757#r14757
2017-06-02 11:46chaosvoltNote Added: 0036585
2017-06-08 18:39HuntthetrollIssue Monitored: Huntthetroll

Notes
(0031113)
ptb_ptb   
2014-11-22 06:47   
Haha, the dwarves simply haven't revealed the hideous truth of how soap is made. ;)
(0036571)
Quietust   
2017-05-28 20:31   
I've just checked version 0.43.05, and while I've discovered that tallow soap is being handled properly (turns out it just checks for BARs made of any CREATURE_MAT or histfig material), plant oil soap is definitely not being rejected as it should be.
(0036572)
chaosvolt   
2017-05-29 10:23   
(edited on: 2017-05-29 10:25)
Not a bug, elves don't react to cloth or plant food last I checked. It's WOOD they react to. Behavior is solely linked to the [WOOD] material definition token.

(0036573)
Quietust   
2017-05-29 10:46   
Wrong - Elves explicitly object to Ash (which is made by burning wood) as well as Lye, Potash, and Pearlash (which are made from Ash) and Tallow Soap (which is made from Lye).

Plant oil soap should still be rejected, not because it is plant-derived, but because it is still made using Lye.
(0036575)
chaosvolt   
2017-05-29 14:55   
Hmm. That sounds like hardcoded fuckery, yeah.

I was actually thinking about plant oil soap, I forgot that lye was the thing here.
(0036582)
Quietust   
2017-06-01 16:35   
In any event, the summary and description should probably be modified to say that only plant oil soap currently has this problem - I assumed that tallow soap was also affected, but the game apparently already had a special hardcoded check for it (which might be beneficial to replace with one linked to raws).
(0036585)
chaosvolt   
2017-06-02 11:46   
That likely confirms that there's a hardcoded check for the material tallow-based soap is made from, with no added check for plant soap since the check likely predates its addition.

Separating the "implies plant kill" from the [WOOD] token, and applying it to ash-derived materials (removing any hardcoded checks involved) would likely be the most efficient method.

This would also benefit modders if they're after making playable elves, via allowing wooden materials that lack this tag but still have full usability as wood.