You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
4.1 KiB
Lua
184 lines
4.1 KiB
Lua
local heroconf = require "heroconf"
|
|
require "functions"
|
|
|
|
--[[招募逻辑]]
|
|
local config = {
|
|
hong=1,
|
|
cheng=37,
|
|
zi=62,
|
|
}
|
|
|
|
|
|
local function getallhero()
|
|
local hong = {}
|
|
local cheng = {}
|
|
local zi = {}
|
|
for heroid, v in pairs(heroconf) do
|
|
heroid = math.floor(heroid)
|
|
if v.color == 3 then
|
|
table.insert(hong, heroid)
|
|
end
|
|
if v.color == 2 then
|
|
if v.sex == 2 then
|
|
if heroid == 313 or heroid == 210 then
|
|
table.insert(cheng, heroid)
|
|
end
|
|
else
|
|
table.insert(cheng, heroid)
|
|
end
|
|
end
|
|
if v.color == 1 and v.sex == 1 then
|
|
table.insert(zi, heroid)
|
|
end
|
|
end
|
|
for i=1,10 do
|
|
hong = table.shuffle(hong)
|
|
end
|
|
for i=1,10 do
|
|
cheng = table.shuffle(cheng)
|
|
end
|
|
for i=1,10 do
|
|
zi = table.shuffle(zi)
|
|
end
|
|
return hong, cheng, zi
|
|
end
|
|
|
|
|
|
local function gethonghero()
|
|
local hong = {}
|
|
for heroid, v in pairs(heroconf) do
|
|
heroid = math.floor(heroid)
|
|
if v.color == 3 then
|
|
table.insert(hong, heroid)
|
|
end
|
|
|
|
end
|
|
for i=1,10 do
|
|
hong = table.shuffle(hong)
|
|
end
|
|
return hong
|
|
end
|
|
|
|
local function getchenghero()
|
|
local cheng = {}
|
|
for heroid, v in pairs(heroconf) do
|
|
heroid = math.floor(heroid)
|
|
if v.color == 2 then
|
|
if v.sex == 2 then
|
|
if heroid == 313 or heroid == 210 then
|
|
table.insert(cheng, heroid)
|
|
end
|
|
else
|
|
table.insert(cheng, heroid)
|
|
end
|
|
end
|
|
end
|
|
for i=1,10 do
|
|
cheng = table.shuffle(cheng)
|
|
end
|
|
return cheng
|
|
end
|
|
|
|
local function getzihero()
|
|
local zi = {}
|
|
for heroid, v in pairs(heroconf) do
|
|
heroid = math.floor(heroid)
|
|
if v.color == 1 and v.sex == 1 then
|
|
table.insert(zi, heroid)
|
|
end
|
|
end
|
|
for i=1,10 do
|
|
zi = table.shuffle(zi)
|
|
end
|
|
return zi
|
|
end
|
|
|
|
local func = {
|
|
["gethonghero"] = gethonghero,
|
|
["getchenghero"] = getchenghero,
|
|
["getzihero"] = getzihero,
|
|
}
|
|
|
|
|
|
local function getpools()
|
|
local pools = {}
|
|
for k,v in pairs(config) do
|
|
for i=1,v do
|
|
table.insert(pools, k)
|
|
end
|
|
end
|
|
for i=1,10 do
|
|
pools = table.shuffle(pools)
|
|
end
|
|
return pools
|
|
end
|
|
|
|
--招募1次
|
|
local function recruit1()
|
|
-- math.randomseed(tostring(os.time()):reverse():sub(1, 6))
|
|
local rewards = {}
|
|
local pools = getpools()
|
|
local n = math.random(1, 100)
|
|
local color = pools[n]
|
|
local count = 1
|
|
if color == "zi" then
|
|
count = 1
|
|
elseif color == "cheng" then
|
|
count = 4
|
|
elseif color == "hong" then
|
|
count = 8
|
|
end
|
|
local f = func["get"..color.."hero"]
|
|
local heros = f()
|
|
local n = math.random(1, #heros)
|
|
local heroid = heros[n]
|
|
table.insert(rewards, {heroid=heroid, count=count})
|
|
return rewards
|
|
end
|
|
|
|
--招募10次
|
|
local function recruit10()
|
|
-- math.randomseed(tostring(os.time()):reverse():sub(1, 6))
|
|
local rewards = {}
|
|
local h1, h2, h3 = getallhero()
|
|
local n = math.random(1, #h1) --获取红将
|
|
local heroid = h1[n]
|
|
table.insert(rewards, {heroid=heroid, count=8})
|
|
local pools = getpools()
|
|
for i=1,9 do
|
|
local n = math.random(1, 100)
|
|
local color = pools[n]
|
|
if color == "hong" then
|
|
local n = math.random(1, #h1)
|
|
local heroid = h1[n]
|
|
table.insert(rewards, {heroid=heroid, count=8})
|
|
elseif color == "cheng" then
|
|
local n = math.random(1, #h2)
|
|
local heroid = h2[n]
|
|
table.insert(rewards, {heroid=heroid, count=3})
|
|
elseif color == "zi" then
|
|
local n = math.random(1, #h3)
|
|
local heroid = h3[n]
|
|
table.insert(rewards, {heroid=heroid, count=3})
|
|
else
|
|
assert(false, "not found")
|
|
end
|
|
end
|
|
return rewards
|
|
end
|
|
|
|
local handler = {
|
|
["recruit1"] = recruit1,
|
|
["recruit10"] = recruit10,
|
|
}
|
|
|
|
local M = {}
|
|
|
|
function M.recruit(num)
|
|
local f = handler["recruit"..num]
|
|
assert(f ~= nil, "not found function")
|
|
return f()
|
|
end
|
|
|
|
return M
|