Arms Dealer

The Arms Dealer is an NPC vendor that will spawn once the following criteria have been met:
 * There is an empty house.
 * You have acquired a gun (the gun must be in your Inventory, not just stored in a chest somewhere).
 * It works with ammunition like Musket Ball too, if you have it in your inventory.

The easiest gun to acquire for this purpose is the Musket, which can be obtained by destroying a Shadow Orb.

If the Arms Dealer is killed, he will only respawn if the above conditions are met again. This means you must place a Gun or ammunition in your inventory. Having them stored in Chests will not fulfill this requirement.

Once the Arms Dealer has moved into a house, he will sell the following:

Note: As with all NPCs, right-clicking an item will allow multiple purchases rather than purchasing it one by one.

Quotes
Only during a Blood Moon:
 * "Keep your hands off my gun, buddy!"
 * "Hey, this ain't a movie, pal. Ammo is extra."
 * "I see you're eyeballin' the Minishark... You really don't want to know how it was made."
 * "Don't bother with [Name of Demolitionist], I've got all you need right here." (Only if Demolitionist is present.)
 * "What's [Name of Demolitionist]'s problem? Does he even realize we sell completely different stuff?" (Only if Demolitionist is present.)
 * "Make it quick! I've got a date with [Name of Nurse] in an hour." (Only if Nurse is present.)
 * "I want what [Name of Nurse] is sellin'. What do you mean, she don't sell anything ?" (Only if Nurse is present.)
 * "[Name of Dryad] is a looker. Too bad she's such a prude." (Only if Dryad is present.)
 * "I heard there is a doll that looks very similar to [Name of Guide] somewhere in the underworld. I'd like to put a few rounds in it." (This will be the only message available if Skeletron is defeated, but Wall of Flesh is not. This can also be used to see the next Guide's name if the old guide is dead.)
 * "I love nights like tonight, there is never a shortage of things to kill"
 * "Man, it's a good night not to talk to anybody, don't you think, [Name of Player]?"