function WeaponRuntimeData.New(N,C)local D={}setmetatable(D,WeaponRuntimeData)D.weaponDefinition=N D.character=C D.recoilSimulator=RecoilSimulator.New(D)D.spreadSimulator=SpreadSimulator.New(D)D.currentAmmo=D.weaponDefinition:GetMaxAmmo()return D end
-- 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
