local M = {}

-- 尝试开火射击时调用
function M.shoot(api)
    -- 先从data文件中获取开火延迟数据，由于以毫秒为单位，因此将秒乘以1000转为毫秒
    local shoot_delay = api:getScriptParams().shoot_delay * 1000

    
    -- 某些版本可能没有 storeLockingTarget，直接 pcall 防止报错
    pcall(function()
        api:storeLockingTarget()
    end)

    -- 将执行射击的部分委托为一次性的延时任务，从而达到延迟开火的目的
    api:safeAsyncTask(function ()
        api:shootOnce(api:isShootingNeedConsumeAmmo())
        return false
    end,shoot_delay,0,1)
end

function M.calcSpread(api, ammoCnt, basicInaccuracy)
    math.randomseed(api:getCurrentTimestamp())
    local x = (math.random() - 0.5) * basicInaccuracy * 0.4
    return {x, 1}
end

return M