summaryrefslogtreecommitdiff
path: root/0006-npcs-eat-when-hungry.patch
diff options
context:
space:
mode:
Diffstat (limited to '0006-npcs-eat-when-hungry.patch')
-rw-r--r--0006-npcs-eat-when-hungry.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/0006-npcs-eat-when-hungry.patch b/0006-npcs-eat-when-hungry.patch
new file mode 100644
index 0000000..2074bef
--- /dev/null
+++ b/0006-npcs-eat-when-hungry.patch
@@ -0,0 +1,30 @@
+--- a/src/npcmove.cpp
++++ b/src/npcmove.cpp
+@@ -1829,7 +1829,9 @@
+ }
+
+ if( one_in( 3 ) && ( get_thirst() > 40 ||
+- get_stored_kcal() + stomach.get_calories() < get_healthy_kcal() * 0.95 ) ) {
++ get_stored_kcal() + stomach.get_calories() < get_healthy_kcal() * 0.95 ||
++ ( get_hunger() > 160 &&
++ ( get_stored_kcal() + stomach.get_calories() < get_healthy_kcal() ) ) ) ) {
+ if( consume_food_from_camp() ) {
+ return npc_noop;
+ }
+@@ -3697,12 +3699,15 @@
+ return true;
+ }
+ faction *yours = g->u.get_faction();
+- int camp_kcals = std::min( std::max( 0, 19 * get_healthy_kcal() / 20 - get_stored_kcal() -
++ int camp_kcals = std::min( std::max( 0, get_healthy_kcal() - get_stored_kcal() -
+ stomach.get_calories() ), yours->food_supply );
+ if( camp_kcals > 0 ) {
+ mod_hunger( -camp_kcals );
+ mod_stored_kcal( camp_kcals );
+ yours->food_supply -= camp_kcals;
++ stomach.mod_calories( camp_kcals );
++ stomach.mod_contents( -2400_ml );
++ stomach.mod_contents( 1200_ml );
+ return true;
+ }
+ return false;