local module = {} local limit = 4 local bullet = require(_G.Modules.BulletModule) function module.new(this,gun,context) this.barrel = _G.GetInstance(gun,"Barrel") this.binding = _G.GetInstance(gun,"Binding") this.rate = _G.GetValue(gun,"Rate",0.15) this.last = tick() end module.run = _G.Protect(function(this,gun,context) if (this.control or context.controls[this.binding.Value] or 0) < 0.5 then return true end if tick() - this.last < this.rate then return true end -- Fire bullet.fire(this.barrel) this.last = tick() this.barrel:ApplyImpulse(this.barrel.CFrame.RightVector * -500) return true end) module.fire_rate = 0.05 module.messages = { control = function(this,gun,context,value) this.control = value end, } module.manifest = { "Gun", "Cannon" } return module