Putting in 14 portions of unfermented vinegar (brew_vinegar) which is 1.75L turns into 0.22L vinegar. I don't know how the bewing process works but there is definitely a bug with the time. The current recipe for brew_vinegar is brewable with a ferment time of 7 hours (check the JSON). In game however, in the crafting menu it says it will brew for about 45 hours. If I change the ferment time in the JSON to 1 hour, in game it says the ferment time is 6 hours. The result is always tart white vinegar because it ferments too long according to the game, even if you remove it within 5 minutes of completing the fermentation.
item &brew_i = *items_here.begin();
// Does the vat contain unfermented brew, or already fermented booze?
// TODO: Allow "recursive brewing" to continue without player having to check on it
if( brew_i.is_brewable() ) {
add_msg( _( "There's a vat of %s set to ferment there." ), brew_i.tname() )
// TODO: change brew_time to return time_duration
const time_duration brew_time = brew_i.brewing_time();
const time_duration progress = brew_i.age();
if( progress < brew_time ) {
int hours = to_hours<int>( brew_time - progress );
if( hours < 1 ) {
add_msg( _( "It will finish brewing in less than an hour." ) );
} else {
add_msg( ngettext( "It will finish brewing in about %d hour.",
"It will finish brewing in about %d hours.",
hours ), hours );
}
return;
}
if( query_yn( _( "Finish brewing?" ) ) ) {
const auto results = brew_i.brewing_results();
g->m.i_clear( examp );
for( const auto &result : results ) {
// TODO: Different age based on settings
item booze( result, brew_i.birthday(), brew_i.charges );
g->m.add_item( examp, booze );
if( booze.made_of_from_type( LIQUID ) ) {
add_msg( _( "The %s is now ready for bottling." ), booze.tname() );
}
}
p.moves -= to_moves<int>( 5_seconds );
p.practice( skill_cooking, std::min( to_minutes<int>( brew_time ) / 10, 100 ) );
}
return;
} else {
add_msg( _( "There's a vat of fermented %s there." ), brew_i.tname() );
}
The issue is somewhere in this code, in iexamine.cpp is my guess. Anyone know how to fix it?
Steps To Reproduce
Edit Json of brew_vinegar to brew for 1 hour
Look up recipe in game
Observe it will tell you 'will ferment for 6 hours'
Expected behavior
If I say 1 hour in json I expect it to be 1 hour in game.
Screenshots
Versions and configuration
OS: Windows
OS Version: MINGW/CYGWIN/MSYS2 on unknown Windows version
Game Version: 0.D-8100-g334b20b [64-bit]
Graphics Version: Tiles
Mods loaded: [
Dark Days Ahead [dda],
Disable NPC Needs [no_npc_food]
]
Additional context
Mad it as a seperate issue but fixing this might fix #30298
Describe the bug
Putting in 14 portions of unfermented vinegar (brew_vinegar) which is 1.75L turns into 0.22L vinegar. I don't know how the bewing process works but there is definitely a bug with the time. The current recipe for brew_vinegar is brewable with a ferment time of 7 hours (check the JSON). In game however, in the crafting menu it says it will brew for about 45 hours. If I change the ferment time in the JSON to 1 hour, in game it says the ferment time is 6 hours. The result is always tart white vinegar because it ferments too long according to the game, even if you remove it within 5 minutes of completing the fermentation.
The issue is somewhere in this code, in iexamine.cpp is my guess. Anyone know how to fix it?
Steps To Reproduce
Expected behavior
If I say 1 hour in json I expect it to be 1 hour in game.
Screenshots
Versions and configuration
Additional context
Mad it as a seperate issue but fixing this might fix #30298