1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-08 00:39:30 +02:00
ComfyFactorio/modules/wave_defense/biter_rolls.lua
2021-11-14 21:01:01 +01:00

129 lines
3.5 KiB
Lua

local Public = require 'modules.wave_defense.table'
function Public.wave_defense_roll_biter_name()
local biter_raffle = Public.get('biter_raffle')
local max_chance = 0
for k, v in pairs(biter_raffle) do
max_chance = max_chance + v
end
local r = math.random(0, math.floor(max_chance))
local current_chance = 0
for k, v in pairs(biter_raffle) do
current_chance = current_chance + v
if r <= current_chance then
return k
end
end
end
function Public.wave_defense_roll_spitter_name()
local spitter_raffle = Public.get('spitter_raffle')
local max_chance = 0
for k, v in pairs(spitter_raffle) do
max_chance = max_chance + v
end
local r = math.random(0, math.floor(max_chance))
local current_chance = 0
for k, v in pairs(spitter_raffle) do
current_chance = current_chance + v
if r <= current_chance then
return k
end
end
end
function Public.wave_defense_set_unit_raffle(level)
Public.set(
'biter_raffle',
{
['small-biter'] = 1000 - level * 1.75,
['medium-biter'] = level,
['big-biter'] = 0,
['behemoth-biter'] = 0
}
)
Public.set(
'spitter_raffle',
{
['small-spitter'] = 1000 - level * 1.75,
['medium-spitter'] = level,
['big-spitter'] = 0,
['behemoth-spitter'] = 0
}
)
local biter_raffle = Public.get('biter_raffle')
local spitter_raffle = Public.get('spitter_raffle')
if level > 500 then
biter_raffle['medium-biter'] = 500 - (level - 500)
spitter_raffle['medium-spitter'] = 500 - (level - 500)
biter_raffle['big-biter'] = (level - 500) * 2
spitter_raffle['big-spitter'] = (level - 500) * 2
end
if level > 800 then
biter_raffle['behemoth-biter'] = (level - 800) * 2.75
spitter_raffle['behemoth-spitter'] = (level - 800) * 2.75
end
for k, _ in pairs(biter_raffle) do
if biter_raffle[k] < 0 then
biter_raffle[k] = 0
end
end
for k, _ in pairs(spitter_raffle) do
if spitter_raffle[k] < 0 then
spitter_raffle[k] = 0
end
end
end
function Public.wave_defense_roll_worm_name()
local worm_raffle = Public.get('worm_raffle')
local max_chance = 0
for k, v in pairs(worm_raffle) do
max_chance = max_chance + v
end
local r = math.random(0, math.floor(max_chance))
local current_chance = 0
for k, v in pairs(worm_raffle) do
current_chance = current_chance + v
if r <= current_chance then
return k
end
end
end
function Public.wave_defense_set_worm_raffle(level)
Public.set(
'worm_raffle',
{
['small-worm-turret'] = 1000 - level * 1.75,
['medium-worm-turret'] = level,
['big-worm-turret'] = 0,
['behemoth-worm-turret'] = 0
}
)
local worm_raffle = Public.get('worm_raffle')
if level > 500 then
worm_raffle['medium-worm-turret'] = 500 - (level - 500)
worm_raffle['big-worm-turret'] = (level - 500) * 2
end
if level > 800 then
worm_raffle['behemoth-worm-turret'] = (level - 800) * 3
end
for k, _ in pairs(worm_raffle) do
if worm_raffle[k] < 0 then
worm_raffle[k] = 0
end
end
end
function Public.wave_defense_print_chances(tbl)
for k, v in pairs(tbl) do
game.print(k .. ' chance = ' .. v)
end
end
return Public