protected override void ServerUpdateMob(ServerUpdateData data) { var character = data.GameObject; ServerCharacterAiHelper.ProcessAggressiveAi( character, targetCharacter: ServerCharacterAiHelper.GetClosestTargetPlayer(character), isRetreating: false, isRetreatingForHeavyVehicles: this.AiIsRunAwayFromHeavyVehicles, distanceRetreat: 0, distanceEnemyTooClose: 1, distanceEnemyTooFar: 10, movementDirection: out var movementDirection, rotationAngleRad: out var rotationAngleRad); this.ServerSetMobInput(character, movementDirection, rotationAngleRad); }
protected override void ServerUpdateMob(ServerUpdateData data) { var character = data.GameObject; var currentStats = data.PublicState.CurrentStats; ServerCharacterAiHelper.ProcessAggressiveAi( character, targetCharacter: ServerCharacterAiHelper.GetClosestTargetPlayer(character), isRetreating: currentStats.HealthCurrent < currentStats.HealthMax / 3, isRetreatingForHeavyVehicles: this.AiIsRunAwayFromHeavyVehicles, distanceRetreat: 7, distanceEnemyTooClose: 1, distanceEnemyTooFar: 4.5, movementDirection: out var movementDirection, rotationAngleRad: out var rotationAngleRad); this.ServerSetMobInput(character, movementDirection, rotationAngleRad); }