void havocbot_goalrating_items(float ratingscale, vector org, float sradius)
{
- local entity head;
- local entity player;
- local float rating, d, discard, distance, friend_distance, enemy_distance;
+ entity head;
+ entity player;
+ float rating, d, discard, distance, friend_distance, enemy_distance;
vector o;
ratingscale = ratingscale * 0.0001; // items are rated around 10000 already
head = findchainfloat(bot_pickup, TRUE);
void havocbot_goalrating_controlpoints(float ratingscale, vector org, float sradius)
{
- local entity head;
+ entity head;
head = findchain(classname, "dom_controlpoint");
while (head)
{
void havocbot_goalrating_enemyplayers(float ratingscale, vector org, float sradius)
{
- local entity head;
- local float t, noteam, distance;
+ entity head;
+ float t, noteam, distance;
noteam = ((self.team == 0) || !teamplay); // fteqcc sucks
if (autocvar_bot_nofire)
continue;
}
+ // TODO: rate waypoints near the targetted player at that moment, instead of the player itself
+ // adding a player as a goal seems to be quite dangerous, especially on space maps
+ // remove hack in navigation_poptouchedgoals() after performing this change
+
t = (self.health + self.armorvalue ) / (head.health + head.armorvalue );
navigation_routerating(head, t * ratingscale, 2000);
}
havocbot_chooserole_ka();
else if (g_freezetag)
havocbot_chooserole_ft();
+ else if (g_assault)
+ havocbot_chooserole_ast();
else // assume anything else is deathmatch
havocbot_chooserole_dm();
};