diff --git a/data/json/itemgroups/SUS_specific_use_storage_items.json b/data/json/itemgroups/SUS_specific_use_storage_items.json index 9c428abddbf11..1bedb02635cd9 100644 --- a/data/json/itemgroups/SUS_specific_use_storage_items.json +++ b/data/json/itemgroups/SUS_specific_use_storage_items.json @@ -1,4 +1,89 @@ [ + { + "id": "SUS_evac_shelter_locker", + "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": "Each locker contains by spec one jacket, one blanket, one gas mask, a flashlight, a plastic bowl and utensils, a lighter, and two bottles of water. Not every locker is fully stocked.", + "subtype": "collection", + "items": [ + [ "evac_pamphlet", 99 ], + [ "jacket_evac", 75 ], + [ "emer_blanket", 75 ], + [ "mask_gas", 5 ], + [ "flashlight", 50 ], + [ "lighter", 20 ], + { "item": "water_clean", "count": 2, "prob": 80 }, + { "item": "protein_bar_evac", "count": 3 }, + { + "collection": [ { "item": "plastic_spoon" }, { "item": "plastic_knife" }, { "item": "plastic_fork" }, { "item": "bowl_plastic" } ], + "prob": 90 + } + ] + }, + { + "id": "SUS_evac_shelter_cabinet", + "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": "The cabinets contain a stock of delicious evac protein bars, and may contain clean water, cans of food, and spare blankets.", + "subtype": "collection", + "items": [ + { + "distribution": [ + { + "collection": [ { "item": "emer_blanket", "count": 5, "prob": 80 }, { "item": "jacket_evac", "count": 5, "prob": 80 } ], + "prob": 30 + }, + { "item": "water_clean", "count": 12, "prob": 20 }, + { "item": "protein_bar_evac", "count": 24, "prob": 60 }, + { + "collection": [ + { "item": "extinguisher", "prob": 70 }, + { "item": "1st_aid", "count": [ 1, 3 ], "prob": 85 }, + { "item": "two_way_radio", "prob": 65 }, + { "item": "light_disposable_cell", "count": [ 2, 4 ], "prob": 65 }, + { "item": "electric_lantern", "prob": 35 } + ], + "prob": 10 + }, + { + "collection": [ + { "item": "detergent", "count": [ 1, 2 ] }, + { "item": "brush", "prob": 85 }, + { "item": "bleach", "prob": 65 }, + { "item": "ammonia", "prob": 35 } + ], + "prob": 15 + }, + { + "collection": [ + { "item": "can_beans", "count": 12, "prob": 50 }, + { "item": "can_tomato", "count": 12, "prob": 40 }, + { "item": "soup_chicken", "count": 12, "prob": 20 }, + { "item": "can_opener", "prob": 90 } + ], + "prob": 5 + } + ] + }, + [ "evac_pamphlet", 15 ] + ] + }, + { + "id": "SUS_evac_shelter_sink", + "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": "The cabinets contain a stock of delicious evac protein bars, and may contain clean water, cans of food, and spare blankets.", + "subtype": "collection", + "items": [ + { "item": "soap", "count": [ 1, 2 ] }, + [ "brush", 90 ], + [ "bleach", 45 ], + [ "ammonia", 25 ], + [ "1st_aid", 60 ], + { "item": "paper", "count": [ 1, 3 ] }, + [ "evac_pamphlet", 10 ] + ] + }, { "id": "SUS_silverware", "type": "item_group", diff --git a/data/json/items/comestibles/protein.json b/data/json/items/comestibles/protein.json index 26955af51a78c..bebe718077864 100644 --- a/data/json/items/comestibles/protein.json +++ b/data/json/items/comestibles/protein.json @@ -73,6 +73,27 @@ "calories": 100, "vitamins": [ ] }, + { + "id": "protein_bar_evac", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": { "str": "emergency protein ration", "str_pl": "emergency protein rations" }, + "//": "Inspired by, but not based on, a true story", + "description": "SoyPelusa ran a highly successful crowdfunding campaign for this protein bar. A person can live on one of these bars, three times a day, presumably forever. After backers received their product, a single flaw was found: most consumers found starvation preferable to the flavor. Warehouses of the product went unsold as the company went bankrupt, providing the perfect opportunity for FEMA to scoop them up and stock the evac shelters. Now, you hold a piece of famous crowdfunding history in your hands. How exciting.", + "weight": "150 g", + "volume": "223 ml", + "price": 500, + "flags": [ "EDIBLE_FROZEN" ], + "healthy": -1, + "fun": -5, + "quench": -9, + "material": [ "fruit", "veggy" ], + "symbol": "%", + "color": "green", + "container": "wrapper", + "calories": 400, + "vitamins": [ [ "calcium", 30 ], [ "iron", 30 ], [ "vitA", 30 ], [ "vitB", 30 ], [ "vitC", 30 ] ] + }, { "id": "protein_shake", "copy-from": "protein_drink", diff --git a/data/json/items/newspaper.json b/data/json/items/newspaper.json index 75cb276de6c1f..22310c82d5094 100644 --- a/data/json/items/newspaper.json +++ b/data/json/items/newspaper.json @@ -182,5 +182,19 @@ "flags": "TRADER_AVOID", "weight": "3 g", "volume": 0 + }, + { + "type": "GENERIC", + "id": "evac_pamphlet", + "category": "books", + "name": "FEMA evacuation pamphlet", + "description": "Welcome to your Emergency Survival Shelter. We hope your stay here will be short and comfortable. Provided are an emergency blanket, high visibility jacket, gas mask, and food and water rations for one day, as well as an emergency lighter and flashlight. There are further supplies in the communal cabinets should the facility be over its intended capacity. These resources are checked and updated by FEMA on a regular basis, but if you find some items missing, please contact a FEMA supervisor at your earliest convenience.\n\nPlease wait in the shelter until an official evacuation transport arrives to take you to your homes or, in the event of a major disaster, to the nearest evacuation gathering point.\n\nIn the event that you have been evacuated under violent circumstances, FEMA recommends taking cover in the shelter's basement until help arrives. Remember: if you leave the shelter, we cannot find you to take you to safety.", + "weight": "5 g", + "volume": "15 ml", + "material": [ "paper" ], + "looks_like": "newspaper", + "color": "white", + "symbol": "?", + "flags": "TRADER_AVOID" } ] diff --git a/data/json/mapgen/shelter.json b/data/json/mapgen/shelter.json index 6481427e2a950..907e696968a78 100644 --- a/data/json/mapgen/shelter.json +++ b/data/json/mapgen/shelter.json @@ -3,6 +3,7 @@ "id": "shelter_supplies", "type": "item_group", "subtype": "collection", + "//": "obsolete item group, use SUS instead", "items": [ [ "jacket_evac", 100 ], [ "emer_blanket", 100 ], [ "mask_gas", 12 ] ] }, { @@ -11,6 +12,7 @@ "weight": 100, "om_terrain": [ "shelter" ], "object": { + "fill_ter": "t_floor", "rows": [ " !!!!!!!!!!!!!!!! ", " `!!!!`!!!!`!!!!` ", @@ -38,7 +40,6 @@ " |----:--+-:----|4 " ], "palettes": [ "shelter" ], - "items": { "l": { "item": "shelter_supplies", "chance": 20, "repeat": [ 0, 1 ] } }, "computers": { "6": { "name": "Evac shelter computer", @@ -104,6 +105,7 @@ "weight": 100, "om_terrain": [ "shelter_1" ], "object": { + "fill_ter": "t_floor", "rows": [ " !!!!!!!!!!!!!!!! ", " `!!!!`!!!!`!!!!` ", @@ -131,7 +133,6 @@ " |----:--+-:----| " ], "palettes": [ "shelter" ], - "items": { "l": { "item": "shelter_supplies", "chance": 20, "repeat": [ 0, 1 ] } }, "computers": { "6": { "name": "Evac shelter computer", @@ -197,6 +198,7 @@ "weight": 100, "om_terrain": [ "shelter_2" ], "object": { + "fill_ter": "t_floor", "rows": [ " `!!!!`!!!!`!!!!` ", " `!!!!`!!!!`!!!!` ", @@ -204,27 +206,26 @@ " `!!!!`!!!!`!!!!` ", " `!!!!`!!!!`!!!!` ", " &&&&&&&&&&&&&&&& ", - " |-:-++-:-| ", - " |--|........|--| ", - " |*|c........ccc| ", - " |=|............| ", - " --..............-- ", - " |b..............b| ", - " :b..............b: ", - " |b...|--++--|...b| ", - " |c..l|>....>|l..c| ", - " |c..l|>....>|l..c| ", - " |b...|--++--|...b| ", - " :b..............b: ", - " |b..............b| ", - " --ccc..b..b..ccc-- ", - " |..c..b..b..c..| ", - " |6....b..b....x|4 ", - " |--|........|--| ", + " |-:-++-:-| ", + " ||------|%......l| ", + " |*|cccc6........l| ", + " |.=.............l| ", + " |--|.............--| ", + " |b......bbbb......b| ", + " :b................b: ", + " |b......llll......b| ", + " |c......|--|......c| ", + " |c.......>>.......c| ", + " |b.......>>.......b| ", + " :b......|--|......b: ", + " |b......llll......b| ", + " |--..............-- ", + " |c.....bbbb.....c| ", + " |cccx........cccc|4 ", + " |---|l......l|---| ", " |-:--+-:-| " ], "palettes": [ "shelter" ], - "items": { "l": { "item": "shelter_supplies", "chance": 20, "repeat": [ 0, 1 ] } }, "computers": { "6": { "name": "Evac shelter computer", @@ -251,23 +252,23 @@ " ", " ", " ", - " 4444444443 ", - " |44|........3443 ", - " |>.............3 ", - " |..........#...3 ", - " ||..:...........33 ", - " |................3 ", - " |................3 ", - " |................3 ", - " |................3 ", - " |................3 ", - " |................3 ", + " 4444444443 ", + " |4444444|........3 ", + " |>.....#.........3 ", " |................3 ", + " ||................33 ", + " |..................3 ", + " |..................3 ", + " |..................3 ", + " |..................3 ", + " |..............:...3 ", + " |..................3 ", + " |..................3 ", + " |.....&............3 ", + " ||................33 ", " |................3 ", - " ||...&..........33 ", - " |..............3 ", - " |..............5 ", - " |--|........|--3 ", + " |................5 ", + " |---|........|---3 ", " |--------| " ], "terrain": { @@ -290,6 +291,7 @@ "weight": 100, "om_terrain": [ "shelter_under" ], "object": { + "fill_ter": "t_linoleum_white", "rows": [ "########################", "########################", @@ -298,15 +300,15 @@ "####;;;;;;;;;;;;;;;;####", "####;bbbbbbbbbbbbbb;####", "####;b____________b;####", - "####;b____________b;####", - "####;b____________b;####", - "####;b___|-++-|___b;####", - "####;b___|____|___b;####", - "####;b___+_<<_+___b;####", - "####;b___+_<<_+___b;####", - "####;b___|____|___b;####", - "####;b___|-++-|___b;####", - "####;b____________b;####", + "####;----_________b;####", + "####;T|T||lllll___b;####", + "####;____|----|___b;####", + "####;S%S_+____|___b;####", + "####;----|_<<_+___b;####", + "####;S%S_|_<<_+___b;####", + "####;____+____|___b;####", + "####;T|T||----|___b;####", + "####;---|llllll___b;####", "####;b____________b;####", "####;b____________b;####", "####;bbbbbbbbbbbbbb;####", @@ -326,6 +328,7 @@ "weight": 10, "om_terrain": [ "shelter_under" ], "object": { + "fill_ter": "t_linoleum_white", "rows": [ "########################", "########################", @@ -334,15 +337,15 @@ "####;;;;;;;;;;;;;;;;####", "####;bbbbbbbbbbbbbb;####", "####;b____________b;####", - "####;b____________b;####", - "####;b____________b;####", - "####;b___|-++-|___b;####", - "####;b___|____|___b;####", - "####;b___+_<<_+___b;####", - "####;b___+_<<_+___b;####", - "####;b___|____|___b;####", - "####;b___|-++-|___b;####", - "####;b____________b;####", + "####;----_________b;####", + "####;T|T||lllll___b;####", + "####;____|----|___b;####", + "####;S%S_+____|___b;####", + "####;----|_<<_+___b;####", + "####;S%S_|_<<_+___b;####", + "####;____+____|___b;####", + "####;T|T||----|___b;####", + "####;---|llllll___b;####", "####;b____________b;####", "####;b____________b;####", "####;bbbbbbbbbbbbbb;####", @@ -354,7 +357,7 @@ ], "palettes": [ "shelter" ], "items": { "_": { "item": "shelter", "chance": 10 } }, - "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 5, 18 ], "y": [ 5, 18 ], "density": 0.2 } ] + "monsters": { "_": { "monster": "GROUP_ZOMBIE", "chance": 40 }, "b": { "monster": "GROUP_ZOMBIE", "chance": 10 } } } } ] diff --git a/data/json/mapgen_palettes/shelter.json b/data/json/mapgen_palettes/shelter.json index 8140a264ffff0..15eac21c69a91 100644 --- a/data/json/mapgen_palettes/shelter.json +++ b/data/json/mapgen_palettes/shelter.json @@ -3,22 +3,18 @@ "type": "palette", "id": "shelter", "terrain": { - " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], + " ": "t_region_groundcover_urban", "!": "t_pavement", "`": "t_pavement_y", "&": "t_sidewalk", "#": "t_rock", "+": "t_door_c", "-": "t_wall_w", - ".": "t_floor", - "_": "t_rock_floor", + "_": "t_linoleum_white", "6": "t_console", ":": "t_window_domestic", ">": "t_stairs_down", "<": "t_stairs_up", - "b": "t_floor", - "c": "t_floor", - "l": "t_floor", "x": "t_console_broken", "|": "t_wall_w", ";": "t_concrete_wall", @@ -26,6 +22,12 @@ "=": "t_door_locked_interior", "4": "t_gutter_downspout" }, - "furniture": { "b": "f_bench", "c": "f_counter", "l": "f_locker" } + "furniture": { "b": "f_bench", "c": "f_counter", "l": "f_locker", "S": "f_sink", "%": "f_trashcan" }, + "toilets": { "T": { } }, + "items": { + "l": { "item": "SUS_evac_shelter_locker", "chance": 90 }, + "c": { "item": "SUS_evac_shelter_cabinet", "chance": 70 }, + "S": { "item": "SUS_evac_shelter_sink", "chance": 70 } + } } ]