}\r
\r
.float inithealth;\r
+.float item_digestion_step;\r
void Item_Consumable_Remove(entity e, float regurgitate);\r
void Item_Consumable_Think()\r
{\r
\r
if(self.predator.digesting)\r
{\r
- self.scale = self.health / self.inithealth; // scale matches the item's digestion progress\r
+ if(time > self.item_digestion_step)\r
+ {\r
+ // if distributed digestion is enabled, reduce digestion strength by the amount of prey in our stomach\r
+ float damage, damage_offset;\r
+\r
+ damage_offset = 1;\r
+ if(cvar("g_balance_vore_digestion_distribute")) // apply distributed digestion damage\r
+ damage_offset *= self.predator.stomach_load / self.predator.stomach_maxload;\r
+ damage_offset = ceil(damage_offset);\r
+ damage = cvar("g_balance_vore_digestion_damage_item") / damage_offset;\r
+\r
+ self.health -= damage;\r
+ self.predator.health += damage;\r
+ self.scale = self.health / self.inithealth; // scale matches the item's digestion progress\r
+ }\r
\r
if(stov(cvar_string("g_vore_regurgitatecolor_color_digest")))\r
self.colormod = stov(cvar_string("g_vore_regurgitatecolor_color_digest"));\r
+\r
+ self.item_digestion_step = time + vore_steptime;\r
}\r
\r
self.nextthink = time;\r