diff --git a/maps/mountain_fortress_v3/buried_enemies.lua b/maps/mountain_fortress_v3/buried_enemies.lua index 8fea82a8..25942867 100644 --- a/maps/mountain_fortress_v3/buried_enemies.lua +++ b/maps/mountain_fortress_v3/buried_enemies.lua @@ -14,6 +14,7 @@ Global.register( ) local Public = {} +local round = math.round local floor = math.floor local random = math.random local abs = math.abs @@ -79,6 +80,7 @@ local function spawn_biters(data) end local unit_to_create + WD.wave_defense_set_unit_raffle(h * 0.20) if random(1, 3) == 1 then unit_to_create = WD.wave_defense_roll_spitter_name() @@ -86,10 +88,15 @@ local function spawn_biters(data) unit_to_create = WD.wave_defense_roll_biter_name() end + if not unit_to_create then + print('buried_enemies - unit_to_create was nil?') + return + end + local modified_unit_health = WD.get('modified_unit_health') local modified_boss_unit_health = WD.get('modified_boss_unit_health') - WD.wave_defense_set_unit_raffle(h * 0.20) + local unit_settings = WD.get('unit_settings') local unit = surface.create_entity({name = unit_to_create, position = position}) max_biters.amount = max_biters.amount + 1 @@ -97,7 +104,11 @@ local function spawn_biters(data) if random(1, 30) == 1 then BiterHealthBooster.add_boss_unit(unit, modified_boss_unit_health.current_value, 0.38) else - BiterHealthBooster.add_unit(unit, modified_unit_health.current_value) + local final_health = round(modified_unit_health.current_value * unit_settings.scale_units_by_health[unit.name], 3) + if final_health < 1 then + final_health = 1 + end + BiterHealthBooster.add_unit(unit, final_health) end return true end @@ -124,10 +135,17 @@ local function spawn_worms(data) local unit = surface.create_entity({name = unit_to_create, position = position}) max_biters.amount = max_biters.amount + 1 + local worm_unit_settings = WD.get('worm_unit_settings') + if random(1, 30) == 1 then BiterHealthBooster.add_boss_unit(unit, modified_boss_unit_health.current_value, 0.38) else - BiterHealthBooster.add_unit(unit, modified_unit_health.current_value) + local final_health = round(modified_unit_health.current_value * worm_unit_settings.scale_units_by_health[unit.name], 3) + if final_health < 1 then + final_health = 1 + end + + BiterHealthBooster.add_unit(unit, final_health) end end diff --git a/modules/map_info.lua b/modules/map_info.lua index 05d21730..f42dac4b 100644 --- a/modules/map_info.lua +++ b/modules/map_info.lua @@ -94,11 +94,10 @@ local function on_player_joined_game(event) Gui.call_existing_tab(player, 'Map Info') end end +Event.add(defines.events.on_player_joined_game, on_player_joined_game) Gui.add_tab_to_gui({name = module_name, caption = 'Map Info', id = create_map_intro_token, admin = false}) -Event.add(defines.events.on_player_joined_game, on_player_joined_game) - Gui.on_click( module_name, function(event) diff --git a/modules/wave_defense/buried_enemies.lua b/modules/wave_defense/buried_enemies.lua index e4400cbb..118a4469 100644 --- a/modules/wave_defense/buried_enemies.lua +++ b/modules/wave_defense/buried_enemies.lua @@ -12,6 +12,7 @@ Global.register( end ) +local round = math.round local floor = math.floor local random = math.random local abs = math.abs @@ -66,6 +67,7 @@ local function spawn_biters(data) return end end + Public.wave_defense_set_unit_raffle(h * 0.20) local unit_to_create @@ -78,14 +80,18 @@ local function spawn_biters(data) local modified_unit_health = Public.get('modified_unit_health') local modified_boss_unit_health = Public.get('modified_boss_unit_health') - Public.wave_defense_set_unit_raffle(h * 0.20) + local unit_settings = Public.get('unit_settings') local unit = surface.create_entity({name = unit_to_create, position = position}) if random(1, 30) == 1 then BiterHealthBooster.add_boss_unit(unit, modified_boss_unit_health.current_value, 0.38) else - BiterHealthBooster.add_unit(unit, modified_unit_health.current_value * 2) + local final_health = round(modified_unit_health.current_value * unit_settings.scale_units_by_health[unit.name], 3) + if final_health < 1 then + final_health = 1 + end + BiterHealthBooster.add_unit(unit, final_health) end end @@ -100,11 +106,16 @@ local function spawn_worms(data) local unit_to_create = Public.wave_defense_roll_worm_name(sqrt(position.x ^ 2 + position.y ^ 2) * 0.20) local unit = surface.create_entity({name = unit_to_create, position = position}) + local worm_unit_settings = Public.get('worm_unit_settings') if random(1, 30) == 1 then BiterHealthBooster.add_boss_unit(unit, modified_boss_unit_health.current_value, 0.38) else - BiterHealthBooster.add_unit(unit, modified_unit_health.current_value * 2) + local final_health = round(modified_unit_health.current_value * worm_unit_settings.scale_units_by_health[unit.name], 3) + if final_health < 1 then + final_health = 1 + end + BiterHealthBooster.add_unit(unit, final_health) end end diff --git a/modules/wave_defense/table.lua b/modules/wave_defense/table.lua index 64bc2735..d04e0671 100644 --- a/modules/wave_defense/table.lua +++ b/modules/wave_defense/table.lua @@ -135,6 +135,10 @@ function Public.reset_wave_defense() this.worm_unit_settings = { -- note that final health modifier isn't lower than 1 scale_units_by_health = { + ['land-mine'] = 0.5, -- not active as of now + ['gun-turret'] = 0.5, -- not active as of now + ['flamethrower-turret'] = 0.4, -- not active as of now + ['artillery-turret'] = 0.25, -- not active as of now ['small-worm-turret'] = 0.8, ['medium-worm-turret'] = 0.6, ['big-worm-turret'] = 0.4, diff --git a/utils/gui.lua b/utils/gui.lua index 3746ba10..cc658033 100644 --- a/utils/gui.lua +++ b/utils/gui.lua @@ -577,6 +577,7 @@ end local function draw_main_frame(player) local tabs = main_gui_tabs + Public.clear_all_active_frames(player) if Public.get_main_frame(player) then @@ -584,7 +585,6 @@ local function draw_main_frame(player) end local frame, inside_frame = Public.add_main_frame_with_toolbar(player, 'left', main_frame_name, nil, close_button_name, 'Comfy Panel') - local tabbed_pane = inside_frame.add({type = 'tabbed-pane', name = 'tabbed_pane'}) for name, func in pairs(tabs) do