Skip to content

Commit 522fa94

Browse files
authored
[Aftershock] UICA Shuttle Bases (#79144)
* Add UICA Shuttlebases to the Exo-Planet * Lint * Add a Quartermaster NPC. They can be bribed to sell you UICA gear and supplies. * Lint * Add Lynx Explorer Vehicle, Quartermaster has less stuff to sell, Shuttlebase spawns ground vehicles * Add Vehicle Repair group stub * Bump up Bribe to $3000 * Rewrite some Quartermaster dialog * Please test gods * Test gods please, I beg * Correct Shuttlebase to Shuttle Base
1 parent 50703c7 commit 522fa94

15 files changed

+807
-0
lines changed

data/mods/Aftershock/itemgroups/money_groups.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,19 @@
1313
{ "item": "UICA_1d", "count": 10 }
1414
]
1515
},
16+
{
17+
"id": "afs_uica_quartermaster_money",
18+
"type": "item_group",
19+
"subtype": "collection",
20+
"ammo": 100,
21+
"items": [
22+
{ "item": "UICA_1000d", "count": 8 },
23+
{ "item": "UICA_100d", "count": 15 },
24+
{ "item": "UICA_50d", "count": 20 },
25+
{ "item": "UICA_10d", "count": 20 },
26+
{ "item": "UICA_1d", "count": 10 }
27+
]
28+
},
1629
{
1730
"id": "afs_banknotes",
1831
"type": "item_group",

data/mods/Aftershock/itemgroups/tool_groups.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@
7777
{ "item": "duct_tape", "prob": 30, "count": [ 1, 2 ] }
7878
]
7979
},
80+
{
81+
"type": "item_group",
82+
"id": "afs_tools_vehicle_repair",
83+
"//": "Fixes up rovers, shuttlecraft, aerocraft and more. (Group stubed created for someone more knowledgable to fill)",
84+
"items": [ { "group": "afs_tools_structural_repair", "prob": 40 }, { "group": "afs_tools_electric_repair", "prob": 60 } ]
85+
},
8086
{
8187
"type": "item_group",
8288
"id": "afs_tools_structural_repair",

data/mods/Aftershock/itemgroups/weapons/armories.json

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,76 @@
108108
[ "afs_raketa_shotgun", 20 ]
109109
]
110110
},
111+
{
112+
"id": "afs_uica_military_locker",
113+
"type": "item_group",
114+
"subtype": "distribution",
115+
"items": [ { "group": "afs_uica_weapon_locker" }, { "group": "afs_uica_armor_locker" } ]
116+
},
117+
{
118+
"id": "afs_uica_weapon_locker",
119+
"type": "item_group",
120+
"subtype": "collection",
121+
"items": [
122+
{ "group": "afs_uica_guns", "prob": 70, "count": [ 1, 4 ] },
123+
{ "group": "afs_any_hand_grenade", "prob": 40, "count": [ 1, 5 ] },
124+
{ "group": "afs_uicia_mags", "prob": 40, "count": [ 1, 3 ] },
125+
{ "group": "afs_uicia_ammo", "prob": 40, "count": [ 3, 6 ] }
126+
]
127+
},
128+
{
129+
"id": "afs_uica_guns",
130+
"type": "item_group",
131+
"subtype": "distribution",
132+
"ammo": 100,
133+
"magazine": 100,
134+
"items": [
135+
{ "item": "afs_marsec_t72" },
136+
{ "item": "afs_sr77", "variant": "military", "ammo-item": "afs_7.50mm_caseless" },
137+
{ "item": "afs_shotgun", "variant": "military", "ammo-item": "shot_00" }
138+
]
139+
},
140+
{
141+
"id": "afs_uicia_mags",
142+
"type": "item_group",
143+
"subtype": "distribution",
144+
"items": [
145+
{ "item": "afs_sr77_45mag", "charges": 45, "ammo-item": "afs_7.50mm_caseless", "count": [ 1, 3 ] },
146+
{ "item": "afs_marsec_14mag", "charges": 14, "ammo-item": "afs_10mm_caseless_JHP", "count": [ 2, 5 ] }
147+
]
148+
},
149+
{
150+
"id": "afs_uicia_ammo",
151+
"type": "item_group",
152+
"subtype": "distribution",
153+
"items": [
154+
{ "item": "afs_7.50mm_caseless", "count": [ 2, 4 ] },
155+
{ "item": "afs_10mm_caseless_JHP", "count": [ 1, 3 ] },
156+
{ "item": "shot_00", "count": [ 1, 3 ] }
157+
]
158+
},
159+
{
160+
"id": "afs_uica_armor_locker",
161+
"type": "item_group",
162+
"subtype": "collection",
163+
"items": [
164+
{ "item": "afs_military_vest", "prob": 60 },
165+
{ "group": "afs_uica_armor_locker_helmets", "prob": 60 },
166+
{ "item": "afs_military_cloak", "prob": 30 },
167+
{ "item": "afs_ilbe", "prob": 30 },
168+
{ "item": "holster", "prob": 20 },
169+
{ "item": "sheath", "prob": 20 },
170+
{ "item": "afs_triple_stacker_pouch", "prob": 10 },
171+
{ "item": "afs_grenade_pouch", "prob": 10 },
172+
{ "item": "afs_ammo_satchel", "prob": 10 }
173+
]
174+
},
175+
{
176+
"id": "afs_uica_armor_locker_helmets",
177+
"type": "item_group",
178+
"subtype": "distribution",
179+
"items": [ { "item": "tac_fullhelmet_uicas" }, { "item": "tac_helmet_uicas" } ]
180+
},
111181
{
112182
"id": "afs_police_armory",
113183
"type": "item_group",

data/mods/Aftershock/maps/furniture_and_terrain/terrain_habitat_floor.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,33 @@
2525
]
2626
}
2727
},
28+
{
29+
"type": "terrain",
30+
"id": "t_metal_floor_heated",
31+
"name": "metal floor",
32+
"description": "High-quality and tough checkered metal flooring to reduce the risk of slips and falls. Can support a roof.",
33+
"looks_like": "t_metal_floor",
34+
"symbol": ".",
35+
"color": "light_cyan",
36+
"connect_groups": [ "INDOORFLOOR", "METALFLOOR" ],
37+
"connects_to": "METALFLOOR",
38+
"move_cost": 2,
39+
"roof": "t_metal_roof",
40+
"flags": [ "TRANSPARENT", "INDOORS", "SUPPORTS_ROOF", "FLAT", "ROAD" ],
41+
"emissions": [ "afs_emit_geovent" ],
42+
"bash": {
43+
"sound": "thump",
44+
"ter_set": "t_null",
45+
"str_min": 200,
46+
"str_max": 500,
47+
"str_min_supported": 200,
48+
"items": [
49+
{ "item": "steel_lump", "count": [ 1, 4 ] },
50+
{ "item": "steel_chunk", "count": [ 3, 12 ] },
51+
{ "item": "scrap", "count": [ 9, 36 ] }
52+
]
53+
}
54+
},
2855
{
2956
"type": "terrain",
3057
"id": "t_clearcrete_roof",
Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
[
2+
{
3+
"type": "mapgen",
4+
"method": "json",
5+
"om_terrain": [
6+
[ "afs_uica_shuttle_base_x0y0z0", "afs_uica_shuttle_base_x1y0z0" ],
7+
[ "afs_uica_shuttle_base_x0y1z0", "afs_uica_shuttle_base_x1y1z0" ]
8+
],
9+
"object": {
10+
"fill_ter": "t_metal_floor",
11+
"rows": [
12+
"™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™",
13+
"™||||||||||||||||||||||||||||||||||||||||||||||™",
14+
"™|™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™|™",
15+
"™|™™©©©™™™©©©©©©©©©™™™©©©™™™///////11///////℗℗|™",
16+
"™|™™©°©©©©©°©°°°©°©©©©©°©™™//2/2/3qff45/6ø.//℗|™",
17+
"™|™™©°°°°°°°©°8°©°°°°°°°©™™7$.,.7..h,../)/,.#℗|™",
18+
"™|™™©°©°°°©°©°8°©°©°°°©°©™™7$...//.ý,h%/9/..#℗|™",
19+
"™|™™©°©°°°©°©°°°©°©°°°©°©™™///..2/54ffq/h/ø//℗|™",
20+
"™|™™©°©°°°©°©°8°©°©°°°©°©™™™/2,.////////.,./℗℗|™",
21+
"™|™™©°©©©©©°©°8°©°©©©©©°©™™///..2/€€õ€3//7///℗|™",
22+
"™|™™©°©°°°©°©°8°©°©°°°©°©™™7$...//€€.33..,33#℗|™",
23+
"™|™™©°©°°°©°©°°°©°©°°°©°©™™7$.,.7...,.ö...33#℗|™",
24+
"™|™™©°©°°°©°©°8°©°©°°°©°©™™//2/2/......33..//℗|™",
25+
"™|™™©°°°°°°°©°8°©°°°°°°°©™™™///////77///11//℗™|™",
26+
"™|™™©°©©©©©°©°°°©°©©©©©°©™™™™™0™0™),,)™™™™™™™™|™",
27+
"™|™©©©©°°°©©©©©©©©©°°°©©©©©©©™™™™™)..)™™™™™™™™|™",
28+
"™|™©°°°°°°°°°°°°°°°°°°°°°°°°©™™™///77///™™™™™™|™",
29+
"™|™©©©©©©©©©©©©©©©©©©©©©©©©°©™™//❺/../l//™™™™™|™",
30+
"™|™--$$$$$$$$$$$$$$$$$$$--©°©™™1❶./../h91™℗™™™|™",
31+
"™|™-4,.$$$.,$€3.$,.$$$.,4-©°©™™/❷,7,,7,k//℗℗™™|™",
32+
"™|™-óh.$$$..$3..$..$$$.hó-©°©////❸/../..v#℗℗℗™|™",
33+
"™|™-óý.$$$..$...$..$$$..ó-©°©/99///../////℗℗℗™|™",
34+
"™|™-ƒ..$$$..$3.€$..$$$..ƒ-©°©7..7.,..,.</™™℗℗™|™",
35+
"™|™-ô..$$$.ö$..3$..$$$ö.ô-©°©/,./..ö..////℗℗℗™|™",
36+
"™|™-ô..$$$..$3.3$..$$$..ô-©°©////////7/qq#℗℗℗™|™",
37+
"™|™-q..$$$..$€..$..$$$..q-©°©™™/l.þ,../7//™℗℗™|™",
38+
"™|™-ó,.$$$.,$33.$,.$$$.,ó-©°©™™1l.h9.h..1™™™™™|™",
39+
"™|™-óh.$$$..$$$$$..$$$.hó-©°©™™//.vk.h.//™™™™™|™",
40+
"™|™-ó4ôô%...q555qÿ<.%ôô4ó-©°©™™™////////™™™™™™|™",
41+
"™|™---#------##------#----©°©™™™™™℗℗℗℗℗™™™™™™™|™",
42+
"™|™™™℗℗℗™™™℗℗℗℗℗™™™℗℗℗℗℗™™©°©™-----###-------™|™",
43+
"™|™™™[[[[[[[[[[[[[[[[[[[[[©°©™-%.ö.<.ÿ€3ôô4ó-℗|™",
44+
"™|™™™[¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$.,........,hó#℗|™",
45+
"™|™™™[¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$$$$$$$$$$$..ó#℗|™",
46+
"™|™™™[¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$$$$$$$$$$$..ô-℗|™",
47+
"™|™™™[¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$............5-™|™",
48+
"™|™™™[¢¢¢¢¢†††††††††††††††$.$¢$.,........,.5-™|™",
49+
"™|™™™[¢¢¢¢††¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$............5-™|™",
50+
"™|™™™[¢¢¢¢†¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$$$$$$$$$$$..ô-℗|™",
51+
"™|™™™[¢¢¢¢†¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$$$$$$$$$$$..ó#℗|™",
52+
"™|™™™[¢¢¢¢†¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢$.$¢$.,........,hó#℗|™",
53+
"™|™™™[¢¢¢¢†¢¢¢¢[[[[[[[[[[[©°©™-%...<ö.33ôô4ó-℗|™",
54+
"™|™™™[¢¢¢¢†¢¢¢¢[™™™™™™™™™™©°©™-----###-------™|™",
55+
"™|||||$$$$$$$$$|||||©©©©©©©°©™™™™™℗℗℗℗℗™™™™™™™|™",
56+
"™™™™™™™™™™™™™™™)k,.7°°°°°°°°©™™™™™™℗℗℗™™™™™™™™|™",
57+
"™™™™™™™™™™™™™™™)9h.|©©©©©©©©©™™™™™™™™™™™™™™™™™|™",
58+
"™™™™™™™™™™™™™™™)kÿ.||||||||||||||||||||||||||||™",
59+
"™™™™™™™™™™™™™™™|)))|™™™™™™™™™™™™™™™™™™™™™™™™™™™™"
60+
],
61+
"palettes": [ "afs_habitat_structure", "afs_habitat_exterior", "afs_habitat_residential_furnishing", "afs_habitat_life_support" ],
62+
"terrain": {
63+
"0": "t_region_groundcover_urban",
64+
"1": "t_wall_prefab_glass",
65+
"6": "t_nuclear_reactor",
66+
"7": "t_door_metal_c",
67+
"8": "t_thconc_floor_no_roof",
68+
".": "t_metal_floor_heated",
69+
"ø": "t_door_metal_elocked"
70+
},
71+
"furniture": {
72+
"0": "f_cryofluid_pump",
73+
"2": "f_drone_recharge_station",
74+
"3": "f_sealed_intermodal_crate",
75+
"4": "f_machinery_light",
76+
"5": "f_machinery_electronic",
77+
"8": "f_capacitor",
78+
"9": "f_console",
79+
"€": "f_intermodal_crate_open",
80+
"ƒ": "f_machinery_heavy",
81+
"÷": "f_locker",
82+
"ô": "f_rack",
83+
"ó": "f_workbench"
84+
},
85+
"items": {
86+
"÷": { "item": "afs_tools_robot_maintenance", "repeat": [ 3, 5 ], "chance": 70 },
87+
"f": { "item": "afs_tools_robot_maintenance", "repeat": [ 1, 3 ], "chance": 30 },
88+
"ô": { "item": "afs_tools_vehicle_repair", "repeat": [ 3, 5 ], "chance": 70 },
89+
"ó": { "item": "afs_tools_vehicle_repair", "repeat": [ 1, 3 ], "chance": 30 },
90+
"3": { "item": "afs_crate_civ_rand" },
91+
"%": { "item": "afs_tools_space_emergency" }
92+
},
93+
"npcs": {
94+
"ÿ": { "class": "uica_ground_soldier" },
95+
"þ": { "class": "uica_ground_officer" },
96+
"ý": { "class": "uica_ground_engineer" },
97+
"õ": { "class": "uica_quartermaster" }
98+
},
99+
"place_vehicles": [
100+
{ "vehicle": "uica_lynx_ex", "x": 35, "y": 33, "chance": 80, "status": 0, "faction": "UICA" },
101+
{ "vehicle": "uica_lynx_ex", "x": 35, "y": 38, "chance": 30, "status": 0, "faction": "UICA" }
102+
],
103+
"monster": { "ö": { "monster": "mon_uica_irradiant" } }
104+
}
105+
},
106+
{
107+
"type": "mapgen",
108+
"method": "json",
109+
"om_terrain": [
110+
[ "afs_uica_shuttle_base_x0y0z1", "afs_uica_shuttle_base_x1y0z1" ],
111+
[ "afs_uica_shuttle_base_x0y1z1", "afs_uica_shuttle_base_x1y1z1" ]
112+
],
113+
"object": {
114+
"fill_ter": "t_metal_floor",
115+
"rows": [
116+
" ",
117+
" ",
118+
" ",
119+
" ///1/1/11/1/1/// ",
120+
" //~/SlS/Sl/SlS/~// ",
121+
" #*./.,./.,/.,./.*# ",
122+
" #l,/q.y/y./q.y/,l# ",
123+
" //7//7///7//7//7// ",
124+
" /...,......,.../ ",
125+
" //7//7//..//7//7// ",
126+
" #l,/q.y/,,/q.y/,l# ",
127+
" #*./.,./../.,./.*# ",
128+
" //~/SlS/../SlS/~// ",
129+
" ///1/1/77/1/1/// ",
130+
" ),,) ",
131+
" )..) ",
132+
" /1/77/// ",
133+
" //9k../÷// ",
134+
" -- -- 1kh.../ÿ÷/ ",
135+
" -$[ [$- 19h.../,÷// ",
136+
" -$[ [$- [[1kÿ.,.ø..÷# ",
137+
" -$[ [$- [.19h...///// ",
138+
" -$[ [$- [.1kp.....>/ ",
139+
" -$[ [$- [.////7////// ",
140+
" -$[ [$- [[/û.ÿ.bbb..# ",
141+
" -$[ [$- 1û,..yyy,// ",
142+
" -$[ [$- /ú...bbb./ ",
143+
" -$[[[[[[[[[[[[[[[[[[[$- //úoo...// ",
144+
" -$$$$$$$$$$$$$$>$$$$$$- ///11/// ",
145+
" ----------------------- ",
146+
" --------------- ",
147+
" -$$$$>$$$$$$$$- ",
148+
" [[[[[[[[[[[[$- ",
149+
" [$- ",
150+
" [$- ",
151+
" [$- ",
152+
" [$- ",
153+
" [$- ",
154+
" [$- ",
155+
" [$- ",
156+
" [[[[[[[[[[[[$- ",
157+
" -$$$$>$$$$$$$$- ",
158+
" --------------- ",
159+
" [[[[[ ",
160+
" [...[ ",
161+
" [...[ ",
162+
" [...[ ",
163+
" [[[[[ "
164+
],
165+
"palettes": [ "afs_habitat_structure", "afs_habitat_residential_furnishing" ],
166+
"terrain": {
167+
"1": "t_wall_prefab_glass",
168+
"7": "t_door_metal_c",
169+
" ": "t_open_air",
170+
".": "t_metal_floor_heated",
171+
"ø": "t_door_metal_elocked"
172+
},
173+
"furniture": { "9": "f_console", "÷": "f_locker", "û": "f_fridge", "ú": "f_habitat_storage_board" },
174+
"items": {
175+
"÷": { "item": "afs_uica_military_locker" },
176+
"û": { "item": "afs_stored_meals", "repeat": [ 1, 5 ] },
177+
"ú": { "item": "afs_stored_meals", "repeat": [ 1, 5 ] }
178+
},
179+
"npcs": { "ÿ": { "class": "uica_ground_soldier" } }
180+
}
181+
},
182+
{
183+
"type": "mapgen",
184+
"method": "json",
185+
"om_terrain": [
186+
[ "afs_uica_shuttle_base_x0y0z2", "afs_uica_shuttle_base_x1y0z2" ],
187+
[ "afs_uica_shuttle_base_x0y1z2", "afs_uica_shuttle_base_x1y1z2" ]
188+
],
189+
"object": {
190+
"fill_ter": "t_metal_floor",
191+
"rows": [
192+
" ",
193+
" ",
194+
" ",
195+
" [[[[[[[[[[[[[[[[ ",
196+
" [[..............[[ ",
197+
" [................[ ",
198+
" [................[ ",
199+
" [[..............[[ ",
200+
" [..............[ ",
201+
" [[..............[[ ",
202+
" [................[ ",
203+
" [................[ ",
204+
" [[..............[[ ",
205+
" [[[[[[[..[[[[[[[ ",
206+
" [..[ ",
207+
" [..[ ",
208+
" [[[..[[[ ",
209+
" [[......[[ ",
210+
" [[[[[[[[[[[[[[[[[[[[[[[ [........[ ",
211+
" [.....................[ [........[[ ",
212+
" [.....................[ [.........[ ",
213+
" [.....................[ [........[[ ",
214+
" [.....................[ [........[ ",
215+
" [.....................[ [........[[ ",
216+
" [.....................[ [.........[ ",
217+
" [.....................[ [........[[ ",
218+
" [.....................[ [........[ ",
219+
" [.....................[ [[......[[ ",
220+
" [.....................[ [[[[[[[[ ",
221+
" [[[[[[[[[[[[[[[[[[[[[[[ ",
222+
" [[[[[[[[[[[[[[[ ",
223+
" [.............[ ",
224+
" [.............[ ",
225+
" [.............[ ",
226+
" [.............[ ",
227+
" [.............[ ",
228+
" [.............[ ",
229+
" [.............[ ",
230+
" [.............[ ",
231+
" [.............[ ",
232+
" [.............[ ",
233+
" [.............[ ",
234+
" [[[[[[[[[[[[[[[ ",
235+
" ",
236+
" ",
237+
" ",
238+
" ",
239+
" "
240+
],
241+
"palettes": [ "afs_habitat_structure" ],
242+
"terrain": { " ": "t_open_air" }
243+
}
244+
}
245+
]

0 commit comments

Comments
 (0)