diff --git a/data/lua/cave_map_generator.lua b/data/lua/cave_map_generator.lua index f19d756bc3a7..2cea03df0162 100644 --- a/data/lua/cave_map_generator.lua +++ b/data/lua/cave_map_generator.lua @@ -178,12 +178,14 @@ function callbacks.generate_map(params) local prev_x, prev_y for x,y in locs_set:stable_iter() do local r = 1000 + local ter_to_place if v.data.place_villages then r = random(1000) end if r <= params.village_density then - place_road(x, y, prev_x, prev_y, v.roads, params.terrain_village) + ter_to_place = v.data.terrain_village or params.terrain_village else - place_road(x, y, prev_x, prev_y, v.roads, v.data.terrain_clear) + ter_to_place = v.data.terrain_clear or params.terrain_clear end + place_road(x, y, prev_x, prev_y, v.roads, ter_to_place) prev_x, prev_y = x, y end end diff --git a/data/multiplayer/scenarios/Random_Scenario_Cave.cfg b/data/multiplayer/scenarios/Random_Scenario_Cave.cfg index 43461abd2a68..00afd6a6d758 100644 --- a/data/multiplayer/scenarios/Random_Scenario_Cave.cfg +++ b/data/multiplayer/scenarios/Random_Scenario_Cave.cfg @@ -1,42 +1,92 @@ #textdomain wesnoth-multiplayer +#define CLEAR_TERRAINS +Rb,Rb,Rb,Rb,Rb,Rb,Rb,Rb^Uf,Rb^Ii,Sm,Sm,Uue,Rb^Fetd,Rb^Fdw#enddef + #define ROAD_COSTS [road_cost] terrain=Rb - cost=1 + cost=2 convert_to=Ur [/road_cost] [road_cost] terrain=Rb^Uf - cost=5 + cost=20 convert_to=Ur [/road_cost] [road_cost] terrain=Rb^Fdw - cost=5 + cost=20 convert_to=Ur [/road_cost] [road_cost] terrain=Uue - cost=3 + cost=10 convert_to=Ur [/road_cost] [road_cost] terrain=Rb^Ii - cost=1 + cost=2 convert_to=Ur^Ii [/road_cost] [road_cost] terrain=Uue - cost=10 + cost=50 + convert_to=Ur + [/road_cost] + [road_cost] + terrain=Sm + cost=75 + convert_to=Ur + [/road_cost] + [road_cost] + terrain=Rb^Fetd + cost=75 + convert_to=Ur + [/road_cost] + [road_cost] + terrain=Rb^Fdw + cost=75 convert_to=Ur [/road_cost] [road_cost] terrain=Wwg - cost=50 + cost=100 convert_to_bridge=Wwg^Bw|,Wwg^Bw/,Wwg^Bw\ convert_to=Ur [/road_cost] + [road_cost] + terrain=Ur + cost=2 + convert_to=Ur + [/road_cost] + [road_cost] + terrain=Ur^Ii + cost=2 + convert_to=Ur^Ii + [/road_cost] + [road_cost] + terrain=Rb^Vu + cost=5 + convert_to=Ur^Vu + [/road_cost] + [road_cost] + terrain=Rb^Vud + cost=5 + convert_to=Ur^Vud + [/road_cost] + [road_cost] + terrain=Uue^Vud + cost=55 + convert_to=Ur^Vud + [/road_cost] + # We don't want to carve a new tunnel now, + # so give walls a ridiculously high cost. + [road_cost] + terrain=Xue + cost=1000 + convert_to=Uue + [/road_cost] #enddef #define PLAYER_CHAMBER NUMBER X Y @@ -62,7 +112,7 @@ laziness=2 jagged=3 width=3 - terrain_clear=Rb + terrain_clear={CLEAR_TERRAINS} place_villages=yes [/passage] [passage] @@ -93,10 +143,10 @@ {DEFAULT_MUSIC_PLAYLIST} {DEFAULT_SCHEDULE} [/scenario] - terrain_clear=Rb,Rb,Rb,Rb,Rb,Rb,Rb,Rb^Uf,Rb^Ii,Sm,Sm,Uue,Rb^Fetd,Rb^Fdw + terrain_clear={CLEAR_TERRAINS} terrain_wall=Xue terrain_castle=Co - terrain_keep=Co + terrain_keep=Ko terrain_village=Rb^Vu,Rb^Vu,Rb^Vu,Rb^Vu,Rb^Vu,Rb^Vud,Rb^Vud,Uue^Vud map_width=40