Skip to content

Commit 546d3f0

Browse files
authored
Mecha Graveyard and Mech Wreckage Update (#37259)
* mecha graveyard initial * not all basilisks lmao * directional skullbot laughs
1 parent e0f81a5 commit 546d3f0

File tree

6 files changed

+311
-98
lines changed

6 files changed

+311
-98
lines changed

code/game/mecha/mecha_wreckage.dm

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,16 @@
135135

136136
/obj/effect/decal/mecha_wreckage/gygax/New()
137137
..()
138-
var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso,
138+
var/list/parts = list( /obj/item/mecha_parts/chassis/gygax,
139+
/obj/item/mecha_parts/part/gygax_torso,
139140
/obj/item/mecha_parts/part/gygax_head,
140141
/obj/item/mecha_parts/part/gygax_left_arm,
141142
/obj/item/mecha_parts/part/gygax_right_arm,
142143
/obj/item/mecha_parts/part/gygax_left_leg,
143-
/obj/item/mecha_parts/part/gygax_right_leg)
144+
/obj/item/mecha_parts/part/gygax_right_leg,
145+
/obj/item/weapon/circuitboard/mecha/gygax/peripherals,
146+
/obj/item/weapon/circuitboard/mecha/gygax/targeting,
147+
/obj/item/weapon/circuitboard/mecha/gygax/main)
144148
welder_salvage += pick_random_loot(parts)
145149

146150
/obj/effect/decal/mecha_wreckage/gygax/dark
@@ -154,13 +158,16 @@
154158
/obj/effect/decal/mecha_wreckage/marauder/New()
155159
..()
156160
var/list/parts = list(
161+
/obj/item/mecha_parts/chassis/marauder,
157162
/obj/item/mecha_parts/part/marauder_torso,
158163
/obj/item/mecha_parts/part/marauder_head,
159164
/obj/item/mecha_parts/part/marauder_left_arm,
160165
/obj/item/mecha_parts/part/marauder_right_arm,
161166
/obj/item/mecha_parts/part/marauder_left_leg,
162167
/obj/item/mecha_parts/part/marauder_right_leg,
163-
)
168+
/obj/item/weapon/circuitboard/mecha/marauder/peripherals,
169+
/obj/item/weapon/circuitboard/mecha/marauder/targeting,
170+
/obj/item/weapon/circuitboard/mecha/marauder/main)
164171

165172
welder_salvage += pick_random_loot(parts)
166173

@@ -179,11 +186,14 @@
179186

180187
/obj/effect/decal/mecha_wreckage/ripley/New()
181188
..()
182-
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
189+
var/list/parts = list( /obj/item/mecha_parts/chassis/ripley,
190+
/obj/item/mecha_parts/part/ripley_torso,
183191
/obj/item/mecha_parts/part/ripley_left_arm,
184192
/obj/item/mecha_parts/part/ripley_right_arm,
185193
/obj/item/mecha_parts/part/ripley_left_leg,
186-
/obj/item/mecha_parts/part/ripley_right_leg)
194+
/obj/item/mecha_parts/part/ripley_right_leg,
195+
/obj/item/weapon/circuitboard/mecha/ripley/peripherals,
196+
/obj/item/weapon/circuitboard/mecha/ripley/main)
187197
welder_salvage += pick_random_loot(parts)
188198

189199
/obj/effect/decal/mecha_wreckage/ripley/mk2
@@ -211,7 +221,10 @@
211221
/obj/item/mecha_parts/part/honker_left_arm,
212222
/obj/item/mecha_parts/part/honker_right_arm,
213223
/obj/item/mecha_parts/part/honker_left_leg,
214-
/obj/item/mecha_parts/part/honker_right_leg)
224+
/obj/item/mecha_parts/part/honker_right_leg,
225+
/obj/item/weapon/circuitboard/mecha/honker/peripherals,
226+
/obj/item/weapon/circuitboard/mecha/honker/targeting,
227+
/obj/item/weapon/circuitboard/mecha/honker/main)
215228
welder_salvage += pick_random_loot(parts)
216229

217230
/obj/effect/decal/mecha_wreckage/durand
@@ -220,13 +233,16 @@
220233

