From b817c079baf0bd8a2949b93ebd6fa37cfbf2547a Mon Sep 17 00:00:00 2001 From: ancientmarinerdev Date: Tue, 31 Jan 2023 18:04:01 +0000 Subject: [PATCH] Improve balancing for early game --- mods/ENTITIES/mcl_mobs/spawning.lua | 13 +++++-------- settingtypes.txt | 12 ++++++------ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/spawning.lua b/mods/ENTITIES/mcl_mobs/spawning.lua index 2f90a698d..3ff5184ca 100644 --- a/mods/ENTITIES/mcl_mobs/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/spawning.lua @@ -26,7 +26,6 @@ local table_copy = table.copy local table_remove = table.remove local pairs = pairs --- TODO Set logger to false as default local LOGGING_ON = minetest.settings:get_bool("mcl_logging_mobs_spawning", false) local function mcl_log (message) if LOGGING_ON then @@ -34,7 +33,6 @@ local function mcl_log (message) end end - local dbg_spawn_attempts = 0 local dbg_spawn_succ = 0 local dbg_spawn_counts = {} @@ -59,15 +57,15 @@ local SPAWN_MAPGEN_LIMIT = mcl_vars.mapgen_limit - 150 local mob_cap = { hostile = tonumber(minetest.settings:get("mcl_mob_cap_monster")) or 70, - passive = tonumber(minetest.settings:get("mcl_mob_cap_animal")) or 10, + passive = tonumber(minetest.settings:get("mcl_mob_cap_animal")) or 13, ambient = tonumber(minetest.settings:get("mcl_mob_cap_ambient")) or 15, - water = tonumber(minetest.settings:get("mcl_mob_cap_water")) or 10, + water = tonumber(minetest.settings:get("mcl_mob_cap_water")) or 8, water_ambient = tonumber(minetest.settings:get("mcl_mob_cap_water_ambient")) or 20, --currently unused player = tonumber(minetest.settings:get("mcl_mob_cap_player")) or 75, total = tonumber(minetest.settings:get("mcl_mob_cap_total")) or 500, } -local peaceful_percentage_spawned = tonumber(minetest.settings:get("mcl_mob_peaceful_percentage_spawned")) or 30 +local peaceful_percentage_spawned = tonumber(minetest.settings:get("mcl_mob_peaceful_percentage_spawned")) or 35 local peaceful_group_percentage_spawned = tonumber(minetest.settings:get("mcl_mob_peaceful_group_percentage_spawned")) or 15 local hostile_group_percentage_spawned = tonumber(minetest.settings:get("mcl_mob_hostile_group_percentage_spawned")) or 20 @@ -850,8 +848,7 @@ if mobs_spawn then local spawning_position = find_spawning_position(pos, FIND_SPAWN_POS_RETRIES) if not spawning_position then - -- TODO do we log to user - --mcl_log("abandon this") + minetest.log("action", "[Mobs spawn] Cannot find a valid spawn position after retries: " .. FIND_SPAWN_POS_RETRIES) return end @@ -898,7 +895,7 @@ if mobs_spawn then -- Spawn caps for animals and water creatures fill up rapidly. Need to throttle this somewhat -- for performance and for early game challenge. We don't want to reduce hostiles though. local spawn_hostile = (mob_spawn_class == "hostile") - local spawn_passive = (mob_spawn_class == "passive" or mob_spawn_class == "water") and math.random(100) < peaceful_percentage_spawned + local spawn_passive = (mob_spawn_class ~= "hostile") and math.random(100) < peaceful_percentage_spawned -- or not hostile --mcl_log("Spawn_passive: " .. tostring(spawn_passive)) --mcl_log("Spawn_hostile: " .. tostring(spawn_hostile)) diff --git a/settingtypes.txt b/settingtypes.txt index 296951491..a1416ffb7 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -115,8 +115,8 @@ mobs_griefing (Mobs change blocks) bool true # If enabled, mobs won't damage particles when they got hurt. mobs_disable_blood (Disable mob damage particles) bool false -#Percentage of peaceful spawn attempts that succeed (default:30) -mcl_mob_peaceful_percentage_spawned (Peaceful percentage success) int 30 0 100 +#Percentage of peaceful spawn attempts that succeed (default:40) +mcl_mob_peaceful_percentage_spawned (Peaceful percentage success) int 35 0 100 #Percentage of peaceful spawn attempts that are group spawns (default:15) mcl_mob_peaceful_group_percentage_spawned (Peaceful group percentage) int 15 0 100 @@ -133,11 +133,11 @@ mcl_mob_cap_player (Mob cap per player) int 75 0 2048 #Maximum amount of monsters that will spawn near a player (default:70) mcl_mob_cap_monster (Mob cap monsters) int 70 0 2048 -#Maximum amount of animals that will spawn near a player (default:10) -mcl_mob_cap_animal (Mob cap animals) int 10 0 1024 +#Maximum amount of animals that will spawn near a player (default:13) +mcl_mob_cap_animal (Mob cap animals) int 13 0 1024 -#Maximum amount of water mobs that will spawn near a player (default:10) -mcl_mob_cap_water (Mob cap water) int 10 0 1024 +#Maximum amount of water mobs that will spawn near a player (default:8) +mcl_mob_cap_water (Mob cap water) int 8 0 1024 #Maximum amount of ambient mobs that will spawn near a player (default:15) mcl_mob_cap_ambient (Mob cap ambient mobs) int 15 0 1024