1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2025-01-18 03:21:47 +02:00

added on_interval

This commit is contained in:
Valansch 2018-10-26 23:45:34 +02:00
parent 27063e0eef
commit 19088ffd0a

View File

@ -32,8 +32,6 @@ local lastattack
local c_index local c_index
local random = math.random local random = math.random
local insert = table.insert local insert = table.insert
local get_pollution = game.surfaces[1].get_pollution
local count_entities_filtered = game.surfaces[1].count_entities_filtered
local function biter_attack() local function biter_attack()
local maxindex = #bases local maxindex = #bases
@ -56,7 +54,7 @@ local function biter_attack()
--autonomous groups will attack polluted areas independently --autonomous groups will attack polluted areas independently
group.set_autonomous() group.set_autonomous()
if _DEBUG then if _DEBUG then
game.surfaces[1].print("sending biters") game.print("sending biters")
end end
--group.set_command{ type=defines.command.attack_area, destination=game.players[1].position, radius=200, distraction=defines.distraction.by_anything } --group.set_command{ type=defines.command.attack_area, destination=game.players[1].position, radius=200, distraction=defines.distraction.by_anything }
end end
@ -82,6 +80,8 @@ local function shuffle_table( t )
end end
local function find_bases() local function find_bases()
local get_pollution = game.surfaces[1].get_pollution
local count_entities_filtered = game.surfaces[1].count_entities_filtered
if c_index == 1 then if c_index == 1 then
bases = {} bases = {}
end end
@ -106,7 +106,7 @@ local function find_bases()
c_index = 1 c_index = 1
shuffle_table(bases) shuffle_table(bases)
if _DEBUG then if _DEBUG then
game.surfaces[1].print("bases added: " .. tostring(#bases)) game.print("bases added: " .. tostring(#bases))
end end
end end
end end
@ -124,20 +124,7 @@ local function on_chunk_generated(event)
end end
end end
local function on_tick(event) local function on_tick()
if event.tick % timeinterval == 0 then
if game.surfaces[1].darkness > 0.5
and state == IDLE
and event.tick >= lastattack + timeinterval
and random() > 0.5
then
-- Search for bases, then attack
state = BASE_SEARCH
if _DEBUG then
game.surfaces[1].print("entering attack mode") --for debug
end
end
end
if state == BASE_SEARCH then if state == BASE_SEARCH then
-- This is called every tick while in this state -- This is called every tick while in this state
-- But only a small amount of work is done per call. -- But only a small amount of work is done per call.
@ -148,6 +135,20 @@ local function on_tick(event)
end end
end end
local function on_interval()
if game.surfaces[1].darkness > 0.5
and state == IDLE
and game.tick >= lastattack + timeinterval
and random() > 0.5
then
-- Search for bases, then attack
state = BASE_SEARCH
if _DEBUG then
game.surfaces[1].print("entering attack mode") --for debug
end
end
end
local function on_init() local function on_init()
bases = {} bases = {}
chunklist = {} chunklist = {}
@ -159,4 +160,5 @@ end
Event.add(defines.events.on_chunk_generated, on_chunk_generated) Event.add(defines.events.on_chunk_generated, on_chunk_generated)
Event.add(defines.events.on_tick, on_tick) Event.add(defines.events.on_tick, on_tick)
Event.on_nth_tick(timeinterval, on_interval)
Event.on_init(on_init) Event.on_init(on_init)