From bd3a2e355d948026b0719f349dcbb8d226ea4880 Mon Sep 17 00:00:00 2001 From: Matthew Taylor Date: Thu, 9 Jan 2020 22:52:54 +0000 Subject: [PATCH] Update military surplus stores (#36825) * Split infantry clothing and combat gear groups * Update military surplus stores * Fix spawn chances --- data/json/itemgroups/SUS/library.json | 11 +++ data/json/itemgroups/clothing.json | 62 ++++++++----- data/json/mapgen/mil_surplus.json | 102 ++++++--------------- data/json/mapgen_palettes/mil_surplus.json | 95 +++++++++++++++---- 4 files changed, 154 insertions(+), 116 deletions(-) diff --git a/data/json/itemgroups/SUS/library.json b/data/json/itemgroups/SUS/library.json index 4a0f13fd99a7a..f4c9f3f25fb70 100644 --- a/data/json/itemgroups/SUS/library.json +++ b/data/json/itemgroups/SUS/library.json @@ -163,6 +163,17 @@ { "item": "survival_book", "count": [ 1, 2 ], "prob": 60 } ] }, + { + "id": "SUS_field_manual_bookcase", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a set of military field and technical manuals.", + "subtype": "collection", + "entries": [ + { "item": "manual_stabbing", "count": [ 1, 3 ], "prob": 80 }, + { "item": "manual_rifle", "count": [ 1, 3 ], "prob": 80 } + ] + }, { "id": "SUS_fiction_bookcase", "type": "item_group", diff --git a/data/json/itemgroups/clothing.json b/data/json/itemgroups/clothing.json index 87dfd1d08c068..d57b4a366b090 100644 --- a/data/json/itemgroups/clothing.json +++ b/data/json/itemgroups/clothing.json @@ -87,30 +87,59 @@ ] }, { - "id": "clothing_soldier_set", + "id": "clothing_military", "type": "item_group", "subtype": "collection", "//": "Standard (non-winter) set of clothes worn by soldiers and paramilitary forces.", "items": [ { "group": "clothing_soldier_shirt" }, { "item": "jacket_army" }, - { "item": "elbow_pads", "prob": 10 }, { "item": "pants_army" }, { "item": "webbing_belt" }, - { "item": "knee_pads", "prob": 85 }, { "distribution": [ { "item": "socks", "prob": 95 }, { "item": "socks_wool", "prob": 5 } ] }, { "item": "boots_combat" }, - { "item": "helmet_army", "prob": 80 }, - { "item": "gloves_tactical", "prob": 60 }, - { "item": "ballistic_vest_esapi", "prob": 90 }, - { "item": "molle_pack", "prob": 85 }, - { "group": "clothing_tactical_leg", "prob": 15 }, { "distribution": [ { "collection": [ { "item": "sports_bra" }, { "item": "boy_shorts" } ] }, { "distribution": [ { "item": "briefs" }, { "item": "boxer_briefs" }, { "item": "boxer_shorts" } ] } ] - }, + } + ] + }, + { + "id": "clothing_military_winter", + "type": "item_group", + "subtype": "collection", + "//": "Winter set of clothes worn by soldiers and paramilitary forces.", + "items": [ + { "group": "clothing_soldier_shirt" }, + { "item": "winter_jacket_army" }, + { "item": "winter_pants_army" }, + { "item": "webbing_belt" }, + { "distribution": [ { "item": "socks", "prob": 10 }, { "item": "socks_wool", "prob": 90 } ] }, + { "item": "boots_combat" }, + { + "distribution": [ + { "collection": [ { "item": "sports_bra" }, { "item": "boy_shorts" } ] }, + { "distribution": [ { "item": "briefs" }, { "item": "boxer_briefs" }, { "item": "boxer_shorts" } ] } + ] + } + ] + }, + { + "id": "clothing_soldier_set", + "type": "item_group", + "subtype": "collection", + "//": "Standard (non-winter) set of clothes and combat gear worn by soldiers and paramilitary forces.", + "items": [ + { "group": "clothing_military" }, + { "item": "elbow_pads", "prob": 10 }, + { "item": "knee_pads", "prob": 85 }, + { "item": "helmet_army", "prob": 80 }, + { "item": "gloves_tactical", "prob": 60 }, + { "item": "ballistic_vest_esapi", "prob": 90 }, + { "item": "molle_pack", "prob": 85 }, + { "group": "clothing_tactical_leg", "prob": 15 }, { "distribution": [ { "group": "clothing_glasses", "prob": 60 }, @@ -127,27 +156,16 @@ "id": "clothing_soldier_winter_set", "type": "item_group", "subtype": "collection", - "//": "Winter set of clothes worn by soldiers and paramilitary forces.", + "//": "Winter set of clothes and combat gear worn by soldiers and paramilitary forces.", "items": [ - { "group": "clothing_soldier_shirt" }, - { "item": "winter_jacket_army" }, + { "group": "clothing_military_winter" }, { "item": "elbow_pads", "prob": 10 }, - { "item": "winter_pants_army" }, - { "item": "webbing_belt" }, { "item": "knee_pads", "prob": 85 }, - { "distribution": [ { "item": "socks", "prob": 10 }, { "item": "socks_wool", "prob": 90 } ] }, - { "item": "boots_combat" }, { "collection": [ { "item": "helmet_army" }, { "item": "helmet_liner" } ], "prob": 80 }, { "collection": [ { "item": "gloves_liner", "prob": 60 }, { "item": "winter_gloves_army" } ], "prob": 80 }, { "item": "ballistic_vest_esapi", "prob": 90 }, { "item": "molle_pack", "prob": 85 }, { "group": "clothing_tactical_leg", "prob": 15 }, - { - "distribution": [ - { "collection": [ { "item": "sports_bra" }, { "item": "boy_shorts" } ] }, - { "distribution": [ { "item": "briefs" }, { "item": "boxer_briefs" }, { "item": "boxer_shorts" } ] } - ] - }, { "distribution": [ { "group": "clothing_glasses", "prob": 60 }, diff --git a/data/json/mapgen/mil_surplus.json b/data/json/mapgen/mil_surplus.json index 60d236b7ca259..47c585a51d386 100644 --- a/data/json/mapgen/mil_surplus.json +++ b/data/json/mapgen/mil_surplus.json @@ -10,52 +10,29 @@ "...........~~...........", "...........~~...........", "..-''''''--++--''''''--.", - "..| QrQd |.", + "..| QrQ@ |.", "..| # b b |.", "..| # *]* |.", - "..| # d *8* |.", + "..| # @ *8* |.", "..| # *** |.", "..| |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", - "..| R R R R R R R R R |.", + "..| A A A B B B C C C |.", + "..| A A A B B B C C C |.", + "..| A A A F E E C C C |.", + "..| A A A F E E C C C |.", + "..| A A A F E E C C C |.", + "..| A A A F E E C C C |.", + "..| A A A F F F C C C |.", + "..| A A A F F F F F F |.", + "..| A A A F D D F F F |.", + "..| A A A F D D F F F |.", + "..| A A A F D D F F F |.", "..| |.", "..|-+-----+--------+- |.", - "..|& %|4YYYUUYUU<|LL|d|.", + "..|& |4YYYUUYUU<|LL|@|.", "..|----YYYYYYYYYY-----|." ], - "palettes": [ "mil_surplus" ], - "place_loot": [ - { "group": "mil_armor", "x": 4, "y": [ 9, 19 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_armor", "x": 6, "y": [ 9, 19 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_armor", "x": 8, "y": [ 9, 19 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_surplus", "x": 10, "y": [ 9, 19 ], "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_surplus", "x": 12, "y": [ 9, 19 ], "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_surplus", "x": 14, "y": [ 9, 19 ], "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_food_nodrugs", "x": 16, "y": [ 9, 19 ], "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_food_nodrugs", "x": 18, "y": [ 9, 19 ], "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_food_nodrugs", "x": 20, "y": [ 9, 19 ], "chance": 90, "repeat": [ 1, 4 ] } - ], - "items": { - "%": { "item": "softdrugs", "chance": 30, "repeat": [ 1, 3 ] }, - "L": { "item": "cleaning", "chance": 30, "repeat": [ 1, 3 ] }, - "U": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] }, - "d": [ - { "item": "mil_armor", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "mil_armor_pants", "chance": 80, "repeat": [ 1, 4 ] }, - { "item": "mil_armor_torso", "chance": 80, "repeat": [ 1, 4 ] }, - { "item": "mil_armor_helmet", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "shoestore_shoes", "chance": 90, "repeat": [ 1, 8 ] } - ] - } + "palettes": [ "mil_surplus" ] } }, { @@ -132,54 +109,27 @@ ".--``````--++--``````--.", ".|### @ @ |.", ".| S# |.", - ".| # R RR R |.", - ".| |.", + ".| # A BB C |.", + ".|L |.", ".|--- A A A ---|.", ".|& | A A A / ^|.", ".| + A A A ---|.", - ".|% | A A A / ^|.", + ".| | A A A / ^|.", ".|--- A A A ---|.", ".| |.", - ".| BBBBBBB D D D D |.", - ".| D D D D |.", - ".| BBBBBBB D D D D |.", - ".| D D D D |.", - ".| BBBBBBB D D D D |.", + ".| DDDBBBB C C F F |.", + ".| C C F F |.", + ".| CCCCCCC C C F F |.", + ".| C C F F |.", + ".| CCCCCCC C C F F |.", ".| |.", - ".| CCCCCCC CCCCCCC |.", + ".| EEEEEEE FFFFFFF |.", ".| |.", - ".| CCCCCCC CCCCCCC |4", + ".| FFFFFFF FFFFFFF |4", ".----------------------.", "........................" ], - "palettes": [ "mil_surplus" ], - "items": { - "R": { "item": "mil_armor", "chance": 50, "repeat": [ 1, 2 ] }, - "%": { "item": "softdrugs", "chance": 30 }, - "@": [ - { "item": "mil_armor", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "mil_armor_pants", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "mil_armor_torso", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "mil_armor_helmet", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "shoestore_shoes", "chance": 90, "repeat": [ 1, 8 ] } - ] - }, - "place_loot": [ - { "group": "mil_armor", "x": 8, "y": [ 7, 11 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_armor", "x": 11, "y": [ 7, 11 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_armor", "x": 14, "y": [ 7, 11 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_surplus", "x": 14, "y": [ 13, 17 ], "chance": 90, "repeat": [ 1, 2 ] }, - { "group": "mil_surplus", "x": 16, "y": [ 13, 17 ], "chance": 90, "repeat": [ 1, 2 ] }, - { "group": "mil_surplus", "x": 18, "y": [ 13, 17 ], "chance": 90, "repeat": [ 1, 2 ] }, - { "group": "mil_surplus", "x": 20, "y": [ 13, 17 ], "chance": 90, "repeat": [ 1, 2 ] }, - { "group": "mil_armor_torso", "x": [ 3, 9 ], "y": 13, "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_armor_helmet", "x": [ 3, 9 ], "y": 15, "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_armor_pants", "x": [ 3, 9 ], "y": 17, "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "mil_food_nodrugs", "x": [ 3, 9 ], "y": 19, "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_food_nodrugs", "x": [ 3, 9 ], "y": 21, "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_food_nodrugs", "x": [ 14, 20 ], "y": 19, "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "mil_food_nodrugs", "x": [ 14, 20 ], "y": 21, "chance": 90, "repeat": [ 1, 4 ] } - ] + "palettes": [ "mil_surplus" ] } }, { diff --git a/data/json/mapgen_palettes/mil_surplus.json b/data/json/mapgen_palettes/mil_surplus.json index 2124529ff2514..510d90661417a 100644 --- a/data/json/mapgen_palettes/mil_surplus.json +++ b/data/json/mapgen_palettes/mil_surplus.json @@ -3,20 +3,7 @@ "type": "palette", "id": "mil_surplus", "terrain": { - ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ], - " ": "t_floor", - "#": "t_floor", - "@": "t_floor", - "^": "t_floor", - "%": "t_floor", - "&": "t_floor", - "h": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "R": "t_floor", - "S": "t_floor", + ".": "t_region_groundcover_urban", "~": "t_sidewalk", "-": "t_wall_w", "|": "t_wall_w", @@ -37,19 +24,91 @@ "@": "f_mannequin", "L": "f_locker", "^": [ "f_bigmirror", "f_bigmirror", "f_bigmirror", "f_bigmirror_b" ], - "R": "f_rack", "S": "f_stool", "A": "f_rack", "B": "f_rack", "C": "f_rack", - "D": [ "f_displaycase", "f_displaycase", "f_displaycase", "f_displaycase", "f_displaycase_b" ], + "D": "f_rack", + "E": "f_rack", + "F": "f_rack", "*": "f_canvas_wall", "8": "f_groundsheet", "]": "f_canvas_door", "Q": "f_camp_chair", "b": "f_brazier", - "r": "f_tourist_table", - "d": "f_mannequin" + "r": "f_tourist_table" + }, + "items": { + "@": { + "item": { "subtype": "distribution", "entries": [ { "group": "clothing_military" }, { "group": "clothing_military_winter" } ] }, + "chance": 70 + }, + "A": { + "item": { + "subtype": "distribution", + "entries": [ + { "item": "canteen", "prob": 3 }, + { "item": "e_tool", "prob": 3 }, + { "item": "two_way_radio", "prob": 1 }, + { "item": "mess_kit", "prob": 3 }, + { "item": "camelbak", "prob": 2 }, + { "item": "mess_tin", "prob": 2 }, + { "collection": [ { "item": "esbit_stove" }, { "item": "chem_hexamine", "count": [ 1, 3 ] } ], "prob": 2 } + ] + }, + "repeat": [ 1, 3 ], + "chance": 70 + }, + "B": { + "item": { + "subtype": "distribution", + "entries": [ + { "item": "ballistic_vest_empty", "prob": 30 }, + { "item": "esapi_plate", "count": [ 1, 3 ], "prob": 40 }, + { "item": "esbi_plate", "count": [ 1, 3 ], "prob": 30 } + ] + }, + "repeat": [ 1, 3 ], + "chance": 70 + }, + "C": { "item": "MRE", "chance": 90, "repeat": [ 1, 3 ] }, + "D": { + "item": { + "subtype": "distribution", + "entries": [ + { "item": "helmet_army", "prob": 60 }, + { "item": "tac_helmet", "prob": 10 }, + { "item": "helmet_liner", "prob": 10 }, + { "item": "glasses_bal", "prob": 10 }, + { "item": "mask_gas", "prob": 10 } + ] + }, + "repeat": [ 1, 3 ], + "chance": 70 + }, + "E": { "item": "SUS_field_manual_bookcase", "chance": 60 }, + "F": { + "item": { + "subtype": "distribution", + "entries": [ + { "item": "hat_boonie", "prob": 1 }, + { "item": "webbing_belt", "prob": 1 }, + { "item": "pants_army", "prob": 1 }, + { "item": "jacket_army", "prob": 1 }, + { "item": "winter_pants_army", "prob": 1 }, + { "item": "winter_jacket_army", "prob": 1 }, + { "item": "knee_pads", "prob": 1 }, + { "item": "elbow_pads", "prob": 1 }, + { "item": "legpouch_large", "prob": 1 }, + { "item": "gloves_tactical", "prob": 1 }, + { "item": "molle_pack", "prob": 1 } + ] + }, + "repeat": [ 1, 3 ], + "chance": 60 + }, + "L": { "item": "SUS_janitors_closet", "chance": 60 }, + "U": { "item": "trash" } }, "toilets": { "&": { } } }