221234
/obj/effect/decal/mecha_wreckage/durand/New()
222235
..()
223-
var/list/parts = list(
236+
var/list/parts = list( /obj/item/mecha_parts/chassis/durand,
224237
/obj/item/mecha_parts/part/durand_torso,
225238
/obj/item/mecha_parts/part/durand_head,
226239
/obj/item/mecha_parts/part/durand_left_arm,
227240
/obj/item/mecha_parts/part/durand_right_arm,
228241
/obj/item/mecha_parts/part/durand_left_leg,
229-
/obj/item/mecha_parts/part/durand_right_leg)
242+
/obj/item/mecha_parts/part/durand_right_leg,
243+
/obj/item/weapon/circuitboard/mecha/durand/peripherals,
244+
/obj/item/weapon/circuitboard/mecha/durand/targeting,
245+
/obj/item/weapon/circuitboard/mecha/durand/main)
230246
welder_salvage += pick_random_loot(parts)
231247

232248

@@ -249,13 +265,15 @@
249265

250266
/obj/effect/decal/mecha_wreckage/odysseus/New()
251267
..()
252-
var/list/parts = list(
268+
var/list/parts = list( /obj/item/mecha_parts/chassis/odysseus,
253269
/obj/item/mecha_parts/part/odysseus_torso,
254270
/obj/item/mecha_parts/part/odysseus_head,
255271
/obj/item/mecha_parts/part/odysseus_left_arm,
256272
/obj/item/mecha_parts/part/odysseus_right_arm,
257273
/obj/item/mecha_parts/part/odysseus_left_leg,
258-
/obj/item/mecha_parts/part/odysseus_right_leg)
274+
/obj/item/mecha_parts/part/odysseus_right_leg,
275+
/obj/item/weapon/circuitboard/mecha/odysseus/peripherals,
276+
/obj/item/weapon/circuitboard/mecha/odysseus/main)
259277
welder_salvage += pick_random_loot(parts)
260278

261279
/obj/effect/decal/mecha_wreckage/clarke
@@ -264,17 +282,23 @@
264282

265283
/obj/effect/decal/mecha_wreckage/clarke/New()
266284
..()
267-
var/list/parts = list(
285+
var/list/parts = list( /obj/item/mecha_parts/chassis/clarke,
268286
/obj/item/mecha_parts/part/clarke_torso,
269287
/obj/item/mecha_parts/part/clarke_head,
270288
/obj/item/mecha_parts/part/clarke_left_arm,
271289
/obj/item/mecha_parts/part/clarke_right_arm,
272290
/obj/item/mecha_parts/part/clarke_left_tread,
273-
/obj/item/mecha_parts/part/clarke_right_tread)
291+
/obj/item/mecha_parts/part/clarke_right_tread,
292+
/obj/item/weapon/circuitboard/mecha/clarke/peripherals,
293+
/obj/item/weapon/circuitboard/mecha/clarke/main)
274294
welder_salvage += pick_random_loot(parts)
275295

276296
/obj/effect/decal/mecha_wreckage/vehicle
277297
name = "(BUG) BASE VEHICLE WRECKAGE"
278298
icon = 'icons/obj/vehicles.dmi'
279299
icon_state = "pussywagon_destroyed"
280300
desc = "Remains of some unfortunate vehicle. Completely unrepairable."
301+
302+
/obj/effect/decal/mecha_wreckage/skullbot
303+
name = "Mysterious wreckage"
304+
icon_state = "skullmech-broken"

code/game/objects/items/trader.dm

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,46 +17,95 @@
1717
file_path = "maps/randomvaults/dungeons/mecha_graveyard.dmm"
1818
unique = TRUE
1919

20+
//Ripley wreckage but with enough parts to rebuild
2021
/obj/effect/decal/mecha_wreckage/graveyard_ripley
2122
name = "Ripley wreckage"
22-
desc = "Surprisingly well preserved."
2323
icon_state = "ripley-broken"
2424

