+void Vore_AutoTaunt()\r
+{\r
+ // triggers ambient vore taunts, for both pred and prey\r
+\r
+ float taunt_time;\r
+\r
+ // predator taunts\r
+ if(self.stomach_load && !Stomach_TeamMates_check(self))\r
+ {\r
+ if(!self.taunt_soundtime) // taunt_soundtime becomes 0 once the taunt has played\r
+ {\r
+ taunt_time = random() * (cvar("sv_vore_autotaunt_repeat_max") - cvar("sv_vore_autotaunt_repeat_min")) + cvar("sv_vore_autotaunt_repeat_min");\r
+ SetAutoTaunt(self, time + taunt_time, TAUNTTYPE_VOREPRED);\r
+ }\r
+ }\r
+ else if(self.taunt_soundtype == TAUNTTYPE_VOREPRED)\r
+ {\r
+ // we have a predator taunt scheduled, but are no longer a (suitable) predator, so remove it\r
+ SetAutoTaunt(self, 0, 0);\r
+ }\r
+\r
+ // prey taunts\r
+ if(self.stat_eaten && !(teams_matter && self.team == self.predator.team))\r
+ {\r
+ if(!self.taunt_soundtime) // taunt_soundtime becomes 0 once the taunt has played\r
+ {\r
+ taunt_time = random() * (cvar("sv_vore_autotaunt_repeat_max") - cvar("sv_vore_autotaunt_repeat_min")) + cvar("sv_vore_autotaunt_repeat_min");\r
+ SetAutoTaunt(self, time + taunt_time, TAUNTTYPE_VOREPREY);\r
+ }\r
+ }\r
+ else if(self.taunt_soundtype == TAUNTTYPE_VOREPREY)\r
+ {\r
+ // we have a prey taunt scheduled, but are no longer a (suitable) prey, so remove it\r
+ SetAutoTaunt(self, 0, 0);\r
+ }\r
+}\r
+\r
+void Vore_SetSbarRings()\r
+{\r
+ if(self.action_delay > time)\r
+ {\r
+ self.stat_sbring1_type = 1; // ring shows vore action delay\r
+ self.stat_sbring1_clip = bound(0, (time / self.action_delay - 1) / ((self.action_delay - cvar("g_balance_vore_action_delay")) / self.action_delay - 1), 1);\r
+ }\r
+ else\r
+ {\r
+ self.stat_sbring1_type = 0;\r
+ self.stat_sbring1_clip = 0;\r
+ }\r
+}\r
+\r