diff --git a/maps/biter_battles_v2/main.lua b/maps/biter_battles_v2/main.lua index 767dcd7a..50a69254 100644 --- a/maps/biter_battles_v2/main.lua +++ b/maps/biter_battles_v2/main.lua @@ -21,7 +21,7 @@ require "modules.mineable_wreckage_yields_scrap" local function on_player_joined_game(event) local surface = game.surfaces["biter_battles"] - local player = game.players[event.player_index] + local player = game.players[event.player_index] if player.online_time == 0 then player.spectator = true @@ -34,7 +34,7 @@ local function on_player_joined_game(event) player.character.destructible = false game.permissions.get_group("spectator").add_player(player) end - + Map_info.player_joined_game(player) Team_manager.draw_top_toggle_button(player) end @@ -44,9 +44,9 @@ local function on_gui_click(event) local element = event.element if not element then return end if not element.valid then return end - + if Map_info.gui_click(player, element) then return end - Team_manager.gui_click(event) + Team_manager.gui_click(event) end local function on_research_finished(event) @@ -75,16 +75,16 @@ end --Prevent Players from damaging Rocket Silos local function on_entity_damaged(event) - local entity = event.entity + local entity = event.entity if not entity.valid then return end if entity.force.index > 5 then return end - + local cause = event.cause if cause then - if cause.type == "unit" then return end + if cause.type == "unit" then return end end - - if entity.name ~= "rocket-silo" then return end + + if entity.name ~= "rocket-silo" then return end entity.health = entity.health + event.final_damage_amount end @@ -99,7 +99,7 @@ local tick_minute_functions = { local function on_tick(event) Mirror_terrain() - + local tick = game.tick if tick % 60 ~= 0 then return end @@ -115,7 +115,7 @@ local function on_tick(event) Game_over.server_restart() return end - + local key = tick % 3600 if tick_minute_functions[key] then tick_minute_functions[key]() end end @@ -139,7 +139,10 @@ Event.add(defines.events.on_robot_built_entity, on_robot_built_entity) Event.add(defines.events.on_tick, on_tick) Event.on_init(on_init) +Event.add_event_filter(defines.events.on_entity_damaged, { filter = "name", name = "rocket-silo" }) +Event.add_event_filter(defines.events.on_entity_damaged, { filter = "type", type = "unit" }) + require "maps.biter_battles_v2.spec_spy" require "maps.biter_battles_v2.terrain" require "maps.biter_battles_v2.difficulty_vote" -require "modules.custom_death_messages" \ No newline at end of file +require "modules.custom_death_messages" diff --git a/utils/event.lua b/utils/event.lua index 2b5a3536..a6dd0cd1 100644 --- a/utils/event.lua +++ b/utils/event.lua @@ -428,6 +428,18 @@ function Event.generate_event_name(name) return event_id end +function Event.add_event_filter(event, filter) + local current_filters = script.get_event_filter(event) + + if not current_filters then + current_filters = {filter} + else + table.insert(current_filters, filter) + end + + script.set_event_filter(event, current_filters) +end + local function add_handlers() for event_name, tokens in pairs(token_handlers) do for i = 1, #tokens do