// Predator bot behavior:
// --------------------------------
- // finding and swallowing a player
-
- // aim toward the nearest possible victim. The greater the skill, the quicker the aim
- // this only does the aiming, checking and swallowing is handled below
- entity head;
- head = findradius(self.origin, cvar("g_balance_vore_swallow_range"));
- while(head)
+ if(self.predator.classname != "player")
{
- if(Swallow_condition_check_bot(head))
- bot_aimdir(head.origin + head.view_ofs - self.origin - self.view_ofs, -1);
- head = head.chain;
- }
+ // finding and swallowing a player
- // now do the actual checking and swallowing
- entity prey;
- float randomtry, fear;
- float decide_pred_time, decide_prey_time;
-
- prey = Swallow_player_check();
- fear = 1;
-
- // check if we should run the Teamhealing AI rather than continuing with the normal vore AI
- Vore_AI_Teamheal(prey);
- if(self.status_teamhealing > 1) // if we are teamhealing, there's nothing to do from here on
- return;
-
- randomtry = random() * 10; // there are 10 bot skill steps
- if(prey.items & IT_STRENGTH) // avoid eating bots that have the Strenght powerup
- fear += cvar("bot_ai_vore_fear") * self.bot_vorefear;
- if(prey.items & IT_INVINCIBLE) // avoid eating bots that have the Invincible powerup
- fear += cvar("bot_ai_vore_fear") * self.bot_vorefear;
- fear += self.stomach_load; // the bigger our stomach, the less we want to put someone else in there
- decide_pred_time = cvar("bot_ai_vore_decide_pred") / skill / self.bot_vorethinkpred;
- decide_prey_time = cvar("bot_ai_vore_decide_prey") / skill / self.bot_vorethinkprey;
-
- if(time > self.decide_swallow)
- if(Swallow_condition_check_bot(prey))
- {
- // the greater the skill, the higher the chance bots will swallow someone each attempt
- if(skill / fear >= randomtry)
- if not(teams_matter && prey.team == self.team)
+ // aim toward the nearest possible victim. The greater the skill, the quicker the aim
+ // this only does the aiming, checking and swallowing is handled below
+ entity head;
+ head = findradius(self.origin, cvar("g_balance_vore_swallow_range"));
+ while(head)
{
- self.BUTTON_ATCK = TRUE; // swallow
- self.decide_pred = time + decide_pred_time; // time before the bot decides what to do with their prey
+ if(Swallow_condition_check_bot(head))
+ bot_aimdir(head.origin + head.view_ofs - self.origin - self.view_ofs, -1);
+ head = head.chain;
}
- self.decide_swallow = time + cvar("bot_ai_vore_decide_swallow"); // this is needed to take a proper decision, otherwise the code would execute each frame and return TRUE pretty soon
- }
- // deciding what to do with a victim:
+ // now do the actual checking and swallowing
+ entity prey;
+ float randomtry, fear;
+ float decide_pred_time, decide_prey_time;
+
+ prey = Swallow_player_check();
+ fear = 1;
+
+ // check if we should run the Teamhealing AI rather than continuing with the normal vore AI
+ Vore_AI_Teamheal(prey);
+ if(self.status_teamhealing > 1) // if we are teamhealing, there's nothing to do from here on
+ return;
+
+ randomtry = random() * 10; // there are 10 bot skill steps
+ if(prey.items & IT_STRENGTH) // avoid eating bots that have the Strenght powerup
+ fear += cvar("bot_ai_vore_fear") * self.bot_vorefear;
+ if(prey.items & IT_INVINCIBLE) // avoid eating bots that have the Invincible powerup
+ fear += cvar("bot_ai_vore_fear") * self.bot_vorefear;
+ fear += self.stomach_load; // the bigger our stomach, the less we want to put someone else in there
+ decide_pred_time = cvar("bot_ai_vore_decide_pred") / skill / self.bot_vorethinkpred;
+ decide_prey_time = cvar("bot_ai_vore_decide_prey") / skill / self.bot_vorethinkprey;
+
+ if(time > self.decide_swallow)
+ if(Swallow_condition_check_bot(prey))
+ {
+ // the greater the skill, the higher the chance bots will swallow someone each attempt
+ if(skill / fear >= randomtry)
+ if not(teams_matter && prey.team == self.team)
+ {
+ self.BUTTON_ATCK = TRUE; // swallow
+ self.decide_pred = time + decide_pred_time; // time before the bot decides what to do with their prey
+ }
+ self.decide_swallow = time + cvar("bot_ai_vore_decide_swallow"); // this is needed to take a proper decision, otherwise the code would execute each frame and return TRUE pretty soon
+ }
- if(self.stomach_load && time > self.decide_pred)
- {
- // if the predator's health is smaller than the maximum damage a stomach kick can do, regurgitate the player(s)
- // otherwise the predator is putting himself at risk by keeping you inside
- if(self.health <= cvar("g_balance_vore_kick_damage_max"))
- self.BUTTON_REGURGITATE = TRUE;
+ // deciding what to do with a victim:
- else if(!self.digesting)
+ if(self.stomach_load && time > self.decide_pred)
{
- // the higher the skill, the faster bots will start to digest you
- if not(g_rpg && cvar("g_rpg_botattack") < 2)
- if(skill >= randomtry)
- self.BUTTON_DIGEST = TRUE; // digest
+ // if the predator's health is smaller than the maximum damage a stomach kick can do, regurgitate the player(s)
+ // otherwise the predator is putting himself at risk by keeping you inside
+ if(self.health <= cvar("g_balance_vore_kick_damage_max"))
+ self.BUTTON_REGURGITATE = TRUE;
- self.decide_pred = time + decide_pred_time; // time before the bot decides what to do with their prey
+ else if(!self.digesting)
+ {
+ // the higher the skill, the faster bots will start to digest you
+ if not(g_rpg && cvar("g_rpg_botattack") < 2)
+ if(skill >= randomtry)
+ self.BUTTON_DIGEST = TRUE; // digest
+
+ self.decide_pred = time + decide_pred_time; // time before the bot decides what to do with their prey
+ }
}
}
// Prey bot behavior:
// --------------------------------
- // all we can do in the stomach is kick and do some damage / try to escape, or leave if the circumstances allow it and we should
-
if(self.predator.classname == "player" && time > self.decide_prey)
{
+ // all we can do in the stomach is kick and do some damage / try to escape, or leave if the circumstances allow it and we should
+
if not(g_rpg && cvar("g_rpg_botattack") < 2)
if not(teams_matter && self.team == self.predator.team)
{