\r
if(!cvar("g_vore_digestion") || e.digesting)\r
return;\r
- if(clienttype(e) != CLIENTTYPE_REAL)\r
- return; // this feature is only for players, not bots\r
+ if(g_rpg)\r
+ return; // RPG is choice based, so don't do things automatically there\r
if(e.stomach_load)\r
return; // don't start digestion if we already ate someone, as that means we manually disabled it after the first prey and want it off\r
+ if(clienttype(e) != CLIENTTYPE_REAL)\r
+ return; // this feature is only for players, not bots\r
if(Stomach_TeamMates_check(e))\r
return; // never begin automatic digestion if we've swallowed a team mate\r
\r
self.stomach_load = final_load;\r
\r
// apply weight\r
- self.gravity = 1 + (self.stomach_load / self.stomach_maxload) * cvar("g_balance_vore_load_pred_weight");\r
+ self.gravity = 1 * (cvar("g_healthsize") ? pow(self.scale, cvar("g_healthsize_weight")) : 1) + (self.stomach_load / self.stomach_maxload) * cvar("g_balance_vore_load_pred_weight");\r
if(!self.gravity && self.stomach_load)\r
self.gravity = 0.00001; // 0 becomes 1 for gravity, so do this to allow 0 gravity\r
}\r
// apply velocities\r
makevectors(e.predator.v_angle);\r
e.velocity = v_forward * cvar("g_balance_vore_regurgitate_force") * scalediff;\r
- e.predator.velocity = e.predator.velocity + (-v_forward * cvar("g_balance_vore_regurgitate_predatorforce") * scalediff); // don't use += here to avoid a fteqcc bug\r
+ e.predator.velocity += -v_forward * cvar("g_balance_vore_regurgitate_predatorforce") * scalediff;\r
e.pusher = e.predator; // allows us to frag players by regurgitating them in deadly pits\r
e.pushltime = time + cvar("g_maxpushtime");\r
\r
e.predator = world;\r
}\r
\r
-void Vore_Disconnect()\r
+void Vore_Disconnect(float consumables)\r
{\r
// frees prey from their predators when someone disconnects or goes spectating, or in other circumstances\r
entity e;\r
Vore_Regurgitate(head);\r
}\r
// remove consumable items when we disconnect\r
- for(e = world; (e = find(e, classname, "consumable")); )\r
+ if(consumables)\r
{\r
- if(e.predator == self)\r
- Item_Consumable_Remove(e, TRUE);\r
+ for(e = world; (e = find(e, classname, "consumable")); )\r
+ {\r
+ if(e.predator == self)\r
+ Item_Consumable_Remove(e, TRUE);\r
+ }\r
}\r
\r
self.stomach_load = self.gravity = 0; // prevents a bug\r
// apply delays and skip the vore system under some circumstances\r
if(!cvar("g_vore")) // the vore system is disabled\r
{\r
- Vore_Disconnect();\r
+ Vore_Disconnect(TRUE);\r
return;\r
}\r
if(time < game_starttime || (time < warmup && !inWarmupStage)) // don't allow vore before a round begins\r
{\r
- Vore_Disconnect();\r
+ Vore_Disconnect(FALSE);\r
return;\r
}\r
if(self.spectatee_status)\r