throwkeydown = 0;
}
- // friends follow player
- if (stunned < 1 &&
- isPlayerFriend() &&
- !Person::players[0]->dead &&
- distsq(&coords, &Person::players[0]->coords) > 5) {
- XYZ rotatetarget = Person::players[0]->coords + Person::players[0]->velocity;
- XYZ targetpoint = Person::players[0]->coords;
- velocity = (targetpoint - coords);
- velocity.y += 2;
- float vellength = findLength(&velocity);
- if (vellength != 0 &&
- distsq(&Person::players[0]->coords, &coords) < distsq(&rotatetarget, &coords)) {
- targetpoint += Person::players[0]->velocity *
- findDistance(&Person::players[0]->coords, &coords) / vellength;
- }
- targetyaw = roughDirectionTo(coords, targetpoint);
- lookyaw = targetyaw;
- forwardkeydown = 1;
- aitype = searchtype;
+ if (stunned < 1 && isPlayerFriend()) {
+ // friends follow player
+ if (!Person::players[0]->dead &&
+ distsq(&coords, &Person::players[0]->coords) > 5) {
+ XYZ rotatetarget = Person::players[0]->coords + Person::players[0]->velocity;
+ XYZ targetpoint = Person::players[0]->coords;
+ velocity = (targetpoint - coords);
+ velocity.y += 2;
+ float vellength = findLength(&velocity);
+ if (vellength != 0 &&
+ distsq(&Person::players[0]->coords, &coords) < distsq(&rotatetarget, &coords)) {
+ targetpoint += Person::players[0]->velocity *
+ findDistance(&Person::players[0]->coords, &coords) / vellength;
+ }
+ targetyaw = roughDirectionTo(coords, targetpoint);
+ lookyaw = targetyaw;
+ forwardkeydown = 1;
+ aitype = pathfindtype;
+ }
+
+ // friends help player with its enemies
+ if (Game::musictype == stream_fighttheme) {
+ aitype = attacktypecutoff;
+ }
}
XYZ facing;