Skip to content

Commit a293772

Browse files
Aftershock: Add a food vendor to the spaceport. (#82087)
1 parent e280485 commit a293772

File tree

8 files changed

+207
-32
lines changed

8 files changed

+207
-32
lines changed

data/mods/Aftershock/items/comestibles/flesh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"id": "afs_jerky",
1515
"copy-from": "jerky",
1616
"name": { "str_sp": "meat flakes" },
17+
"price_postapoc": "1 USD 50 cent",
1718
"description": "Transparent thin hexagonal cuts of dried meat. Conspicuously uniform in both looks and texture."
1819
},
1920
{

data/mods/aftershock_exoplanet/itemgroups/food_groups.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,10 @@
8383
"subtype": "distribution",
8484
"id": "afs_stored_meats",
8585
"entries": [
86-
{ "item": "afs_synthetic_meat", "prob": 10, "container-item": "afs_foil_bag" },
87-
{ "item": "afs_jerky", "prob": 40, "container-item": "afs_foil_bag" }
86+
{ "item": "meat", "variant": "synth", "prob": 10, "container-item": "afs_foil_bag" },
87+
{ "item": "fish", "variant": "synth", "prob": 10, "container-item": "afs_foil_bag" },
88+
{ "item": "fish", "variant": "insect", "prob": 10, "container-item": "afs_foil_bag" },
89+
{ "item": "jerky", "variant": "synth", "prob": 40, "container-item": "afs_foil_bag" }
8890
]
8991
},
9092
{
@@ -134,7 +136,7 @@
134136
"subtype": "collection",
135137
"//": "This group was created automatically and may contain errors.",
136138
"container-item": "afs_foil_bag",
137-
"entries": [ { "item": "afs_kelp", "count": 9 } ]
139+
"entries": [ { "item": "kelp_sugar", "count": 9 } ]
138140
},
139141
{
140142
"type": "item_group",

data/mods/aftershock_exoplanet/items/comestibles/flesh.json

Lines changed: 55 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,40 @@
11
[
22
{
33
"type": "ITEM",
4-
"subtypes": [ "COMESTIBLE" ],
5-
"id": "afs_synthetic_meat",
4+
"id": "meat",
65
"copy-from": "meat",
7-
"name": { "str_sp": "synthetic meat" },
8-
"description": "A cut of vat grown lean meat, genetically similar to beef. Conspicuously uniform in both looks and texture.",
6+
"subtypes": [ "COMESTIBLE" ],
7+
"comestible_type": "FOOD",
8+
"variants": [
9+
{
10+
"id": "synth",
11+
"name": { "str_sp": "synthetic meat" },
12+
"description": "A cut of vat grown lean meat, genetically similar to beef. Conspicuously uniform in both looks and texture."
13+
}
14+
],
915
"parasites": 0
1016
},
1117
{
1218
"type": "ITEM",
19+
"id": "jerky",
1320
"subtypes": [ "COMESTIBLE" ],
14-
"id": "afs_jerky",
21+
"comestible_type": "FOOD",
1522
"copy-from": "jerky",
16-
"name": { "str_sp": "meat flakes" },
17-
"description": "Transparent thin hexagonal cuts of dried meat. Conspicuously uniform in both looks and texture."
23+
"price_postapoc": "1 USD 25 cent",
24+
"variants": [
25+
{
26+
"id": "synth",
27+
"name": { "str_sp": "meat flakes" },
28+
"description": "Transparent thin hexagonal cuts of dried meat. Conspicuously uniform in both looks and texture."
29+
}
30+
]
1831
},
1932
{
2033
"type": "ITEM",
2134
"id": "fish",
2235
"copy-from": "fish",
36+
"subtypes": [ "COMESTIBLE" ],
37+
"comestible_type": "FOOD",
2338
"variants": [
2439
{
2540
"id": "synth",
@@ -33,10 +48,22 @@
3348
}
3449
]
3550
},
51+
{
52+
"type": "ITEM",
53+
"id": "alien_jerky",
54+
"copy-from": "jerky",
55+
"subtypes": [ "COMESTIBLE" ],
56+
"comestible_type": "FOOD",
57+
"name": { "str_sp": "dried alien meat" },
58+
"price_postapoc": "1 USD 50 cent",
59+
"description": "Thin and long strips of white, almost sickly pale meat, clearly belonging to some sort of alien creature. It has a very strong taste, and is quite chewy.",
60+
"fun": 0,
61+
"quench": -7
62+
},
3663
{
3764
"type": "ITEM",
3865
"subtypes": [ "COMESTIBLE" ],
39-
"id": "curry_meat",
66+
"id": "afs_soup_meat",
4067
"looks_like": "soup_meat",
4168
"name": { "str_sp": "ramen" },
4269
"conditional_names": [ { "type": "COMPONENT_ID_SUBSTRING", "condition": "mutant", "name": { "str_sp": "frontier ramen" } } ],
@@ -50,7 +77,7 @@
5077
"calories": 381,
5178
"description": "Ramen's adaptability to dried and preserved ingredients make it a staple in the culinary landscapes of frontier outposts and shipping crews alike. Any spaceport worth visiting has a local ramen tradition of its own, and here the dish is slightly acidic, with a sweet aftertaste produced by the break-down of alien proteins.",
5279
"price": "14 USD",
53-
"price_postapoc": "14 USD",
80+
"price_postapoc": "2 USD 25 cent",
5481
"material": [ { "type": "water", "portion": 50 }, { "type": "flesh", "portion": 25 }, { "type": "veggy", "portion": 25 } ],
5582
"volume": "250 ml",
5683
"phase": "liquid",
@@ -59,6 +86,25 @@
5986
"vitamins": [ [ "vitC", 30 ], [ "calcium", 5 ], [ "iron", 28 ], [ "meat_allergen", 1 ], [ "veggy_allergen", 1 ] ],
6087
"fun": 8
6188
},
89+
{
90+
"id": "afs_streetfood_meat",
91+
"copy-from": "flesh",
92+
"weight": "275 g",
93+
"volume": "250 ml",
94+
"spoils_in": "1 day",
95+
"type": "ITEM",
96+
"subtypes": [ "COMESTIBLE" ],
97+
"comestible_type": "FOOD",
98+
"name": { "str_sp": "starport roast" },
99+
"description": "Streetfood from the Salus spaceport. White strips of meat, grilled and served with a heavy dressing of sour sauce. Who knows where it came from, but it tastes pretty good.",
100+
"price": "8 USD",
101+
"price_postapoc": "3 USD 50 cent",
102+
"fun": 5,
103+
"parasites": 0,
104+
"calories": 652,
105+
"vitamins": [ [ "calcium", 2 ], [ "iron", 12 ], [ "meat_allergen", 1 ] ],
106+
"flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ]
107+
},
62108
{
63109
"type": "ITEM",
64110
"subtypes": [ "COMESTIBLE" ],

data/mods/aftershock_exoplanet/items/comestibles/veggies.json

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
"type": "ITEM",
44
"subtypes": [ "COMESTIBLE" ],
5-
"id": "afs_kelp",
5+
"id": "kelp_sugar",
66
"copy-from": "spinach",
77
"name": { "str_sp": "kelp" },
88
"description": "Thin wafers of kelp, the essential greens of frontier cuisine. These were probably grown in some farm ship or another.",
@@ -24,7 +24,7 @@
2424
"calories": 165,
2525
"description": "Most ramen served in the frontier is already vegan through the use of synthetic meat and other meat substitutes. This variant simply doesn't pretend to include any meat at all. Slightly spicy.",
2626
"price": "12 USD",
27-
"price_postapoc": "12 USD",
27+
"price_postapoc": "1 USD 75 cent",
2828
"material": [ "veggy" ],
2929
"volume": "500 ml",
3030
"charges": 2,
@@ -33,6 +33,24 @@
3333
"vitamins": [ [ "vitC", 4 ], [ "calcium", 1 ], [ "iron", 5 ], [ "veggy_allergen", 1 ] ],
3434
"fun": 1
3535
},
36+
{
37+
"id": "afs_streetfood_veggy",
38+
"copy-from": "flesh",
39+
"weight": "275 g",
40+
"volume": "250 ml",
41+
"spoils_in": "5 day",
42+
"type": "ITEM",
43+
"subtypes": [ "COMESTIBLE" ],
44+
"name": { "str_sp": "starport yeast cake" },
45+
"description": "Streetfood from the Salus spaceport. A large square of fried dough topped with red sauce.",
46+
"price": "8 USD",
47+
"price_postapoc": "1 USD 50 cent",
48+
"fun": 3,
49+
"parasites": 0,
50+
"calories": 125,
51+
"vitamins": [ [ "vitC", 4 ], [ "calcium", 1 ], [ "iron", 5 ], [ "veggy_allergen", 1 ] ],
52+
"flags": [ "EATEN_HOT" ]
53+
},
3654
{
3755
"id": "afs_kibble",
3856
"type": "ITEM",

data/mods/aftershock_exoplanet/items/obsolete.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,5 +160,17 @@
160160
"//": "remove after 0.J",
161161
"id": "afs_frontier_cryomask_on",
162162
"replace": "afs_frontier_cryomask"
163+
},
164+
{
165+
"type": "MIGRATION",
166+
"//": "remove after 0.J",
167+
"id": "afs_magellan_suit_helmet_on",
168+
"replace": "jerky"
169+
},
170+
{
171+
"type": "MIGRATION",
172+
"//": "remove after 0.J",
173+
"id": "afs_jerky",
174+
"replace": "meat"
163175
}
164176
]

data/mods/aftershock_exoplanet/maps/mapgen/shuttlepad_salvors.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
" |ΩΩÖÖÖÖ×Ω|‘ ℗¾℗‘‘‘‘‘‘‘ À╫ ‘‘‘ ‘ ╫℗℗ÀÀ‘‘‘‘ä¦ìì·#",
3030
" |||####||| ℗ ℗¾‘‘‘ ╫╫╫╫‘╫╫╫╫½¾‘‘‘‘‘Ψ䦦··#",
3131
" ℗℗℗℗℗ ℗‘‘‘ ω‘‘℗¾¼¼‘‘‘╡ÅÅ╡‘ ᦷú¦",
32-
" ℗ Χ ‘‘℗℗¾¿‘℗ ‘‘‘‘‘‘╡Æ∙È‘ 2¦ûó¦",
32+
" ℗ Χ ‘‘℗℗¾¿‘℗ ‘‘‘‘‘‘╡ÆθÈ‘ 2¦ûó¦",
3333
" ℗℗ ℗℗ ℗℗℗℗ ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘╡Éõ╡‘‘½╡╡¦¦",
3434
" ---##------##--- ℗‘‘‘Ù‘‘‘‘Ù‘ Ψ ‘‘ ‘‘ ‘â╡ûø¦",
3535
" -Υ.³³..ΦΦ..ΦΦ%©- ¾‘‘¼╡----¦Á2 ‘ ‘Ù¦$$$$¦ýù¦",
@@ -78,7 +78,8 @@
7878
"χ": { "class": "uica_ground_soldier" },
7979
"ϋ": { "class": "uica_vehicle_merchant" },
8080
"ի": { "class": "salvor_camp_solo" },
81-
"λ": { "class": "salvor_fabricator" }
81+
"λ": { "class": "salvor_fabricator" },
82+
"θ": { "class": "salvor_street_food" }
8283
},
8384
"monster": {
8485
"ψ": { "monster": "mon_uica_tankbot" },
@@ -162,6 +163,7 @@
162163
"è": "t_strconc_floor",
163164
"é": "t_strconc_floor_olight",
164165
"ê": "t_thconc_floor_no_roof",
166+
"θ": "t_thconc_floor_no_roof",
165167
"ë": "t_thconc_floor_no_roof",
166168
"ì": "t_thconc_floor_no_roof",
167169
"í": "t_thconc_floor_no_roof",
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
[
2+
{
3+
"type": "npc_class",
4+
"id": "NC_SALVOR_STREET_FOOD",
5+
"name": { "str": "hawker " },
6+
"job_description": "A vendor selling street food.",
7+
"common": false,
8+
"traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ],
9+
"bonus_str": { "rng": [ 2, 3 ] },
10+
"bonus_dex": { "rng": [ 0, 2 ] },
11+
"bonus_int": { "rng": [ -2, 0 ] },
12+
"bonus_per": { "rng": [ 1, 3 ] },
13+
"worn_override": "NC_SALVOR_STREET_FOOD_worn",
14+
"carry_override": "EMPTY_GROUP",
15+
"weapon_override": "EMPTY_GROUP",
16+
"skills": [
17+
{ "skill": "speech", "bonus": { "rng": [ 4, 5 ] } },
18+
{ "skill": "survival", "bonus": { "rng": [ 2, 6 ] } },
19+
{ "skill": "cooking", "bonus": { "rng": [ 3, 5 ] } }
20+
],
21+
"shopkeeper_item_group": [ { "group": "afs_street_dry_food", "rigid": true } ],
22+
"shopkeeper_price_rules": [ { "group": "afs_street_vendor_food", "markup": 10 }, { "group": "afs_street_dry_food", "markup": 10 } ]
23+
},
24+
{
25+
"type": "npc",
26+
"id": "salvor_street_food",
27+
"name_unique": "Trés Landwell",
28+
"name_suffix": "hawker",
29+
"gender": "male",
30+
"age": 39,
31+
"height": 160,
32+
"class": "NC_SALVOR_STREET_FOOD",
33+
"attitude": 0,
34+
"mission": 3,
35+
"chat": "NC_SALVOR_STREET_FOOD",
36+
"faction": "UICA"
37+
},
38+
{
39+
"type": "item_group",
40+
"id": "NC_SALVOR_STREET_FOOD_worn",
41+
"subtype": "collection",
42+
"ammo": 100,
43+
"magazine": 100,
44+
"items": [ { "item": "afs_frontier_cryo" }, { "item": "apron_plastic" }, { "item": "afs_frontier_cryomask" } ]
45+
},
46+
{
47+
"type": "item_group",
48+
"id": "afs_street_vendor_food",
49+
"subtype": "collection",
50+
"items": [
51+
{ "item": "afs_streetfood_meat", "count": [ 2, 3 ], "container-item": "ceramic_bowl", "custom-flags": [ "HOT" ] },
52+
{
53+
"item": "afs_streetfood_veggy",
54+
"count": [ 2, 3 ],
55+
"container-item": "ceramic_bowl",
56+
"custom-flags": [ "HOT" ]
57+
},
58+
{ "item": "afs_soup_meat", "count": [ 2, 3 ], "container-item": "ceramic_bowl", "custom-flags": [ "HOT" ] },
59+
{ "item": "afs_soup_veggy", "count": [ 2, 3 ], "container-item": "ceramic_bowl", "custom-flags": [ "HOT" ] }
60+
]
61+
},
62+
{
63+
"type": "item_group",
64+
"id": "afs_street_dry_food",
65+
"subtype": "collection",
66+
"items": [ { "item": "alien_jerky", "count": [ 6, 13 ] } ]
67+
},
68+
{
69+
"id": [ "NC_SALVOR_STREET_FOOD", "NC_SALVOR_STREET_FOOD_SAFE" ],
70+
"type": "talk_topic",
71+
"dynamic_line": "&The food stall is a colorful array of various dishes, and the smell of spices and cooked meats cuts easily through the frozen air. The vendor is busy preparing a meal when you approach.\n\"Oh steemd do you see anything you like?\"",
72+
"speaker_effect": {
73+
"effect": [
74+
{ "npc_location_variable": { "context_val": "vendor_loc" } },
75+
{ "mapgen_update": "streetfood_reset", "target_var": { "context_val": "vendor_loc" } }
76+
]
77+
},
78+
"responses": [
79+
{ "text": "I'll have whatever it is you're cooking.", "topic": "TALK_DONE", "effect": [ "start_trade" ] },
80+
{ "text": "Are these things safe to eat?", "topic": "NC_SALVOR_STREET_FOOD_SAFE" }
81+
]
82+
},
83+
{
84+
"type": "mapgen",
85+
"nested_mapgen_id": "streetfood_reset_nest",
86+
"object": {
87+
"mapgensize": [ 1, 1 ],
88+
"flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ],
89+
"rows": [ "Ω" ],
90+
"terrain": { "Ω": "t_thconc_floor_no_roof" },
91+
"furniture": { "Ω": "f_oven" },
92+
"items": { "Ω": { "item": "afs_street_vendor_food" } }
93+
}
94+
},
95+
{
96+
"type": "mapgen",
97+
"update_mapgen_id": "streetfood_reset",
98+
"object": {
99+
"place_nested": [ { "chunks": [ "streetfood_reset_nest" ], "x": 15, "y": 22 } ],
100+
"faction_owner": [ { "id": "UICA", "x": 15, "y": 22 } ]
101+
}
102+
},
103+
{
104+
"id": [ "NC_SALVOR_STREET_FOOD_SAFE" ],
105+
"type": "talk_topic",
106+
"dynamic_line": "&The vendor chuckles at your question, wiping his hands on his apron.\nSafe? Yes very safe steemd, snow dry and clean steemd. In home we do not have so much snow, but here it is very good for food."
107+
}
108+
]

data/mods/aftershock_exoplanet/requirements.json

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"id": "meat_raw_steak",
5959
"type": "requirement",
6060
"//": "An unbroken slab of raw meat. For when scraps just aren't good enough.",
61-
"extend": { "components": [ [ [ "frost_human_flesh", 1 ], [ "afs_synthetic_meat", 1 ], [ "alien_flesh", 1 ] ] ] }
61+
"extend": { "components": [ [ [ "frost_human_flesh", 1 ], [ "alien_flesh", 1 ] ] ] }
6262
},
6363
{
6464
"id": "meat_red_raw",
@@ -94,9 +94,7 @@
9494
"id": "meat_cooked",
9595
"type": "requirement",
9696
"//": "meat you'd put on a sandwich",
97-
"extend": {
98-
"components": [ [ [ "alien_flesh_cooked", 1 ], [ "alien_meat_scrap_cooked", 10 ], [ "frost_human_cooked", 1 ], [ "afs_jerky", 1 ] ] ]
99-
}
97+
"extend": { "components": [ [ [ "alien_flesh_cooked", 1 ], [ "alien_meat_scrap_cooked", 10 ], [ "frost_human_cooked", 1 ] ] ] }
10098
},
10199
{
102100
"id": "human_meat",
@@ -109,17 +107,5 @@
109107
"type": "requirement",
110108
"//": "Cooked meat that non-cannibals would be unhappy eating.",
111109
"extend": { "components": [ [ [ "frost_human_cooked", 1 ] ] ] }
112-
},
113-
{
114-
"id": "veggy_any_fresh_uncooked",
115-
"type": "requirement",
116-
"//": "Any type of edible raw fat.",
117-
"extend": { "components": [ [ [ "afs_kelp", 1 ] ] ] }
118-
},
119-
{
120-
"id": "veggy_green",
121-
"type": "requirement",
122-
"//": "Any type of edible raw fat.",
123-
"extend": { "components": [ [ [ "afs_kelp", 1 ] ] ] }
124110
}
125111
]

0 commit comments

Comments
 (0)