-- Given a weapon definition a weapons runtime data will be constructed.
-- Basic methods allow for managing of the weapons runtime data.
-- @param WeaponDefinition weaponDefinition
-- @param Model character
-- @return WeaponRuntimeData

function WeaponRuntimeData.New(weaponDefinition,character)
	local self = {}
	setmetatable(self,WeaponRuntimeData)
	
	self.weaponDefinition = weaponDefinition
	self.character = character
	self.recoilSimulator = RecoilSimulator.New(self)
	self.spreadSimulator = SpreadSimulator.New(self)
	
	-- Runtime Variables
	self.currentAmmo = self.weaponDefinition:GetMaxAmmo() -- Weapon starts out with max ammo

	return self
end
