Ranged Weapons

Ranged Weapons Summary
Ranged weapons in Commissar are a combination of a Wieldable, a Consumable and Projectile. The Wieldable maintains a reference to the Consumable and spawns a Projectile on use. Projectile instantiation logic is handled inside the Wieldable class, with the wieldable owner simply invoking the wieldable's use method. Upon use, a projectile is instantiated and an appropriate amount of consumabels are deducted from the wielder's inventory, by returning a "consumable consumed" count from the use method. Questions to answer:  How does the wieldable know how much of consumable the wielder has? When does the wieldable check how much of consumable the wielder has? How do I handle different consumables for a single wieldable? How do I handle different projectiles for a single wieldable?  Ranged Weapon reference diagram Ranged Weapon Usage Diagram