2525
/obj/effect/decal/mecha_wreckage/graveyard_ripley/New()
2626
..()
27-
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
27+
var/list/parts = list( /obj/item/mecha_parts/chassis/ripley,
28+
/obj/item/mecha_parts/part/ripley_torso,
2829
/obj/item/mecha_parts/part/ripley_left_arm,
2930
/obj/item/mecha_parts/part/ripley_right_arm,
3031
/obj/item/mecha_parts/part/ripley_left_leg,
31-
/obj/item/mecha_parts/part/ripley_right_leg)
32+
/obj/item/mecha_parts/part/ripley_right_leg,
33+
/obj/item/weapon/circuitboard/mecha/ripley/peripherals,
34+
/obj/item/weapon/circuitboard/mecha/ripley/main)
3235
welder_salvage += parts
3336

3437
if(prob(80))
3538
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/drill,100)
3639
else
3740
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,100)
3841
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,100)
39-
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/jetpack,100)
42+
if(prob(50))
43+
return
44+
switch(rand(1,3))
45+
if(1)
46+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/jetpack,100)
47+
if(2)
48+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/passive/rack,100)
49+
if(3)
50+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/passive/runningboard,100)
4051

4152
/obj/effect/decal/mecha_wreckage/graveyard_clarke
4253
name = "Clarke wreckage"
43-
desc = "Surprisingly well preserved."
4454
icon_state = "clarke-broken"
4555

4656
/obj/effect/decal/mecha_wreckage/graveyard_clarke/New()
4757
..()
48-
var/list/parts = list(
58+
var/list/parts = list( /obj/item/mecha_parts/chassis/clarke,
4959
/obj/item/mecha_parts/part/clarke_torso,
5060
/obj/item/mecha_parts/part/clarke_head,
5161
/obj/item/mecha_parts/part/clarke_left_arm,
5262
/obj/item/mecha_parts/part/clarke_right_arm,
5363
/obj/item/mecha_parts/part/clarke_left_tread,
54-
/obj/item/mecha_parts/part/clarke_right_tread)
64+
/obj/item/mecha_parts/part/clarke_right_tread,
65+
/obj/item/weapon/circuitboard/mecha/clarke/peripherals,
66+
/obj/item/weapon/circuitboard/mecha/clarke/main)
5567
welder_salvage += parts
5668

57-
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/collector,100)
5869
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/tiler,100)
5970
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/switchtool,100)
71+
if(prob(50))
72+
return
73+
switch(rand(1,4))
74+
if(1)
75+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/jetpack,100)
76+
if(2)
77+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/passive/rack,100)
78+
if(3)
79+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/passive/runningboard,100)
80+
if(4)
81+
add_salvagable_equipment(new /obj/item/mecha_parts/mecha_equipment/tool/collector,100)
82+
83+
84+
/mob/living/simple_animal/hostile/asteroid/basilisk/skullbot
85+
name = "Mysterious skullbot"
86+
desc = "A bizarre robot-like thing."
87+
icon = 'icons/mecha/mecha.dmi'
88+
icon_state = "skullmech"
89+
icon_living = "skullmech"
90+
icon_aggro = "skullmech-laugh"
91+
icon_dead = "skullmech-broken"
92+
icon_gib = null
93+
move_to_delay = 5
94+
projectiletype = /obj/item/projectile/temp/basilisk
95+
projectilesound = 'sound/weapons/pierce.ogg'
96+
ranged = 1
97+
ranged_message = "laughs"
98+
melee_damage_lower = 15
99+
melee_damage_upper = 30
100+
attacktext = "bites into"
101+
attack_sound = 'sound/weapons/spiderlunge.ogg'
102+
103+
/mob/living/simple_animal/hostile/asteroid/basilisk/skullbot/death()
104+
visible_message("<span class='danger'>\The [src] shatters before dying, leaving some bones.</span>")
105+
drop_stack(/obj/item/stack/sheet/bone, loc, 5)
106+
new /obj/effect/decal/mecha_wreckage/skullbot(loc)
107+
..(TRUE)
108+
qdel(src)
60109

61110
/obj/item/weapon/mech_expansion_kit
62111
name = "exosuit expansion kit"

