+ {
+ self.colormod = color;
+ if(self.goalentity)
+ {
+ remove(self.goalentity);
+ self.goalentity = world;
+ }
+ }
+
+ if(self.goalentity)
+ self.enemy = world; // don't ignore our owner's commands
+
+ if(!self.sprite)
+ {
+ WaypointSprite_Spawn(self.netname, 0, 0, self, '0 0 1' * self.sprite_height, world, self.team, self, sprite, FALSE, RADARICON_DANGER, ((teamplay) ? TeamColor(self.team) : '1 0 0'));
+ WaypointSprite_UpdateMaxHealth(self.sprite, self.max_health);
+ WaypointSprite_UpdateHealth(self.sprite, self.health);
+ }
+
+ if(!self.selected)
+ if(self.owner)
+ if(!self.goalentity && !self.enemy)
+ self.owner = world;
+
+ if(self.enemy.team == self.team)
+ self.enemy = world; // no same team fighting
+
+ self.last_trace = time; // realtime moving?