Ah, good! I was hoping I'd see more activity on this at some point.
EDIT: Bloop, got a tiny glitch. When my dragon power ran out, I guess I was still holding Fire, and got the error, "Jump target 'DragonStageCount' not found in Brawl".
I guess the command for A_Refire("DragonStageCount") was still trying to execute as the weapon was powering down, and I know the un-powered version doesn't have the DragonStageCount state. I guess a possible fix could be to put a dummy DragonStageCount state in Brawl that just redirects to one of the other states, to clear the warning message?
Also, this one is really not very important, but... in most cases, I'd suggest moving the playerclass declaration to MAPINFO, to ensure flexibility in the future. KEYCONF's methods cause problems when trying to pair and combine multiple projects. I think the KEYCONF method is required for Zandronum because of how disgustingly out of date that is, but this project doesn't run in that port anyway. Anyhow, just some food for thought.
EDIT #2: I've taken the liberty of fixing the warning with the dragon fists. I also went ahead and moved playerclasses to MAPINFO, and gave all the weapons some code cleanup. Now the guns should all automatically put themselves away when out of ammo (no more sifting through empty guns in a hurry!), and holding Reload on a full gun won't make it freeze in your hands.
Give it a try, if you please, and if I missed anything important, or made a mistake and broke something, let me know and I'll get right on it.