38 lines
794 B
Lua
38 lines
794 B
Lua
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
|