The officers who confronted an alleged gunman during a mass shooting in a packed Virginia Beach municipal building helped prevent even more bloodshed.
Twelve people were shot to death and four others were injured in Friday's rampage, allegedly carried out by a disgruntled employee.
(MORE: Virginia Beach mass shooting victims named in emotional news conference)
But officials praised the responding officers who engaged the alleged shooter, DeWayne Craddock, 40, in a "long-term, large gunfight."
"There is one thing that is most evident that has come about: We in Virginia Beach are a city of heroes," Virginia Beach Mayor Bobby Dwyer said at a news conference Saturday afternoon. "We have heroes with our military. We have many members of our public that help and save lives. But most of all, let me commend the officers, the people that ran into a building with an active shooter shooting .45-caliber bullets and saved many people without doubt, question or reservation."
Virginia Beach Police Chief James Cervera said his officers held an active shooter drill on March 30, but all the drills could never prepare them for what unfolded on Friday.
"It is the most emotional event that one can ever go through," Cervera said. "While we train extensively, while we go over all our protocols extensively, once you enter an environment such as this, everything changes. Things change at a moment's notice."
Officers had to make instantaneous decisions.
Police say Craddock entered Building 2 in the Municipal Center at about 4 p.m. Friday and began shooting people "indiscriminately." City manager Dave Hansen said Craddock, an engineer with the city for 15 years, was able to enter offices and conference rooms within the public building with a security pass.
It was unclear how many people were in Building 2 when the mass shooting occurred, but officials said about 400 people work there on any given day.
Once inside the four-story building, Craddock, armed with two .45-caliber pistols, went to different floors shooting anyone who came into his sight, police said.
"Once he engaged in this activity, it just continued throughout the building," Cervera said.
Officers responded within minutes and then exchanged gunfire with Craddock, Cervera said.
"Once they identified him and he identified them, he immediately opened fire," the chief said of Craddock. "We immediately returned the fire."
The gunfight, which Cervera described as a "long-running gun battle" -- lasted just under 30 minutes, the chief said.
"This is not what is traditionally a police-involved shooting," he added. "This was a long-term, large gunfight."
One of the officers was shot, but was saved by his bullet-proof vest, officials said.
Before officers shot Craddock to death, he had allegedly killed 11 city workers and a private contractor and wounded four others. The responding emergency teams were faced with a "horrific crime scene," Cervera said.
"This is a large-scale crime scene," he said Saturday. "It takes not only a physical but an emotional and psychological toll on everyone who spent the night in that building.
"I can't speak enough about the courage of police and forensics are showing in that building with the carnage that exists there," he said. "They are performing admirably."
The responding officers handled the crime scene where their fellow city employees were killed with "compassion," Cervera said.
Hansen said honor guard officers from the city's police and fire departments would work as liaisons with the victims' families.
"We're going to wrap our arms around the families," he said Saturday.
The shooting could have been worse had it not been for the officers' quick response, Cervera added.
"Officers had to make instantaneous decisions," the chief said of his crew. "They did it miraculously because...they did save other lives."