code/modules/maps/spawners/pick_spawner.dm

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
to_spawn = list(
6161
/obj/item/clothing/gloves/yellow
6262
)
63-
63+
6464
/obj/abstract/map/spawner/pick_spawner/yellowgloves/tcomms_storage
6565
category = "yellowgloves_tcommsstorage"
6666
name = "glubb pickspawner (tcomms_storage)"
@@ -72,3 +72,48 @@
7272
/obj/abstract/map/spawner/pick_spawner/yellowgloves/technicalstorage
7373
category = "yellowgloves_technicalstorage"
7474
name = "glubb pickspawner (technicalstorage)"
75+
76+
/obj/abstract/map/spawner/pick_spawner/mecha_wreckage
77+
category = "mecha_graveyard_wreckage"
78+
name = "Mecha Graveyard Wreckage Spawner"
79+
spawners_to_pick = 14
80+
icon_state = "robot_any"
81+
to_spawn = list(
82+
/obj/effect/decal/mecha_wreckage/ripley,
83+
/obj/effect/decal/mecha_wreckage/ripley,
84+
/obj/effect/decal/mecha_wreckage/clarke,
85+
/obj/effect/decal/mecha_wreckage/clarke,
86+
/obj/effect/decal/mecha_wreckage/odysseus,
87+
/obj/effect/decal/mecha_wreckage/marauder,
88+
/obj/effect/decal/mecha_wreckage/gygax,
89+
/obj/effect/decal/mecha_wreckage/durand,
90+
/obj/effect/decal/mecha_wreckage/honker,
91+
)
92+
93+
/obj/abstract/map/spawner/pick_spawner/mecha_wreckage_good
94+
category = "mecha_graveyard_wreckage_good"
95+
name = "Mecha Graveyard Good Wreckage Spawner"
96+
icon_state = "engi_materials"
97+
to_spawn = list(
98+
/obj/effect/decal/mecha_wreckage/graveyard_ripley,
99+
/obj/effect/decal/mecha_wreckage/graveyard_clarke,
100+
)
101+
102+
/obj/abstract/map/spawner/pick_spawner/mecha_wreckage_equip
103+
category = "mecha_graveyard_wreckage_good"
104+
name = "Mecha Graveyard Good Wreckage Spawner"
105+
spawners_to_pick = 2
106+
icon_state = "space_tools"
107+
to_spawn = list(
108+
/obj/item/mecha_parts/mecha_equipment/passive/runningboard,
109+
/obj/item/mecha_parts/mecha_equipment/passive/rack,
110+
/obj/item/mecha_parts/mecha_equipment/tool/jail,
111+
/obj/item/mecha_parts/mecha_equipment/jetpack,
112+
/obj/item/mecha_parts/mecha_equipment/tool/scythe,
113+
/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,
114+
/obj/item/mecha_parts/mecha_equipment/tool/red,
115+
/obj/item/mecha_parts/mecha_equipment/wormhole_generator,
116+
/obj/item/mecha_parts/mecha_equipment/gravcatapult,
117+
/obj/item/mecha_parts/mecha_equipment/repair_droid,
118+
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,
119+
)

code/modules/mining/mine_turfs.dm

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ var/global/list/mineralSpawnChance[]
2727
"Diamond" = 1,
2828
"Ice Cave" = 1,
2929
)
30+
mineralSpawnChance["mecha_high"] = list(
31+
"Nanotrasite" = 30,
32+
"Electrum" = 20,
33+
"Plasma" = 10,
34+
"Diamond" = 2,
35+
)
3036
mineralSpawnChance["random_high"] = list(
3137
"Uranium" = 10,
3238
"Iron" = 30,
@@ -887,6 +893,11 @@ var/list/icon_state_to_appearance = list()
887893
mined_type = /turf/unsimulated/floor/snow/permafrost
888894
overlay_state = "snow_rock_overlay"
889895

896+
/turf/unsimulated/mineral/random/high_chance/mecha
897+
icon_state = "rock(high)"
898+
mineralChance = 40 //there's 46 turfs currently in the mecha graveyard...
899+
mineralPool = "mecha_high"
900+
890901
/turf/unsimulated/mineral/uranium
891902
name = "Uranium deposit"
892903
icon_state = "rock_Uranium"

icons/mecha/mecha.dmi

24 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)