From 5d6fe34c876af08b05e129a789e71ccbcf1e8d69 Mon Sep 17 00:00:00 2001 From: MewMew Date: Fri, 4 Oct 2019 22:03:41 +0200 Subject: [PATCH] rpg module integration --- maps/overgrowth.lua | 2 ++ maps/spooky_forest.lua | 18 ++++++++++-------- maps/stone_maze/main.lua | 5 +++-- modules/rpg.lua | 27 +++++++++++++++++++++------ 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/maps/overgrowth.lua b/maps/overgrowth.lua index 0f84f803..e47b0ffa 100644 --- a/maps/overgrowth.lua +++ b/maps/overgrowth.lua @@ -147,6 +147,8 @@ function reset_map() global.market = spawn_market(global.current_surface, {x = 0, y = -8}) game.map_settings.enemy_evolution.time_factor = difficulties_votes_evo[4] + + if global.rpg then rpg_reset_all_players() end end local function on_player_joined_game(event) diff --git a/maps/spooky_forest.lua b/maps/spooky_forest.lua index 79aa79b7..ebc47576 100644 --- a/maps/spooky_forest.lua +++ b/maps/spooky_forest.lua @@ -1,8 +1,8 @@ -- spooky forest -- by mewmew -- -require "modules.hunger" -require "modules.fish_respawner" -global.fish_respawner_water_tiles_per_fish = 16 +require "modules.trees_randomly_die" +--require "modules.fish_respawner" +--global.fish_respawner_water_tiles_per_fish = 16 require "modules.satellite_score" require "modules.explosives_are_explosive" @@ -15,6 +15,8 @@ require "modules.biters_double_damage" require "modules.spawners_contain_biters" require "modules.rocks_broken_paint_tiles" require "modules.rocks_yield_ore" +require "modules.rpg" +require "modules.hunger" local shapes = require "tools.shapes" local event = require 'utils.event' @@ -407,7 +409,7 @@ local function on_entity_died(event) end end - if event.entity.type == "unit" and math_random(1, 256) == 1 then + if event.entity.type == "unit" and math_random(1, 8) == 1 then surface.spill_item_stack(event.entity.position,{name = "raw-fish", count = 1}, true) end @@ -435,11 +437,11 @@ local function on_player_joined_game(event) game.create_surface("spooky_forest", map_gen_settings) local surface = game.surfaces["spooky_forest"] surface.daytime = 0.5 - --surface.freeze_daytime = 1 + surface.freeze_daytime = 1 game.forces["player"].set_spawn_position({0, 0}, surface) game.map_settings.enemy_expansion.enabled = true - game.map_settings.enemy_evolution.destroy_factor = 0.0016 + game.map_settings.enemy_evolution.destroy_factor = 0.0025 game.map_settings.enemy_evolution.time_factor = 0 game.map_settings.enemy_evolution.pollution_factor = 0 @@ -460,9 +462,9 @@ local function on_player_joined_game(event) player.insert({name = "iron-plate", count = 64}) player.insert({name = "grenade", count = 3}) player.insert({name = "raw-fish", count = 5}) - player.insert({name = "land-mine", count = 5}) + player.insert({name = "land-mine", count = 2}) player.insert({name = "light-armor", count = 1}) - player.insert({name = "firearm-magazine", count = 128}) + player.insert({name = "firearm-magazine", count = 64}) if global.show_floating_killscore then global.show_floating_killscore[player.name] = false end end diff --git a/maps/stone_maze/main.lua b/maps/stone_maze/main.lua index a22d989d..d3fabc98 100644 --- a/maps/stone_maze/main.lua +++ b/maps/stone_maze/main.lua @@ -1,9 +1,10 @@ --optionals require "modules.satellite_score" -require "modules.dynamic_landfill" require "modules.dangerous_goods" require "modules.spawners_contain_biters" -require "modules.manual_mining_booster" +--require "modules.manual_mining_booster" +require "modules.rpg" +require "modules.hunger" --essentials require "functions.maze" diff --git a/modules/rpg.lua b/modules/rpg.lua index a7306848..6a86bfc2 100644 --- a/modules/rpg.lua +++ b/modules/rpg.lua @@ -65,7 +65,7 @@ local function update_player_stats(player) global.player_modifiers[player.index].character_mining_speed_modifier["rpg"] = strength * 0.004 local magic = global.rpg[player.index].magic - 10 - local v = magic * 0.2 + local v = magic * 0.15 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 @@ -403,6 +403,25 @@ local function gain_xp(player, amount) global.rpg[player.index].last_floaty_text = game.tick + visuals_delay end +function rpg_reset_player(player) + if player.gui.left.rpg then player.gui.left.rpg.destroy() end + global.rpg[player.index] = { + level = 1, xp = 0, strength = 10, magic = 10, dexterity = 10, vitality = 10, points_to_distribute = 0, + last_floaty_text = visuals_delay, xp_since_last_floaty_text = 0, + rotated_entity_delay = 0, gui_refresh_delay = 0, + } + draw_gui_char_button(player) + update_char_button(player) + update_player_stats(player) + draw_level_text(player) +end + +function rpg_reset_all_players() + for _, p in pairs(game.players) do + rpg_reset_player(p) + end +end + local function on_gui_click(event) if not event.element then return end if not event.element.valid then return end @@ -529,11 +548,7 @@ end local function on_player_joined_game(event) local player = game.players[event.player_index] if not global.rpg[player.index] then - global.rpg[player.index] = { - level = 1, xp = 0, strength = 10, magic = 10, dexterity = 10, vitality = 10, points_to_distribute = 0, - last_floaty_text = visuals_delay, xp_since_last_floaty_text = 0, - rotated_entity_delay = 0, gui_refresh_delay = 0, - } + rpg_reset_player(player) end draw_gui_char_button(player) update_player_stats(player)