diff --git a/data/json/furniture_and_terrain/terrain-walls.json b/data/json/furniture_and_terrain/terrain-walls.json index 69cc70c69b254..34759ba834000 100644 --- a/data/json/furniture_and_terrain/terrain-walls.json +++ b/data/json/furniture_and_terrain/terrain-walls.json @@ -1482,5 +1482,25 @@ "ter_set": "t_null", "items": [ { "item": "rock", "count": [ 3, 8 ] }, { "item": "pebble", "count": [ 20, 38 ] } ] } + }, + { + "type": "terrain", + "id": "t_pillar", + "name": "pillar", + "looks_like": "t_column", + "description": "A concrete column that helps keep the mine's ceiling and walls from collapsing.", + "symbol": "1", + "color": "light_gray", + "move_cost": 0, + "coverage": 80, + "flags": [ "WALL", "PERMEABLE", "MINEABLE" ], + "bash": { + "str_min": 120, + "str_max": 200, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_reb_cage", + "items": [ { "item": "rock", "count": [ 10, 22 ] } ] + } } ] diff --git a/data/json/mapgen/mine/mine_shaft.json b/data/json/mapgen/mine/mine_shaft.json index 3d56375160457..8fee0022eb3de 100644 --- a/data/json/mapgen/mine/mine_shaft.json +++ b/data/json/mapgen/mine/mine_shaft.json @@ -43,28 +43,28 @@ "rows": [ "###### ## #################### #######", "###### ## ################### ########", - "###### ## ############# #### #########", + "######№ ## №############# #### #########", "####### ############### ### ##########", "######## ############### ## ###########", "######## ############## ############", " ###### ################ ##########", - " ## ################# ###########", - "# ##### ###### ###########", + " ##№ ################# ###########", + "# №##### №###### ###########", " #### ## ", "###### ### #### #### ", "###### |-| #### ##### ", "###### |----|<|--| ", "##### |!@@...!@@| #### #####", - "### |.@@....@@| ######### ######", + "###№ |.@@....@@| ######### ######", " +.......@@| ########## ######", "*****************=========| # ######## ####", - " +.......®®| ####### ####", + " +.......®®| №####### ####", " |.........| ######### ####", "# |.........| ######### #", - "## |LLLL|SSSS| ######### #", - "#### |----|----| ######## #", + "## |LLLL|SSSS| №######### #", + "####№ |----|----| ######## #", "###### ######### ", - "####### ## ####### ######## " + "####### ## №####### ######## " ], "terrain": { "<": "t_ladder_up", @@ -78,6 +78,7 @@ "=": "t_conveyor", "*": "t_railroad_track_small", "®": "t_thconc_floor", + "№": "t_pillar", "L": "t_thconc_floor", "S": "t_thconc_floor" }, @@ -86,7 +87,8 @@ "L": [ { "item": "clothing_work_set", "chance": 50 }, { "item": "hardware_clothing", "chance": 50 } ], "S": { "item": "mine_equipment", "chance": 80 } }, - "place_vehicles": [ { "vehicle": "trolley", "x": 10, "y": 16, "chance": 100, "status": 0 } ] + "place_vehicles": [ { "vehicle": "trolley", "x": 10, "y": 16, "chance": 100, "status": 0 } ], + "monsters": { " ": { "monster": "GROUP_MINER", "chance": 1, "density": 0.0005 } } } } ] diff --git a/data/json/mapgen/mine/mine_spiral.json b/data/json/mapgen/mine/mine_spiral.json new file mode 100644 index 0000000000000..e69daee9f44c2 --- /dev/null +++ b/data/json/mapgen/mine/mine_spiral.json @@ -0,0 +1,190 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_MINER", + "default": "mon_zombie_miner", + "monsters": [ ] + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "mine_spiral_west", "mine_spiral_central", "mine_spiral_east" ] ], + "object": { + "fill_ter": "t_rock_floor", + "rows": [ + "########################################################################", + "@@@@@@@@@@@@@@@@@@@@@@@@@###############################################", + "@ @###############################################", + "@ ##################### @###############################################", + "@ #@@@@@@@@@@@@@@@@@@@# @###############################################", + "@ #@ @# @###############################################", + "@ #@ ############### @# @###############################################", + "@ #@ #@@@@@@@@@@@### @# @###############################################", + "@ #@ #@ ># @# @###############################################", + "@ #@ #@ @@@@@@@@@### @# @###############################################", + "@ #@ #@ ############ @# @###############################################", + "@ #@ #@ @# @###############################################", + "@ #@ #@@@@@@@@@@@@@@@@# @#####################@@@@@@@@@@@@@@@@@@@@@@@@@@", + "@ #@ ################## @#####################! @@@@@@@@@@@!@@@@@@@@@@ !", + "@ #@ @##################### ", + "@ #@@@@@@@@@@@@@@@@########################### ", + "@ ############################################**************************", + "@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@## #### ", + "@ # ## ", + "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##### ! @@@@@@@@@@!@@@@@@@@@@ !", + "###############################################@@@@@@@@@@@@@@@@@@@@@@@@@", + "########################################################################", + "########################################################################", + "########################################################################" + ], + "terrain": { + "@": [ [ "t_rock", 4 ], [ "t_rock_floor", 1 ] ], + "#": "t_rock", + "*": "t_railroad_track_small", + "!": "t_pillar", + ">": "t_slope_down" + }, + "items": { " ": { "item": "mine_equipment", "chance": 1 } }, + "monsters": { " ": { "monster": "GROUP_MINER", "chance": 1, "density": 0.001 } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "mine_spiral_-1_nw", "mine_spiral_-1_n", "mine_spiral_-1_ne" ], + [ "mine_spiral_-1_sw", "mine_spiral_-1_s", "mine_spiral_-1_se" ] + ], + "object": { + "fill_ter": "t_rock_floor", + "rows": [ + "####################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "####################################@ @", + "########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 1 ###### @", + "########@ # @", + "########@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ # #### @", + "########@ @##################@######@ # #~ # @", + "########@ @# @######@ # # @", + "########@ @# @@@@@@@@@@@@@@@ @######@ ###### @", + "########@ @# @#############@ @######@ @", + "########@ @# @####< #@ @######@ @", + "########@ @# @########### #@ @######@ @", + "########@ @# @@@@@@@@@@@@ #@ @######@ 1 1 1 @", + "########@ @# #@ @######@ @", + "########@ @################@ @######@ @", + "########@ @@@@@@@@@@@@@@@@@@ @######@ @", + "########@ @######@ @", + "########@@@@@@@@@@@@@@@@@@@@@@######@ @", + "####################################@ @", + "####################################@@@@@@@@@@@@@@@@@@@@@@@ @", + "##########################################################@ @", + "##########################################################@ @", + "#####@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@############@ @", + "##### #### @############@ @", + "##### #### #### #### ############@ @", + "#####%%%%%%######%%%%%%####!!!!!!######$$$$$$ ############@ @", + "#####% ###### %####! ##### $ ############@ @", + "#####% %%%%######%%%% %####! !!!!##### $$$$ $ ############@ @", + "#####% % %######% % %####! ! !##### $ >$ $ ############@ @", + "#####% %######% %####! !##### $ $ ############@ @", + "#####%%%%%%######%%%%%%####!!!!!!##### $$$$$$ ############@ @", + "#### ###### ## ##### ############@ @", + "### ###### @####@ @############@ @", + "#@ @@@@@@@######@@@@@@@@@@@@@@@@@####@@@@@@@@############@ @", + "#@ @#####################################################@ @", + "#@ @####################################################### @", + "#@ @@@@@@@######@@@@@@@@@@@@@@@@######@@@@@@@@@@@@@@@@@@@### @", + "### ###### ###### ## @", + "#### ###### ## ###### ### #### ##", + "##### ###### #### ###### ##### ###### ###", + "#####^^^^^^######^^^^^^####&&&&&&######&&&&&&######******######******###", + "#####^ ###### ^####& ###### &######* ###### *###", + "#####^ ^^^^######^^^^ ^####& &&&&######&&&& &######* ****######**** *###", + "#####^ ^ ^######^ ^ ^####& & &######& & &######* * *######* * *###", + "#####^ ^######^ ^####& &######& &######* *######* *###", + "#####^^^^^^######^^^^^^####&&&&&&######&&&&&&######******######******###", + "##### #### #### #### ###### ###### ###", + "##### @##@ @####@ ###", + "#####@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@###" + ], + "terrain": { + "@": [ [ "t_rock", 4 ], [ "t_rock_floor", 1 ] ], + "#": "t_rock", + ">": "t_slope_down", + "<": "t_slope_up", + "$": "t_lava" + }, + "furniture": { "&": "f_wreckage", "^": "f_rubble", "%": "f_rubble_rock", "!": "f_rubble_landfill" }, + "nested": { + "1": { "chunks": [ [ "spiral_cw", 25 ], [ "spiral_ccw", 25 ], [ "spiral_boulder_cw", 25 ], [ "spiral_boulder_ccw", 25 ] ] } + }, + "item": { "*": { "item": "rock", "chance": 100 } }, + "npcs": { "~": { "class": "spiral_madman" } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "mine_spiral_finale_nw", "mine_spiral_finale_n", "mine_spiral_finale_ne" ], + [ "mine_spiral_finale_sw", "mine_spiral_finale_s", "mine_spiral_finale_se" ] + ], + "object": { + "fill_ter": "t_rock_floor", + "rows": [ + "###### 1 1 1 1 1 1 1 1 ", + "# ", + "# #### ", + "# #! # ", + "# # ", + "###### ", + " ", + " ###### ", + " # ", + " #### # ", + " # !# # ", + " # # ", + " ###### ", + " ", + "###### 1 1 1 1 1 1 ###### ", + "# # ", + "# #### #### # ", + "# #! # # # # ", + "# # # # ", + "###### ###### ", + " ", + "###### ###### ###### ", + "# # # ", + "# #### #### # #### # ", + "# # # # !# # # # # ", + "# # # # # # ", + "###### ###### ###### ", + " < ", + "###### 1 ###### 1 1 1 ###### ", + "# # # ", + "# #### # #### #### # ", + "# #! # # #! # # # # ", + "# # # # # # ", + "###### ###### ###### ", + " ", + "###### ###### ", + "# # ", + "# #### #### # ", + "# # # # !# # ", + "# # # # ", + "###### ###### ", + " ", + "###### 1 1 1 1 1 1 1 1 ", + "# ", + "# #### ", + "# #! # ", + "# # ", + "###### " + ], + "terrain": { "@": [ [ "t_rock", 4 ], [ "t_rock_floor", 1 ] ], "#": "t_rock", "<": "t_slope_up" }, + "monsters": { " ": { "monster": "GROUP_SPIRAL", "chance": 1, "density": 0.001 } }, + "nested": { "1": { "chunks": [ [ "spiral_cw", 50 ], [ "spiral_ccw", 50 ] ] } }, + "items": { "!": { "item": "spiral", "chance": 60 } } + } + } +] diff --git a/data/json/mapgen/nested/mine_nested.json b/data/json/mapgen/nested/mine_nested.json new file mode 100644 index 0000000000000..ee70e895db90f --- /dev/null +++ b/data/json/mapgen/nested/mine_nested.json @@ -0,0 +1,76 @@ +[ + { + "type": "palette", + "id": "mine_palette", + "terrain": { "#": "t_rock", " ": "t_rock_floor", "$": "t_rock_floor" }, + "furniture": { "$": "f_boulder_large" } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "spiral_cw", + "object": { + "palettes": [ "mine_palette" ], + "mapgensize": [ 6, 6 ], + "rows": [ + "######", + " #", + "#### #", + "# # #", + "# #", + "######" + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "spiral_ccw", + "object": { + "palettes": [ "mine_palette" ], + "mapgensize": [ 6, 6 ], + "rows": [ + "######", + "# ", + "# ####", + "# # #", + "# #", + "######" + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "spiral_boulder_cw", + "object": { + "palettes": [ "mine_palette" ], + "mapgensize": [ 6, 6 ], + "rows": [ + "$$$$$$", + " $", + "$$$$ $", + "$ $ $", + "$ $", + "$$$$$$" + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "spiral_boulder_ccw", + "object": { + "palettes": [ "mine_palette" ], + "mapgensize": [ 6, 6 ], + "rows": [ + "$$$$$$", + "$ ", + "$ $$$$", + "$ $ $", + "$ $", + "$$$$$$" + ] + } + } +] diff --git a/data/json/npcs/mine/spiral_madman.json b/data/json/npcs/mine/spiral_madman.json new file mode 100644 index 0000000000000..5a130d2345717 --- /dev/null +++ b/data/json/npcs/mine/spiral_madman.json @@ -0,0 +1,126 @@ +[ + { + "type": "npc", + "id": "spiral_madman", + "//": "Former miner, poor fellow succumbed to spiral madness.", + "name_suffix": "miner", + "class": "NC_SPIRAL_MADMAN", + "attitude": 0, + "mission": 8, + "chat": "TALK_SPIRAL_MADMAN_FIRST_MEETING", + "faction": "no_faction" + }, + { + "type": "npc_class", + "id": "NC_SPIRAL_MADMAN", + "name": { "str": "Miner" }, + "job_description": "Spirals.", + "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], + "bonus_str": { "rng": [ 2, 4 ] }, + "bonus_dex": { "rng": [ 0, 2 ] }, + "worn_override": "NC_SPIRAL_MADMAN_worn", + "weapon_override": "NC_SPIRAL_MADMAN_wield" + }, + { + "type": "item_group", + "id": "NC_SPIRAL_MADMAN_worn", + "subtype": "collection", + "entries": [ + { "group": "clothing_work_boots", "damage": [ 0, 2 ] }, + { "group": "clothing_work_glasses", "prob": 60, "damage": [ 0, 2 ] }, + { "group": "clothing_work_gloves", "prob": 75, "damage": [ 0, 2 ] }, + { "group": "clothing_work_mask", "prob": 40, "damage": [ 0, 2 ] }, + { "item": "ear_plugs", "prob": 15, "damage": [ 0, 2 ] }, + { "item": "tool_belt", "prob": 25, "damage": [ 0, 2 ] }, + { + "distribution": [ + { + "collection": [ { "group": "clothing_work_pants", "damage": [ 0, 2 ] }, { "group": "clothing_work_torso", "damage": [ 0, 2 ] } ], + "prob": 75 + }, + { "item": "jumpsuit", "prob": 25, "damage": [ 0, 2 ] } + ] + }, + { "group": "underwear", "damage": [ 0, 1 ] }, + { "item": "miner_hat", "prob": 90, "damage": [ 0, 2 ] } + ] + }, + { + "type": "item_group", + "id": "NC_SPIRAL_MADMAN_wield", + "items": [ + [ "pickaxe", 50 ], + [ "shovel", 50 ], + [ "bucket", 20 ], + [ "gasoline_lantern", 10 ], + [ "electric_lantern", 10 ], + [ "oil_lamp", 10 ], + [ "jackhammer", 5 ], + [ "elec_jackhammer", 5 ] + ] + }, + { + "id": "TALK_SPIRAL_MADMAN_FIRST_MEETING", + "type": "talk_topic", + "dynamic_line": "Spirals?", + "speaker_effect": { "effect": { "u_add_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" } }, + "responses": [ + { + "text": "Hello there!", + "topic": "TALK_SPIRAL_MADMAN_GENERIC", + "condition": { "not": { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" } } + }, + { + "text": "I'm outta here. Bye.", + "topic": "TALK_DONE", + "condition": { "not": { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" } } + }, + { + "text": "Poor fellow - looks like you're out of your mind. Can't help you, sorry. I'm outta here. Bye.", + "topic": "TALK_DONE", + "condition": { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" } + } + ] + }, + { + "id": "TALK_SPIRAL_MADMAN_GENERIC", + "type": "talk_topic", + "dynamic_line": "", + "responses": [ + { "text": "What are you doing here?", "topic": "TALK_SPIRAL_MADMAN_SPIRALS" }, + { "text": "Sorry, what?", "topic": "TALK_SPIRAL_MADMAN_SPIRALS" }, + { "text": "I'm outta here. Bye.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_SPIRAL_MADMAN_SPIRALS", + "type": "talk_topic", + "dynamic_line": "", + "responses": [ + { "text": "Why are you repeating 'spirals' over and over again?", "topic": "TALK_SPIRAL_MADMAN_R_U_NUTS" }, + { "text": "Sorry, what?", "topic": "TALK_SPIRAL_MADMAN_R_U_NUTS" }, + { "text": "I'm outta here. Bye.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_SPIRAL_MADMAN_R_U_NUTS", + "type": "talk_topic", + "dynamic_line": "", + "responses": [ + { "text": "Are you nuts?", "topic": "TALK_SPIRAL_MADMAN_THIS_IS_MADNESS" }, + { "text": "Sorry, what?", "topic": "TALK_SPIRAL_MADMAN_THIS_IS_MADNESS" }, + { "text": "I'm outta here. Bye.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_SPIRAL_MADMAN_THIS_IS_MADNESS", + "type": "talk_topic", + "dynamic_line": "", + "responses": [ + { + "text": "Poor fellow - looks like you're out of your mind. Can't help you, sorry. I'm outta here. Bye.", + "topic": "TALK_DONE" + } + ] + } +] diff --git a/data/json/npcs/talk_tags.json b/data/json/npcs/talk_tags.json index a75f1f17c1ee8..148a71851d38e 100644 --- a/data/json/npcs/talk_tags.json +++ b/data/json/npcs/talk_tags.json @@ -1,4 +1,20 @@ [ + { + "type": "snippet", + "category": "", + "//": "Spiral madman's responses.", + "text": [ + "Spirals.", + "Spirals…", + "Spirals?", + "Spirals!", + "Spirals!!!", + "SpIrAlS.", + "SPIRALS.", + "AHAHAHAHA!!!", + "SpiRAAAAAAALS!" + ] + }, { "type": "snippet", "category": "", diff --git a/data/json/obsolete_terrains.json b/data/json/obsolete_terrains.json index 9d6f430d64b54..dc517d80da30e 100644 --- a/data/json/obsolete_terrains.json +++ b/data/json/obsolete_terrains.json @@ -25,7 +25,9 @@ "office_tower_b_entrance", "office_tower_b", "mine_entrance", - "mine_shaft" + "mine_shaft", + "spiral", + "spiral_hub" ] } ] diff --git a/data/json/overmap/overmap_special/mine.json b/data/json/overmap/overmap_special/mine.json new file mode 100644 index 0000000000000..d409849534a0e --- /dev/null +++ b/data/json/overmap/overmap_special/mine.json @@ -0,0 +1,63 @@ +[ + { + "type": "overmap_special", + "id": "Mine Entrance", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_lot_north" }, + { "point": [ 0, 1, 0 ], "overmap": "mine_entrance_north" }, + { "point": [ 1, 1, 0 ], "overmap": "mine_entrance_loading_zone_north" }, + { "point": [ 1, 0, 0 ], "overmap": "road_end_north" }, + { "point": [ 0, 1, 1 ], "overmap": "mine_entrance_roof_north" }, + { "point": [ 0, 1, -1 ], "overmap": "mine_shaft_middle_north" }, + { "point": [ 0, 1, -2 ], "overmap": "mine_shaft_lower_north" }, + { "point": [ 1, 1, -2 ], "overmap": "mine_shaft_lower_east_north" } + ], + "connections": [ + { "point": [ 0, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 0, 0, 0 ] }, + { "point": [ 1, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 1, 0, 0 ] } + ], + "locations": [ "wilderness" ], + "city_distance": [ 10, 40 ], + "city_sizes": [ 4, -1 ], + "occurrences": [ 0, 2 ], + "flags": [ "WILDERNESS" ] + }, + { + "type": "overmap_special", + "id": "Spiral mine", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_lot_north" }, + { "point": [ 0, 1, 0 ], "overmap": "mine_entrance_north" }, + { "point": [ 1, 1, 0 ], "overmap": "mine_entrance_loading_zone_north" }, + { "point": [ 1, 0, 0 ], "overmap": "road_end_north" }, + { "point": [ 0, 1, 1 ], "overmap": "mine_entrance_roof_north" }, + { "point": [ 0, 1, -1 ], "overmap": "mine_shaft_middle_north" }, + { "point": [ 0, 1, -2 ], "overmap": "mine_shaft_lower_north" }, + { "point": [ 1, 1, -2 ], "overmap": "mine_shaft_lower_east_north" }, + { "point": [ -1, 1, -2 ], "overmap": "mine_spiral_east_north" }, + { "point": [ -2, 1, -2 ], "overmap": "mine_spiral_central_north" }, + { "point": [ -3, 1, -2 ], "overmap": "mine_spiral_west_north" }, + { "point": [ -3, 1, -3 ], "overmap": "mine_spiral_-1_nw_north" }, + { "point": [ -2, 1, -3 ], "overmap": "mine_spiral_-1_n_north" }, + { "point": [ -1, 1, -3 ], "overmap": "mine_spiral_-1_ne_north" }, + { "point": [ -3, 2, -3 ], "overmap": "mine_spiral_-1_sw_north" }, + { "point": [ -2, 2, -3 ], "overmap": "mine_spiral_-1_s_north" }, + { "point": [ -1, 2, -3 ], "overmap": "mine_spiral_-1_se_north" }, + { "point": [ -3, 1, -4 ], "overmap": "mine_spiral_finale_nw_north" }, + { "point": [ -2, 1, -4 ], "overmap": "mine_spiral_finale_n_north" }, + { "point": [ -1, 1, -4 ], "overmap": "mine_spiral_finale_ne_north" }, + { "point": [ -3, 2, -4 ], "overmap": "mine_spiral_finale_sw_north" }, + { "point": [ -2, 2, -4 ], "overmap": "mine_spiral_finale_s_north" }, + { "point": [ -1, 2, -4 ], "overmap": "mine_spiral_finale_se_north" } + ], + "connections": [ + { "point": [ 0, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 0, 0, 0 ] }, + { "point": [ 1, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 1, 0, 0 ] } + ], + "locations": [ "wilderness" ], + "city_distance": [ 10, 40 ], + "city_sizes": [ 4, -1 ], + "occurrences": [ 0, 2 ], + "flags": [ "WILDERNESS" ] + } +] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_hardcoded.json b/data/json/overmap/overmap_terrain/overmap_terrain_hardcoded.json index 9135c4c7402d7..a47b500821000 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_hardcoded.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_hardcoded.json @@ -130,24 +130,6 @@ "see_cost": 2, "flags": [ "NO_ROTATE" ] }, - { - "type": "overmap_terrain", - "id": "spiral_hub", - "name": "spiral cavern", - "sym": "@", - "color": "pink", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] - }, - { - "type": "overmap_terrain", - "id": "spiral", - "name": "spiral cavern", - "sym": "@", - "color": "pink", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] - }, { "type": "overmap_terrain", "id": "cave", diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json b/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json index 4b946bab6f2a4..69511469ecc81 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json @@ -392,5 +392,30 @@ "color": "dark_gray", "see_cost": 5, "flags": [ "KNOWN_UP" ] + }, + { + "type": "overmap_terrain", + "id": [ + "mine_spiral_west", + "mine_spiral_central", + "mine_spiral_east", + "mine_spiral_-1_nw", + "mine_spiral_-1_n", + "mine_spiral_-1_ne", + "mine_spiral_-1_sw", + "mine_spiral_-1_s", + "mine_spiral_-1_se", + "mine_spiral_finale_nw", + "mine_spiral_finale_n", + "mine_spiral_finale_ne", + "mine_spiral_finale_sw", + "mine_spiral_finale_s", + "mine_spiral_finale_se" + ], + "name": "mine tunnels", + "sym": "O", + "color": "dark_gray", + "see_cost": 5, + "flags": [ "KNOWN_UP" ] } ] diff --git a/data/mods/Graphical_Overmap/go_overmap_terrain_hardcoded.json b/data/mods/Graphical_Overmap/go_overmap_terrain_hardcoded.json index cabc893f2281c..b191a9c5b5643 100644 --- a/data/mods/Graphical_Overmap/go_overmap_terrain_hardcoded.json +++ b/data/mods/Graphical_Overmap/go_overmap_terrain_hardcoded.json @@ -91,33 +91,33 @@ }, { "type": "overmap_terrain", - "id": "mine", - "copy-from": "mine", + "id": "mine_shaft_middle", + "copy-from": "mine_shaft_middle", "sym": "\u00D3" }, { "type": "overmap_terrain", - "id": "mine_down", - "copy-from": "mine_down", + "id": "mine_shaft_lower", + "copy-from": "mine_shaft_lower", "sym": "\u00D3" }, { "type": "overmap_terrain", - "id": "mine_finale", - "copy-from": "mine_finale", + "id": "mine", + "copy-from": "mine", "sym": "\u00D3" }, { "type": "overmap_terrain", - "id": "spiral_hub", - "copy-from": "spiral_hub", - "sym": "\u00EA" + "id": "mine_down", + "copy-from": "mine_down", + "sym": "\u00D3" }, { "type": "overmap_terrain", - "id": "spiral", - "copy-from": "spiral", - "sym": "\u00EA" + "id": "mine_finale", + "copy-from": "mine_finale", + "sym": "\u00D3" }, { "type": "overmap_terrain", diff --git a/data/mods/alt_map_key/overmap_terrain.json b/data/mods/alt_map_key/overmap_terrain.json index b36f4871df532..964abdde3832b 100644 --- a/data/mods/alt_map_key/overmap_terrain.json +++ b/data/mods/alt_map_key/overmap_terrain.json @@ -1873,22 +1873,6 @@ "sym": "M", "color": "i_black" }, - { - "type": "overmap_terrain", - "id": "spiral_hub", - "copy-from": "spiral_hub", - "name": "spiral cavern", - "sym": "@", - "color": "pink" - }, - { - "type": "overmap_terrain", - "id": "spiral", - "copy-from": "spiral", - "name": "spiral cavern", - "sym": "@", - "color": "pink" - }, { "type": "overmap_terrain", "id": "radio_tower", diff --git a/src/map.h b/src/map.h index 517c724753382..11a3728a1cd5d 100644 --- a/src/map.h +++ b/src/map.h @@ -1644,7 +1644,6 @@ class map void draw_lab( mapgendata &dat ); void draw_temple( const mapgendata &dat ); void draw_mine( mapgendata &dat ); - void draw_spiral( const mapgendata &dat ); void draw_anthill( const mapgendata &dat ); void draw_slimepit( const mapgendata &dat ); void draw_spider_pit( const mapgendata &dat ); diff --git a/src/mapgen.cpp b/src/mapgen.cpp index f71fed4becd0e..1517e3a0e57a0 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -2968,8 +2968,6 @@ void map::draw_map( mapgendata &dat ) draw_triffid( dat ); } else if( is_ot_match( "spider", terrain_type, ot_match_type::prefix ) ) { draw_spider_pit( dat ); - } else if( is_ot_match( "spiral", terrain_type, ot_match_type::prefix ) ) { - draw_spiral( dat ); } else if( is_ot_match( "temple", terrain_type, ot_match_type::prefix ) ) { draw_temple( dat ); } else if( is_ot_match( "mine", terrain_type, ot_match_type::prefix ) ) { @@ -4381,20 +4379,6 @@ void map::draw_mine( mapgendata &dat ) } } break; - - case 6: { // Spiral - const int orx = rng( SEEX - 4, SEEX ), ory = rng( SEEY - 4, SEEY ); - line( this, t_rock, point( orx, ory ), point( orx + 5, ory ) ); - line( this, t_rock, point( orx + 5, ory ), point( orx + 5, ory + 5 ) ); - line( this, t_rock, point( orx + 1, ory + 5 ), point( orx + 5, ory + 5 ) ); - line( this, t_rock, point( orx + 1, ory + 2 ), point( orx + 1, ory + 4 ) ); - line( this, t_rock, point( orx + 1, ory + 2 ), point( orx + 3, ory + 2 ) ); - ter_set( point( orx + 3, ory + 3 ), t_rock ); - add_item( point( orx + 2, ory + 3 ), item::make_corpse() ); - place_items( item_group_id( "mine_equipment" ), 60, point( orx + 2, ory + 3 ), - point( orx + 2, ory + 3 ), false, calendar::start_of_cataclysm ); - } - break; } if( terrain_type == "mine_down" ) { // Don't forget to build a slope down! @@ -4560,9 +4544,9 @@ void map::draw_mine( mapgendata &dat ) // Now, pick and generate a type of finale! int rn = 0; if( face.empty() ) { - rn = rng( 1, 3 ); // Amigara fault is not valid + rn = rng( 1, 2 ); // Amigara fault is not valid } else { - rn = rng( 1, 4 ); + rn = rng( 1, 3 ); } computer *tmpcomp = nullptr; @@ -4589,25 +4573,7 @@ void map::draw_mine( mapgendata &dat ) } break; - case 3: { // Spiral down - line( this, t_rock, point( 5, 5 ), point( 5, 18 ) ); - line( this, t_rock, point( 5, 5 ), point( 18, 5 ) ); - line( this, t_rock, point( 18, 5 ), point( 18, 18 ) ); - line( this, t_rock, point( 8, 18 ), point( 18, 18 ) ); - line( this, t_rock, point( 8, 8 ), point( 8, 18 ) ); - line( this, t_rock, point( 8, 8 ), point( 15, 8 ) ); - line( this, t_rock, point( 15, 8 ), point( 15, 15 ) ); - line( this, t_rock, point( 10, 15 ), point( 15, 15 ) ); - line( this, t_rock, point( 10, 10 ), point( 10, 15 ) ); - line( this, t_rock, point( 10, 10 ), point( 13, 10 ) ); - line( this, t_rock, point( 13, 10 ), point( 13, 13 ) ); - ter_set( point( 12, 13 ), t_rock ); - ter_set( point( 12, 12 ), t_slope_down ); - ter_set( point( 12, 11 ), t_slope_down ); - } - break; - - case 4: { // Amigara fault + case 3: { // Amigara fault // Construct the fault on the appropriate face switch( random_entry( face ) ) { case direction::NORTH: @@ -4642,63 +4608,6 @@ void map::draw_mine( mapgendata &dat ) } } -void map::draw_spiral( const mapgendata &dat ) -{ - const oter_id &terrain_type = dat.terrain_type(); - if( terrain_type == "spiral_hub" ) { - fill_background( this, t_rock_floor ); - line( this, t_rock, point( 23, 0 ), point( 23, 23 ) ); - line( this, t_rock, point( 2, 23 ), point( 23, 23 ) ); - line( this, t_rock, point( 2, 4 ), point( 2, 23 ) ); - line( this, t_rock, point( 2, 4 ), point( 18, 4 ) ); - line( this, t_rock, point( 18, 4 ), point( 18, 18 ) ); // bad - line( this, t_rock, point( 6, 18 ), point( 18, 18 ) ); - line( this, t_rock, point( 6, 7 ), point( 6, 18 ) ); - line( this, t_rock, point( 6, 7 ), point( 15, 7 ) ); - line( this, t_rock, point( 15, 7 ), point( 15, 15 ) ); - line( this, t_rock, point( 8, 15 ), point( 15, 15 ) ); - line( this, t_rock, point( 8, 9 ), point( 8, 15 ) ); - line( this, t_rock, point( 8, 9 ), point( 13, 9 ) ); - line( this, t_rock, point( 13, 9 ), point( 13, 13 ) ); - line( this, t_rock, point( 10, 13 ), point( 13, 13 ) ); - line( this, t_rock, point( 10, 11 ), point( 10, 13 ) ); - square( this, t_slope_up, point( 11, 11 ), point( 12, 12 ) ); - rotate( rng( 0, 3 ) ); - } else if( terrain_type == "spiral" ) { - fill_background( this, t_rock_floor ); - const int num_spiral = rng( 1, 4 ); - std::list offsets; - const int spiral_width = 8; - // Divide the room into quadrants, and place a spiral origin - // at a random offset within each quadrant. - for( int x = 0; x < 2; ++x ) { - for( int y = 0; y < 2; ++y ) { - const int x_jitter = rng( 0, SEEX - spiral_width ); - const int y_jitter = rng( 0, SEEY - spiral_width ); - offsets.push_back( point( ( x * SEEX ) + x_jitter, - ( y * SEEY ) + y_jitter ) ); - } - } - - // Randomly place from 1 - 4 of the spirals at the chosen offsets. - for( int i = 0; i < num_spiral; i++ ) { - const point chosen_point = random_entry_removed( offsets ); - const int orx = chosen_point.x; - const int ory = chosen_point.y; - - line( this, t_rock, point( orx, ory ), point( orx + 5, ory ) ); - line( this, t_rock, point( orx + 5, ory ), point( orx + 5, ory + 5 ) ); - line( this, t_rock, point( orx + 1, ory + 5 ), point( orx + 5, ory + 5 ) ); - line( this, t_rock, point( orx + 1, ory + 2 ), point( orx + 1, ory + 4 ) ); - line( this, t_rock, point( orx + 1, ory + 2 ), point( orx + 3, ory + 2 ) ); - ter_set( point( orx + 3, ory + 3 ), t_rock ); - ter_set( point( orx + 2, ory + 3 ), t_rock_floor ); - place_items( item_group_id( "spiral" ), 60, point( orx + 2, ory + 3 ), - point( orx + 2, ory + 3 ), false, calendar::turn_zero ); - } - } -} - void map::draw_spider_pit( const mapgendata &dat ) { const oter_id &terrain_type = dat.terrain_type(); diff --git a/src/overmap.cpp b/src/overmap.cpp index 83e9edf6e7e0b..baa6babc4fa8b 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -59,7 +59,6 @@ static const species_id species_ZOMBIE( "ZOMBIE" ); static const mongroup_id GROUP_CHUD( "GROUP_CHUD" ); static const mongroup_id GROUP_RIVER( "GROUP_RIVER" ); static const mongroup_id GROUP_SEWER( "GROUP_SEWER" ); -static const mongroup_id GROUP_SPIRAL( "GROUP_SPIRAL" ); static const mongroup_id GROUP_SWAMP( "GROUP_SWAMP" ); static const mongroup_id GROUP_WORM( "GROUP_WORM" ); static const mongroup_id GROUP_ZOMBIE( "GROUP_ZOMBIE" ); @@ -752,8 +751,6 @@ bool oter_t::is_hardcoded() const "slimepit", "slimepit_down", "spider_pit_under", - "spiral", - "spiral_hub", "temple", "temple_finale", "temple_stairs", @@ -1580,7 +1577,7 @@ bool overmap::generate_sub( const int z ) ter_set( p, oter_id( "central_lab" ) ); } else if( is_ot_match( "hidden_lab_stairs", oter_above, ot_match_type::contains ) ) { lab_points.push_back( city( p.xy(), rng( 1, 5 + z ) ) ); - } else if( is_ot_match( "mine_entrance", oter_ground, ot_match_type::type ) && z == -2 ) { + } else if( is_ot_match( "mine_entrance", oter_ground, ot_match_type::prefix ) && z == -2 ) { mine_points.push_back( city( ( p + tripoint_west ).xy(), rng( 6 + z, 10 + z ) ) ); requires_sub = true; } else if( oter_above == "mine_down" ) { @@ -1589,12 +1586,6 @@ bool overmap::generate_sub( const int z ) // technically not all finales need a sub level, // but at this point we don't know requires_sub = true; - } else if( oter_above == "mine_finale" ) { - for( const tripoint_om_omt &q : points_in_radius( p, 1, 0 ) ) { - ter_set( q, oter_id( "spiral" ) ); - } - ter_set( p, oter_id( "spiral_hub" ) ); - add_mon_group( mongroup( GROUP_SPIRAL, tripoint( i * 2, j * 2, z ), 2, 200 ) ); } } }