diff --git a/maps/cave_miner.lua b/maps/cave_miner.lua index 181ed809..7790d882 100644 --- a/maps/cave_miner.lua +++ b/maps/cave_miner.lua @@ -14,7 +14,7 @@ local Event = require 'utils.event' local market_items = require "maps.cave_miner_market_items" local math_random = math.random -local spawn_dome_size = 7500 +local spawn_dome_size = 7000 local darkness_messages = { "Something is lurking in the dark...", @@ -885,11 +885,13 @@ local function biter_attack_event() local surface = game.surfaces[1] local valid_positions = {} for _, player in pairs(game.connected_players) do - if player.character.driving == false then - local position = {x = player.position.x, y = player.position.y} - local p = find_first_entity_spiral_scan(position, {"rock-huge", "rock-big", "sand-rock-big"}, 32) - if p then - if p.x^2 + p.y^2 > spawn_dome_size then table.insert(valid_positions, p) end + if player.character then + if player.character.driving == false then + local position = {x = player.position.x, y = player.position.y} + local p = find_first_entity_spiral_scan(position, {"rock-huge", "rock-big", "sand-rock-big"}, 32) + if p then + if p.x^2 + p.y^2 > spawn_dome_size then table.insert(valid_positions, p) end + end end end end @@ -1084,10 +1086,10 @@ local function pre_player_mined_item(event) if tile_distance_to_center > 1450 then tile_distance_to_center = 1450 end if math_random(1,3) == 1 then hunger_update(player, -1) end - surface.spill_item_stack(player.position,{name = "raw-fish", count = math_random(2,4)},true) + surface.spill_item_stack(player.position,{name = "raw-fish", count = math_random(1,3)},true) local bonus_amount = math.floor((tile_distance_to_center - math.sqrt(spawn_dome_size)) * 0.115) + 1 if bonus_amount < 0 then bonus_amount = 0 end - local amount = math_random(25,35) + bonus_amount + local amount = math_random(25,45) + bonus_amount if amount > 500 then amount = 500 end amount = amount * (1+game.forces.player.mining_drill_productivity_bonus) diff --git a/maps/mountain_fortress.lua b/maps/mountain_fortress.lua index 5a49298b..c0b17888 100644 --- a/maps/mountain_fortress.lua +++ b/maps/mountain_fortress.lua @@ -10,8 +10,8 @@ require "modules.rocks_yield_ore" require "modules.satellite_score" require "modules.spawners_contain_biters" --require "modules.splice_double" -require "modules.more_attacks" -require "modules.evolution_extended" +--require "modules.more_attacks" +--require "modules.evolution_extended" local event = require 'utils.event' local math_random = math.random diff --git a/modules/rpg.lua b/modules/rpg.lua index 8aa837c4..e1f6aee7 100644 --- a/modules/rpg.lua +++ b/modules/rpg.lua @@ -53,7 +53,7 @@ local function update_player_stats(player) global.player_modifiers[player.index].character_mining_speed_modifier["rpg"] = strength * 0.003 local magic = global.rpg[player.index].magic - 10 - local v = magic * 0.2 + local v = magic * 0.1 global.player_modifiers[player.index].character_build_distance_bonus["rpg"] = v global.player_modifiers[player.index].character_item_drop_distance_bonus["rpg"] = v global.player_modifiers[player.index].character_reach_distance_bonus["rpg"] = v @@ -138,7 +138,8 @@ end local function draw_gui(player) if player.gui.left.rpg then player.gui.left.rpg.destroy() end - + if not player.character then return end + local frame = player.gui.left.add({type = "frame", name = "rpg", direction = "vertical"}) frame.style.maximal_width = 425 frame.style.minimal_width = 425 @@ -326,7 +327,7 @@ local function draw_level_text(player) text = "lvl " .. global.rpg[player.index].level, surface = player.surface, target = player.character, - target_offset = {-0.05, -3.5}, + target_offset = {-0.05, -3.15}, color = { r = player.color.r * 0.6 + 0.25, g = player.color.g * 0.6 + 0.25, @@ -334,7 +335,7 @@ local function draw_level_text(player) a = 1 }, players = players, - scale = 1.0, + scale = 1.10, font = "scenario-message-dialog", alignment = "center", scale_with_zoom = false @@ -439,7 +440,9 @@ local function on_entity_damaged(event) if event.final_damage_amount == 0 then return end if event.entity.name ~= "character" then return end if not event.entity.player then return end - gain_xp(event.entity.player, event.final_damage_amount * 0.05) + local damage_taken = event.final_damage_amount + if damage_taken > 500 then damage_taken = 500 end + gain_xp(event.entity.player, damage_taken * 0.055) end local function on_player_changed_position(event) @@ -470,6 +473,10 @@ local function on_player_crafted_item(event) gain_xp(player, event.recipe.energy * 0.2) end +local function on_player_respawned(event) + draw_level_text(game.players[event.player_index]) +end + local function on_player_joined_game(event) local player = game.players[event.player_index] if not global.rpg[player.index] then @@ -499,4 +506,5 @@ event.add(defines.events.on_gui_click, on_gui_click) event.add(defines.events.on_player_changed_position, on_player_changed_position) event.add(defines.events.on_player_crafted_item, on_player_crafted_item) event.add(defines.events.on_player_joined_game, on_player_joined_game) +event.add(defines.events.on_player_respawned, on_player_respawned) event.add(defines.events.on_pre_player_mined_item, on_pre_player_mined_item) \ No newline at end of file