mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 21:49:11 +01:00
Makes digestion efficiency affect vore mechanics
Per #Dev-Suggestions request
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user