Is it possible to make NPCs attack and fire projectiles?
not with NPC's per se, but using character movement commands you can make a player do these actions.
disable a player (use player 2 if you can), remove the npc and spawn the player in this place (you can't replace an NPC with a player, so make use of invinsible spawn blocks).
co op = true
disable player 2
destroy npc [NPC ID]
create player 2, [spawn ID]
for player 2
change character = [NPC ID]
I'm not sure if this works well at all, but you could give it a shot.