Makes digestion efficiency affect vore mechanics

Per #Dev-Suggestions request
This commit is contained in:
Runa Dacino
2022-09-04 01:51:40 +02:00
parent b9fbef4f0b
commit e4df086837
6 changed files with 20 additions and 11 deletions
@@ -63,9 +63,9 @@ GLOBAL_LIST_INIT(digest_modes, list())
var/mob/living/silicon/robot/R = B.owner
R.cell.charge += 25 * damage_gain
if(offset) // If any different than default weight, multiply the % of offset.
B.owner.adjust_nutrition(offset*(4.5 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()) //4.5 nutrition points per health point. Normal same size 100+100 health prey with average weight would give 900 points if the digestion was instant. With all the size/weight offset taxes plus over time oxyloss+hunger taxes deducted with non-instant digestion, this should be enough to not leave the pred starved.
B.owner.adjust_nutrition(offset*(4.5 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()*B.owner.get_digestion_efficiency_modifier()) //4.5 nutrition points per health point. Normal same size 100+100 health prey with average weight would give 900 points if the digestion was instant. With all the size/weight offset taxes plus over time oxyloss+hunger taxes deducted with non-instant digestion, this should be enough to not leave the pred starved.
else
B.owner.adjust_nutrition((4.5 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier())
B.owner.adjust_nutrition((4.5 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()*B.owner.get_digestion_efficiency_modifier())
if(L.stat != oldstat)
return list("to_update" = TRUE)
+2 -1
View File
@@ -291,6 +291,7 @@
GLOB.prey_digested_roundstat++
var/personal_nutrition_modifier = M.get_digestion_nutrition_modifier()
var/pred_digestion_efficiency = owner.get_digestion_efficiency_modifier()
if((mode_flags & DM_FLAG_LEAVEREMAINS) && M.digest_leave_remains)
handle_remains_leaving(M)
@@ -301,7 +302,7 @@
var/mob/living/silicon/robot/R = owner
R.cell.charge += (nutrition_percent / 100) * compensation * 25 * personal_nutrition_modifier
else
owner.adjust_nutrition((nutrition_percent / 100) * compensation * 4.5 * personal_nutrition_modifier)
owner.adjust_nutrition((nutrition_percent / 100) * compensation * 4.5 * personal_nutrition_modifier * pred_digestion_efficiency)
/obj/belly/proc/steal_nutrition(mob/living/L)
if(L.nutrition >= 100)
+3
View File
@@ -727,6 +727,9 @@
/mob/living/proc/get_digestion_nutrition_modifier()
return 1
/mob/living/proc/get_digestion_efficiency_modifier()
return 1
/mob/living/proc/eat_trash()
set name = "Eat Trash"
set category = "Abilities"