Things we know about your game:
- It's about shooting things.
- This is the main focus of the game, and it provides the challenge to test your player's skill.
- More specifically, it's about shooting things with the correct gun -- this provides a decision with a meaningful impact on the game.
- It's casual.
- Your players may not be mainstream gamers, and simplicity is usually preferred if possible.
- A casual audience may not be familiar with upgrade systems from other games, and would have to be taught how such a mechanic works.
- A casual audience expects a game to be playable in short sessions and to not waste their time on unneeded tasks.
Given the above, I would personally lean towards the simpler option where players choose which (if any) gun(s) to upgrade but do not have to choose specific components:
- Your players already have a meaningful choice during game-play, as they must select the correct weapon when shooting.
- Your players already have another meaningful choice in choosing to upgrade a certain weapon rather than another.
Just quickly on another matter; given the mechanics described, there currently isn't (or at least not that has been posted here) a reason not to upgrade any
weapon; I would consider giving the player interest (say 10-20%) on any money they don't spend, so that there is a benefit to choosing not to upgrade anything. This way a player who chooses not to upgrade has to face a more challenging round or two, but can afford more upgrades because of it.
I definitely see Menyo's point, and personally I love games with more depth and complexity to their mechanics if they're well balanced and I have the time to get in to them -- but I would suggest that gamers such as myself and Menyo simply aren't the casual target market specified in the OP.